Pythonのscikit-learnで必要な機械学習を学ぶ
執筆者:南波真之
※本記事は吉政創成株式会社「Python学習とキャリアアップ」より寄稿されたコラムとなります。

私はエンジニアではない文系の人間ですが、Pythonの可能性やデータ分析を使った仕事に興味があります。
前回はPythonで2次元グラフを描画するライブラリのMatplotlibを使って描画できる様々なグラフについて紹介しました。表現したいデータによってグラフや見せ方を変えて表現することで実際に使える知識になっていきます。ご興味ある方はぜひご覧ください。
Matplotlibの基本的な使い方について、ご興味ある方はぜひご覧ください。
さて今回は、いよいよscikit-learnです。機械学習などを行う際によく使われるデータ解析のライブラリです。私が勉強しているPythonによるあたらしいデータ分析の教科書(翔泳社)の、P212.〜P.223の部分です。scikit-learnの特徴や機械学習とは?という部分を中心に調べましたので取り上げます。
scikit-learnと機械学習
scikit-learn (サイキット・ラーン)は、Pythonで機械学習を行うことができるライブラリの1つです。データ解析やデータマイニング(機械学習や統計学を使い、データから「知識」を抽出する技術)に使われます。Pythonにおける機械学習全般に利用可能なライブラリということもあり、多くの人が使うデファクトスタンダードなライブラリとして存在しています。
そんなscikit-learnはオープンソースで公開されているため、無料で誰でも利用することができます。
「機械学習ができるライブラリ」ということは分かったかと思いますが、それでは「機械学習」とは何でしょうか。NRIの解説を引用します。
(参考)NRI 用語解説 - 機械学習
つまり、多くのデータ(ビッグデータ)をもとに、特徴やパターンをコンピュータが自動で発見していくようなデータ分析手法ということです。これができると、「今」のデータをもとに特徴やパターンから「将来」を予測することができるようになるため、企業での活用も進んでいます。
ちなみに、人工知能(AI)を実現するためのデータ分析の技術の1つが「機械学習」という立ち位置です。この機械学習が実用されている例としては、現在以下のようなものがあります。
- 商品・サービスの需要予測
- 欠損検知(工場や道路など)
- ECでのレコメンド
- 画像認識
- 自動運転
どれも生活に身近なものばかりで、どれだけ機械学習が活用されているかがわかります。機械学習には3つの種類があり、それぞれ用途が違います。
- 教師あり学習
- 教師なし学習
- 強化学習
1.教師あり学習
正解・不正解がはっきりしている問題の解決に使えるのが教師あり学習です。正解があり、その正解に対して新しいデータがどうなのかを判定していきます。正解というのは「教師データ」と呼ばれ、正解ラベルを付与したデータのことです。具体的には「猫の画像」というデータに正解のラベルである「これは猫です」を付けたセットを教師データと呼びます。
ユースケースとしては、画像認識や音声認識、株価予測などです。
教師あり学習を行う際には、学習用の大量の教師データが必要になることが多く、より多くのケースをもとに認識の精度を上げていく事が必要となります。
2.教師なし学習
正解・不正解がはっきりしていない問題の解決で利用されるのが教師なし学習です。正解の「教師データ」は無いため、様々なデータに隠された特徴やパターンを見つけ出して行くもので、データの類似度やグルーピングなどから特徴を見つけていきます。「クラスタリング」や「次元圧縮」という方法が使われます。
ユースケースとしては、教師データが用意しづらい画像認識や購買データの傾向分析、自動運転などがあります。
柔軟性が高いように見えますが、教師データがないため正解がない状態で類似点を見つけていくということになるためどのようにデータを解釈して行くのかが重要です。
3.強化学習
システム自身が試行錯誤しながら精度を高めていく方法です。システムに何らかの選択をさせた場合の行動に対する評価(報酬)を与えて、評価が大きくなるような行動の仕方を学習させていきます。
ユースケースとしては、GoogleのAlphaGoやAlphaZERO、自動運転にも利用されています。
時間とともに変化する環境に応じて適切な判断を繰り返される必要がある場合には強化学習が利用されています。
まずは、機械学習を知ってから方法としてのscikit-learn
今回はscikit-learnの概要とそれに付随する機械学習の方法について取り上げてきました。
scikit-learnの部分は一気に複雑になる印象があるため、基礎の部分から順番に理解していかないと私も大変だと感じています。
私は普段は一般企業でビジネスをしているため、売上やその周辺のデータをこのMatplotlibなどを使ってどう表現できるか、という観点で学習しています。
インターネット・アカデミーは、Python講座が充実しています。Python認定スクールにもなっているため質の高い知識を得ることができ、基礎学習の先にあるそれぞれの目標を目指していくためには良い場所となります。ご興味ある方は各講座のページを覗いてみてください。
南波真之
デジタル人材育成・助成金のお役立ち資料をダウンロード

デジタル人材育成や助成金活用のお役立ち資料などをまとめてダウンロードしていただけます。コンサルタントへの無料相談をご希望の方はこちらからお問い合わせください。
- DX人材の育成&事例紹介 リスキリングのロードマップ付き
- デジタル人材育成に使える助成金制度
- デジタルスキル標準 役割別おすすめ講座