/ #machine learning 

機械学習のアルゴリズムの選び方『仕事ではじめる機械学習』読書メモ

仕事ではじめる機械学習という本を読んで勉強中なのですが、「やりたいことに対して、どのアルゴリズムを選ぶべきか」が述べられている2章のざっくりメモです。

scikit-learningのアルゴリズムチートシート

scikit-learnのチュートリアルに、データ数や目的、条件を元に適切なアルゴリズムを選定するためのフローチャートがある。(画像をクリックするとオリジナルサイトへ飛びます)

scilit-learn algorithm cheat-sheet

タイプ別のアルゴリズム一覧

タイプ 概要 アルゴリズム 特徴

分類(Classfication)

教師あり学習の一つ。カテゴリなどの離散的な値を予測する。
適用例:メールのスパム判定、画像に写っているものの判定

パーセプトロン(Perceptron)

オンライン学習で学習する。予測性能はそこそこだが学習は早い。過学習しやすい。

ロジスティック回帰(Logistic Regression)

クラスに所属する確率を出せる。オンライン学習、バッチ学習可能。予測性能はそこそこだが学習は早い。

SVM(Support Vector Machine)

分類問題に非常によく使われる。非線形な分離が必要な問題にも適用可能。マージンを最大化し、滑らかな超平面を学習できる。線形カーネルで次元数の多い疎なデータも学習可能。パッチ学習、オンライン学習可能。

ニューラルネットワーク(Neural Network)

非線形なデータを分離可能。学習に時間がかかる。過学習しやすい。重みの初期値に依存し、局所最適解になりやすい。

k-NN(K-Nearest Neighbor Method)

データを1つずつ逐次学習する。予測計算に時間がかかる。データ数によるがそこそこの予測性能。

決定木(Decision Tree)

学習したモデルを人間が見て解釈しやすい。入力データの正規化不要。特定の条件下では過学習しやすい。決定木の発展形として、ランダムフレス(Random Forest)、GBDT(Gradient Boosted Decision Tree)がある

回帰(Regression)

教師ある学習の一つ。入力データから連続値を予測する。
適用例: 都市の電力消費量、Webサイトのアクセス数予測

線形回帰(Linear Regression)

データを直線で近似する。

多項式回帰(Polynomial Regression)

2次曲線や3次曲線の多項式を使った多項式でデータを近似する。

クラスタリング(Clustering)

教師なし学習の一つ。主にデータの傾向を掴むために使われる。

階層的クラスタリング(Hierarchical Clustering)

似ている組み合わせを順番にまとめていく。

k-means

距離の近いもの同士をk個のグルーブに分割する。

次元削除(Dimension Reduction)

高次元のデータからできるだけ情報を保存するよう低次元のデータに変換する。

主成分分析(PCA, Principal Component Analysis)

有名な手法。

t-SNE

可視化に用いられることが多い。

Kaggle

PCAよりもわかりやすく関係性を可視化できる。

以下の4つは手法ではなく、機械学習で「できること」

  • 推薦(Recommendation)

  • 異常検知(Anomaly Detection)

  • 頻出パターンマイニング(Frequent Pattern Mining)

  • 強化学習(Reinforcement Learning)

Edit(Admin)