Pythonのscikit-learnで必要な機械学習を学ぶ

私はエンジニアではない文系の人間ですが、Pythonの可能性やデータ分析を使った仕事に興味があります。

前回はPythonで2次元グラフを描画するライブラリのMatplotlibを使って描画できる様々なグラフについて紹介しました。表現したいデータによってグラフや見せ方を変えて表現することで実際に使える知識になっていきます。ご興味ある方はぜひご覧ください。

(参考: PythonのMatplotlibで表現できる様々なグラフ

さて今回は、いよいよscikit-learnです。機械学習などを行う際によく使われるデータ解析のライブラリです。私が勉強している『Pythonによるあたらしいデータ分析の教科書(翔泳社)』の、P212.〜P.223の部分です。scikit-learnの特徴や機械学習とは?という部分を中心に調べましたので取り上げます。

目次

scikit-learnと機械学習

scikit-learn (サイキット・ラーン)は、Pythonで機械学習を行うことができるライブラリの1つです。データ解析やデータマイニング(機械学習や統計学を使い、データから「知識」を抽出する技術)に使われます。Pythonにおける機械学習全般に利用可能なライブラリということもあり、多くの人が使うデファクトスタンダードなライブラリとして存在しています。

そんなscikit-learnはオープンソースで公開されているため、無料で誰でも利用することができます。

「機械学習ができるライブラリ」ということは分かったかと思いますが、それでは「機械学習」とは何でしょうか。

NRIの解説を引用します。

機械学習とは、データを分析する方法の1つで、データから、「機械」(コンピューター)が自動で「学習」し、データの背景にあるルールやパターンを発見する方法。近年では、学習した成果に基づいて「予測・判断」することが重視されるようになった。

(参考)NRI 用語解説 – 機械学習

つまり、多くのデータ(ビッグデータ)をもとに、特徴やパターンをコンピュータが自動で発見していくようなデータ分析手法ということです。これができると、「今」のデータをもとに特徴やパターンから「将来」を予測することができるようになるため、企業での活用も進んでいます。

ちなみに、人工知能(AI)を実現するためのデータ分析の技術の1つが「機械学習」という立ち位置です。

この機械学習が実用されている例としては、現在以下のようなものがあります。

  • 商品・サービスの需要予測
  • 欠損検知(工場や道路など)
  • ECでのレコメンド
  • 画像認識
  • 自動運転

どれも生活に身近なものばかりで、どれだけ機械学習が活用されているかがわかります。

機械学習には3つの種類があり、それぞれ用途が違います。

  1. 教師あり学習
  2. 教師なし学習
  3. 強化学習

1.教師あり学習

正解・不正解がはっきりしている問題の解決に使えるのが教師あり学習です。正解があり、その正解に対して新しいデータがどうなのかを判定していきます。正解というのは「教師データ」と呼ばれ、正解ラベルを付与したデータのことです。具体的には「猫の画像」というデータに正解のラベルである「これは猫です」を付けたセットを教師データと呼びます。

ユースケースとしては、画像認識や音声認識、株価予測などです。

教師あり学習を行う際には、学習用の大量の教師データが必要になることが多く、より多くのケースをもとに認識の精度を上げていく事が必要となります。

2.教師なし学習

正解・不正解がはっきりしていない問題の解決で利用されるのが教師なし学習です。正解の「教師データ」は無いため、様々なデータに隠された特徴やパターンを見つけ出して行くもので、データの類似度やグルーピングなどから特徴を見つけていきます。「クラスタリング」や「次元圧縮」という方法が使われます。

ユースケースとしては、教師データが用意しづらい画像認識や購買データの傾向分析、自動運転などがあります。

柔軟性が高いように見えますが、教師データがないため正解がない状態で類似点を見つけていくということになるためどのようにデータを解釈して行くのかが重要です。

3.強化学習

システム自身が試行錯誤しながら精度を高めていく方法です。システムに何らかの選択をさせた場合の行動に対する評価(報酬)を与えて、評価が大きくなるような行動の仕方を学習させていきます。

ユースケースとしては、GoogleのAlphaGoやAlphaZERO、自動運転にも利用されています。

時間とともに変化する環境に応じて適切な判断を繰り返される必要がある場合には強化学習が利用されています。

まずは、機械学習を知ってから方法としてのscikit-learn

いかがでしたでしょうか。

今回はscikit-learnの概要とそれに付随する機械学習の方法について取り上げてきました。

scikit-learnの部分は一気に複雑になる印象があるため、基礎の部分から順番に理解していかないと私も大変だと感じています。

インターネット・アカデミーは、Python講座が充実しています。Python認定スクールにもなっているため質の高い知識を得ることができ、基礎学習の先にあるそれぞれの目標を目指していくためには良い場所となります。

よく、「プログラミングは独学でもなんとかなる」という情報もありますが、新しいことを学んでいく際の近道は「プロに教えてもらうこと」だと思います。

インターネット・アカデミーはキャリアサポートも充実しており、一人ひとりに専任のキャリアプロデューサーがサポートしてくれるため中途半端になることがありません。

ご興味ある方は各講座のページを覗いてみてください。無料カウンセリングもできます。

Pythonの基礎からDjangoフレームワークを使ったWebアプリケーションを作りたい方向けの「Python講座」

Pythonを活用したAIプログラミング、機械学習を実装したい方向けの「AIプログラミング講座」

良い記事だなって思ったら、是非シェアをお願いします!
  • URLをコピーしました!
  • URLをコピーしました!
目次
閉じる