Pythonモジュール「Scikit-learn」で機械学習を行う方法について入門者向けに使い方を解説します。
Scikit-learnの特徴
本ページの内容は以下動画で解説しています。
scikit-learn(サイキット・ラーン)とは、Pythonの機械学習モジュールです。
scikit-learn公式ページ
主な特徴
- 多くの機械学習アルゴリズム(回帰分析、クラスタリング、SVM・ニューラルネット等の識別器、次元圧縮など)を簡単に実装できる。
- BSDライセンスなので、条件を満たせば商用利用可能。
- 日本語の情報量が多く、公式ドキュメントや解説書なども充実している。
- 他のライブラリ「NumPy」「SciPy」「Pandas」「Matplotlib」と連携しやすい。
Scikit-learnの基礎
- 環境構築
- 回帰分析
- 回帰分析では、「結果(目的変数)」と「結果に影響を及ぼすデータ(説明変数)」の関係性を統計的に求める手法です。2つのデータの関係性がわかれば、将来どのような結果となるかの予測を行うことができます。説明変数が1つの場合が「単回帰分析」、複数の場合は「重回帰分析」といいます。
- 単回帰分析を実装する方法
- 重回帰分析を実装する方法
- 過学習対策(Ridge回帰、Lasso回帰、変数選択など)
- 数量化1類(説明変数が定性データ)
- ロジスティック回帰
- サポートベクターマシン
- 【特徴】予測対象:分類, 学習タイプ:教師あり, 可読性:○, 並列処理:✕
- 【概要】マージン最大化のアイデアにより、汎化性能が高い2分類を行います。計算コストは高めです。
- 決定木分析
- 【特徴】モデル:木構造(非線形), 学習タイプ:教師あり, 予測対象:分類, 可読性:○, 並列処理:✕
- 【概要】マ枝先で1つの説明変数と閾値のセットでにデータを2つに分けるのを繰り返します。説明変数の選択と閾値は、ジニ不純度やエントロピー等で決定されます。
- クラスタ分析
- 特徴が類似するデータ同士をまとめて、データ構造を発見します。分類 (Classification)データとラベルを学習し、データに対するラベルを予測します。
- 階層型クラスタ分析
- 【特徴】予測対象:分類, 学習タイプ:教師なし, 可読性:○, 並列処理:✕
- 【概要】代表例はユークリッド距離*ウォード法。あらかじめ定義した距離を用いてデータをグループ化。クラスタ数(分類数)は、計算後に変更可能。
- 非階層型クラスタ分析
- 【特徴】予測対象:分類, 学習タイプ:教師なし, 可読性:✕, 並列処理:○
- 【概要】代表例はk平均法。クラスタ数(分類数)を事前に指定する必要がある(後から変更不可) 。階層型クラスタリングで高速化もできる。初期値によって結果が異なる等の問題あり。
k平均法(k-means)
- ニューラルネットワーク
- 多層ニューラルネットワーク(MLP)
- 【特徴】モデル:神経回路, 学習タイプ:教師あり 予測対象: 連続値・分類, 可読性:✕, 並列処理:○
- 【概要】古典的な多層構造(入力・隠れ層・出力)のニューラルネットワーク。学習にはバックプロパゲーションを用いることが多い。複雑なモデルを構築できる反面、過学習も多い。
- 時系列データの異常検知
- 時系列データの類似度
参考文献
- 公式ドキュメント
- 【機械学習】入門者向け資料
- 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チートシート
- 代表的な機械学習手法一覧
関連ページ
【Python超入門】使い方とサンプル集
Pythonの使い方について、基礎文法から応用例まで入門者向けに解説します。