【Scikit-learn】機械学習入門・使い方・読み方

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

【はじめに】Scikit-learnとは?特徴など紹介

scikit-learnとは、Pythonの機械学習ライブラリです。読み方は「サイキット・ラーン」。
主な特徴は次の通りです。

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

【基礎】Scikit-learnで様々な学習手法を試す

コラム 概要
回帰分析 回帰分析では、「結果(目的変数)」と「結果に影響を及ぼすデータ(説明変数)」の関係性を統計的に求める手法です。2つのデータの関係性がわかれば、将来どのような結果となるかの予測を行うことができます。説明変数が1つの場合が「単回帰分析」、複数の場合は「重回帰分析」といいます。
単回帰分析 【特徴】予測対象:連続値, 学習タイプ:教師あり, 可読性:○, 並列処理:✕
最小二乗法や最尤推定によって回帰直線の係数と切片を求めます。
重回帰分析 単回帰分析の説明変数が複数になった回帰分析です。
過学習対策 回帰分析の過学習対策(Ridge回帰、Lasso回帰、変数選択など)について解説します。
数量化1類 説明変数が定性データとなった回帰分析の1つである数量化1類について解説します。
ロジスティック回帰 【特徴】測対象:分類, 学習タイプ:教師あり, 可読性:○, 並列処理:✕
2分類問題に対応した回帰分析です(線形回帰の出力をロジット関数に入力)。
サポートベクターマシン 【特徴】予測対象:分類, 学習タイプ:教師あり, 可読性:○, 並列処理:✕
マージン最大化のアイデアにより、汎化性能が高い2分類を行います。計算コストは高めです。
決定木分析 【特徴】モデル:木構造(非線形), 学習タイプ:教師あり, 予測対象:分類, 可読性:○, 並列処理:✕
枝先で1つの説明変数と閾値のセットでにデータを2つに分けるのを繰り返します。説明変数の選択と閾値は、ジニ不純度やエントロピー等で決定されます。
多層ニューラルネットワーク(MLP) 【特徴】モデル:神経回路, 学習タイプ:教師あり 予測対象: 連続値・分類, 可読性:✕, 並列処理:○
・古典的なニューラルネットワーク
・多層構造(入力・隠れ層・出力)
・学習にはバックプロパゲーションを用いることが多い。
・複雑なモデルを構築できる反面、過学習も多い。
クラスタ分析 クラスタ分析(Clustering) は、特徴が類似するデータ同士をまとめて、データ構造を発見します。分類 (Classification)データとラベルを学習し、データに対するラベルを予測します。
階層型クラスタ分析 【特徴】予測対象:分類, 学習タイプ:教師なし, 可読性:○, 並列処理:✕
・代表例はユークリッド距離*ウォード法
・あらかじめ定義した距離を用いてデータをグループ化
・クラスタ数(分類数)は、計算後に変更可能
非階層型クラスタ分析 【特徴】予測対象:分類, 学習タイプ:教師なし, 可読性:✕, 並列処理:○
・代表例はk平均法
・クラスタ数(分類数)を事前に指定する必要がある(後から変更不可)
・階層型クラスタリングで高速化もできる・
初期値によって結果が異なる等の問題あり
トピックモデル 【特徴】予測対象:分類, 学習タイプ:教師なし, 可読性:✕, 並列処理:○
・代表例はLDA
・トピック数(分類数)は事前に与える必要あり
・トピック毎の出現頻度からスコアを計算してデータを分類
・計算量が大きい
k近傍法 時系列データの異常検知を行います。
特異スペクトラム変換法 時系列データの異常検知を行います。
動的時間伸縮法(DTW) 時系列データの類似度を求めます。
コサイン類似度 時系列データの類似度を求めます。

【その他】便利な機能、ツール、参考文献

便利な機能・ツール・参考文献
便利な機能 データセット
参考文献 公式ドキュメント【機械学習】入門者向け資料scikit-learn機械学習Scikit-Learn Cheat Sheet: Python Machine LearningScikit learnで学ぶ機械学習入門(Slide Share)scikit-learn から学ぶ機械学習の手法の概要scikit-learn: Python での機械学習機械学習ライブラリscikit-learnの馬鹿丁寧なe-learningscikit-learnでよく利用する関数の紹介人工知能に関する断創録scikit learnチートシート代表的な機械学習手法一覧

コメント