最近傍法
・小さいデータに関してはいい感じになる。説明が容易。
線形モデル
・最初に試してみるアルゴリズム。非常に大きいデータセットに適する。非常に高次元のデータに適する。
ナイーブベイズ
・クラス分類にしか使えない。線形モデルよりも高速。非常に大きいデータセット、高次元のデータに適する。線形モデルよりも精度が劣る。
決定木
・非常に高速。データのスケールを考慮する必要がない。可視化が可能で説明しやすい。
ランダムフォレスト
・殆どの場合で単一の決定木よりも高速。データのスケールを考慮する必要がない。高次元の疎のデータは適さない。
・n_estimators、max_depth、max_featuresなどの事前枝刈りパラメータ。n_estimatorsは大きいければ大きいほどいい。過学習を低減できるから。増やすことによって訓練に時間がかかる様になる。max_featuresはデフォルトでいい
勾配ブースティング決定木
・多くの場合でランダムフォレストより少し精度が高い。
・ランダムフォレストに比べは訓練に時間がかかることが予測は高速。パラメータは敏感。
・主要なパラメータは決定木の数を決めるn_estimators、個々の決定木の誤りを補正する度合いを制御するlearning_rate、個々の決定木の複雑さをへらすmax_depth。max_depthは一般に5以下にすることが多い。
迷ったときはランダムフォレストを試してみる。ただ、時間が短いことを重視する場合は勾配ブースティングを試す。ランダムフォレストではn_estimatorsが大きければ大きいほど良かったが勾配ブースティングでn_estimatorsを大きくすると複雑なモデルを許容する事になり過学習を招くことになる。
SVM
・データに僅かな特徴量しかなくても複雑な決定境界を作ることができる。低次元のデータでも高次元のデータであっても(特徴量が多くても少なくても)うまく機能する。
・サンプル数が多くなると機能しない。1万サンプルぐらいまではうまくいく。
・問題点はデータの前処理とパラメータ調整を行う必要がある。また検証が難しい。ある予測がされた理由を理解するのが難しい。
ニューラルネットワーク
・大きなデータセットに有効。データのスケールを調整する必要がある。
・データの前処理に時間がかかる。
・SVMと同様にデータのすべての特徴量が同じ意味を保つ場合に最もよく機能する。様々な種類の特徴量の場合は決定木のほうがいい
・隠れ層は1つか2つで始めて増やしていくといい。
fitはモデルをリセットする。