
Pythonは機械学習の分野で人気のプログラミング言語です。機械学習プログラミングは自力で書くと大変ですが、Python機械学習ライブラリscikit-learnを使えばハードルはグッと下がります。ここではscikit-learnのインストールと例題の紹介を行います。
こんにちは。wat(@watlablog)です。近年はより一層機械学習の研究や活用が活発ですね!ここではPythonの機械学習ライブラリであるscikit-learnのインストールと例題による実行確認を行います!
機械学習プログラミングは外部のライブラリを使おう!
機械学習に外部ライブラリを使う理由
当WATLABブログでは過去に「PythonでパーセプトロンのANDゲートを実装する!」等で簡単なニューロンモデルによるANDゲートを実装してみました。
ANDゲートといっても、作成したパーセプトロンは一種の分類問題で、あるラインから上は1、下は0といった線形分類をしていました。
上記のニューロンモデルが多層に連なったり、様々なアルゴリズムが実装されていくことでディープラーニングに代表されるような学習プログラムになっていくのですが、正直真面目に1からしっかりしたコーディングをしていくためには相当な学習量が必要です。
当ブログでは、学習の理解のためにあえて既に知られているようなことも実際に自分でコーディングしてみて挙動を観察する…ということももちろんやっていきますが、実際に機械学習を使って何かやろうという場合は外部のライブラリやフレームワークを活用する方針です。
既にオープンソースで開発されているライブラリと同じものを作ったとしても、何も付加価値が付かなければ誰も活用してくれません(自分の理解力は圧倒的につくと思いますので、ポートフォリオには良いと思います)。
車輪の再発明にならないように、世間で広く検証が進められている外部ライブラリの使い方を学びましょう!
scikit-learnとは?
scikit-learnとは、Pythonの機械学習用ライブラリのことで、NumPyとSciPyを相互にやりとりするように設計されています。
scikitの語源はSciPy Toolkitで、サードパーティ製のSciPy拡張という意味が込められています。
scikit-learnには機械学習で一般に知られているアルゴリズムは大抵実装されているとのことです。以下の公式Webサイトのトップページには「分類」、「次数低減」…といったキーワードで出来ることが紹介されています。英語ページですがとても参考になるため是非確認してみて下さい。
公式ページ:scikit-learn.org
scikit-learnインストールと実行の確認
pipでインストール
Pythonの外部ライブラリインストールではもはやお馴染みですが、scikit-learnもpipでインストールすることができます。
pipコマンドは以下の通り。
scikit-learnはnumpyとscipyも使うので、まだインストールされていない方は同様にpipでインストールしておきましょう。
pipについてよくわからないという方は、「Pythonのパッケージ管理ツール pipの使い方とコマンド集」に簡単な概要を記載しましたので是非ご確認下さい。
scikit-learnの動作確認:例題の実行
pipでscikit-learnをインストールできたら、まずは動作確認を行いましょう!
動作確認には公式ページに書いてあるコードをコピペするのが最も効率が良いです。
ここではまず「分類器の比較」をしてみます。先ほどの公式ページにアクセスし、以下の画像クリックすると、「Classifier comparison」のページへ飛びます。

移動したページには、サポートベクターマシン、決定木、ランダムフォレスト、ニューラルネット…と同じデータセットに対して様々な分類器による分類比較を行うコードが公開されています。
以下がそのサンプルコードです。scikit-learn、numpy、scipyのインストールが成功していれば問題無く実行できると思います。
以下が実行結果として得られるグラフです。縦方向左3つのinput dataに対して、右側に分類器違いの結果が列挙されています。

これでscikit-learnを使ったプログラミングの準備が整いました!
この短いコードでこんなアウトプットが得られるなんて素晴らしい!
まとめ
本記事ではPythonでscikit-learnを使った機械学習プログラムを始めるために、まずは概要の説明とインストールを行いました。
また、公式ページの例題を実行し動作確認を行うと共に、scikit-learnで出来ることの一部を確認しました。
今回は準備記事です!まだ僕自身も勉強が必要ですが、次第に機械学習系の記事も増やしていきたいと思います!
Twitterでも関連情報をつぶやいているので、wat(@watlablog)のフォローお待ちしています!
コメント