Scikit-learnの使い方まとめ(機械学習入門・サンプル集)

Pythonモジュール「Scikit-learn」で機械学習を行う方法について入門者向けに使い方を解説します。

Scikit-learnの特徴

本ページの内容は以下動画で解説しています。

scikit-learn(サイキット・ラーン)とは、Pythonの機械学習モジュールです。
scikit-learn公式ページ

主な特徴

  • 多くの機械学習アルゴリズム(回帰分析、クラスタリング、SVM・ニューラルネット等の識別器、次元圧縮など)を簡単に実装できる。
  • BSDライセンスなので、条件を満たせば商用利用可能
  • 日本語の情報量が多く、公式ドキュメントや解説書なども充実している。
  • 他のライブラリ「NumPy」「SciPy」「Pandas」「Matplotlib」と連携しやすい。

Scikit-learnの基礎

  • 環境構築
  • 回帰分析
  • サポートベクターマシン
    • 【特徴】予測対象:分類, 学習タイプ:教師あり, 可読性:○, 並列処理:✕
    • 【概要】マージン最大化のアイデアにより、汎化性能が高い2分類を行います。計算コストは高めです。
  • 決定木分析
    • 【特徴】モデル:木構造(非線形), 学習タイプ:教師あり, 予測対象:分類, 可読性:○, 並列処理:✕
    • 【概要】マ枝先で1つの説明変数と閾値のセットでにデータを2つに分けるのを繰り返します。説明変数の選択と閾値は、ジニ不純度やエントロピー等で決定されます。
  • クラスタ分析
    • 特徴が類似するデータ同士をまとめて、データ構造を発見します。分類 (Classification)データとラベルを学習し、データに対するラベルを予測します。
  • 階層型クラスタ分析
    • 【特徴】予測対象:分類, 学習タイプ:教師なし, 可読性:○, 並列処理:✕
    • 【概要】代表例はユークリッド距離*ウォード法。あらかじめ定義した距離を用いてデータをグループ化。クラスタ数(分類数)は、計算後に変更可能。
  • 非階層型クラスタ分析
    • 【特徴】予測対象:分類, 学習タイプ:教師なし, 可読性:✕, 並列処理:○
    • 【概要】代表例はk平均法。クラスタ数(分類数)を事前に指定する必要がある(後から変更不可) 。階層型クラスタリングで高速化もできる。初期値によって結果が異なる等の問題あり。
      k平均法(k-means)
  • ニューラルネットワーク
  • 多層ニューラルネットワーク(MLP)
    • 【特徴】モデル:神経回路, 学習タイプ:教師あり 予測対象: 連続値・分類, 可読性:✕, 並列処理:○
    • 【概要】古典的な多層構造(入力・隠れ層・出力)のニューラルネットワーク。学習にはバックプロパゲーションを用いることが多い。複雑なモデルを構築できる反面、過学習も多い。
  • 時系列データの異常検知
  • 時系列データの類似度

参考文献

関連ページ

【Python超入門】使い方とサンプル集
Pythonの基礎文法から応用例まで入門者向けに解説します。