この記事では、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) | 時系列データの類似度を求めます。 |
コサイン類似度 | 時系列データの類似度を求めます。 |
コメント