【Scikit-learn】機械学習入門(使い方)

この記事では、Pythonと「Scikit-learn」で機械学習を行う方法について入門者向けに使い方を解説します。

Scikit-learnとは

scikit-learnとは、Pythonの機械学習ライブラリです。
このライブラリを使えば、ニューラルネットワーク(NN)、サポートベクターマシン、ランダムフォレスト、k近傍法などの分類回帰クラスタ分析を手軽に実装できます。
scikit-learnの主な特徴は次の通りです。

特徴
幅広い機械学習アルゴリズムを実装(回帰分析、クラスタリング、SVM・ニューラルネット等の識別器、次元圧縮など)
BSDライセンスなので商用利用可能
情報が多くドキュメントも充実している
他のライブラリ「NumPy」「SciPy」「Pandas」「Matplotlib」とやり取りしやすい

Scikit-learnの使い方について、項目別に下記にまとめました。

環境構築

Pythonの実行環境と、機械学習ライブラリ「Scikit-learn」の導入方法を以下に整理しました。
WinPythonなどのPythonパッケージを使うと、「実行環境」「Scikit-learn」を一括で導入してくれるのでオススメです。

項目
Python環境の構築法①
(Pythonパッケージ)
WinPython編, Anaconda編, Python(x, y)編,
Python環境の構築法②
(公式インストーラ)
Python2.7編, Python3.5編
Scikit-learnの導入
(公式インストーラ)
インストール方法, インストール方法(pip版)
動作テスト アイリスデータセット可視化, バージョン確認
Pythonの基礎(参考) Python入門 サンプル集

回帰分析

回帰分析では、「結果データ」と「結果に影響を及ぼすデータ」の関係性を統計的に求める手法です。
この2つのデータの関係性がわかれば、将来どのような結果となるかの予測を行うことができます。
このとき、結果データを「目的変数」、結果に影響を及ぼすデータを「説明変数といいます。
また、説明変数が1つの場合が「単回帰分析」、複数の場合は「重回帰分析」といいます。
Scikit-learnを用いて回帰分析を行う方法を以下に整理しました。

項目
単回帰分析 単回帰分析, 学習ファイル出力, 学習ファイル読込
重回帰分析 重回帰分析, 学習ファイル出力, 学習ファイル読込

クラスタ分析

クラスタ分析(Clustering) 特徴が類似するデータ同士をまとめて、データ構造を発見します。
分類 (Classification)データとラベルを学習し、データに対するラベルを予測します。

項目
K-means法 データの分類, ラベリング, 各クラスタのサンプル数表示, 各クラスタの平均値表示

次元削減

次元削減 (Dimensionality reduction) データの次元を削減し、要因を発見 (主成分分析など) したり、他の手法の入力に使います。

項目
準備中

決定木分析

項目
決定木分析 決定木分析, データ予測, 学習ファイル出力, 学習ファイル読込

サポートベクターマシン

項目
SVM 教師あり学習, 多クラス分類, 学習ファイル出力, 学習ファイル読込

ニューラルネットワーク

NN(ニューラルネットワーク)はバージョン0.1.8.0以降から使用可能です。

項目
NN アヤメ分類, 学習・予測, 識別率(予測検証), 学習ファイル出力, 学習ファイル読込

その他

項目
参考文献 公式ドキュメント, 【機械学習】入門者向け資料, scikit-learn機械学習, Scikit-Learn Cheat Sheet: Python Machine Learning, Scikit learnで学ぶ機械学習入門(Slide Share), scikit-learn から学ぶ機械学習の手法の概要, scikit-learn: Python での機械学習, 機械学習ライブラリscikit-learnの馬鹿丁寧なe-learning, scikit-learnでよく利用する関数の紹介, 人工知能に関する断創録, scikit learnチートシート

シェア&フォローお願いします!