構造化データを実務で扱う際によく使われる代表的な機械学習手法を紹介。
構造化データとは?
XGBoost, LightGBM, CatBoostはGBDTをベースにした手法。
GBDT: Gradient Boosting Decision Tree 勾配ブースティング決定木
シンプルで軽量なモデルで、分類問題のベースラインとしても重要な手法。Logistic Regression
複数の決定木を組み合わせるアンサンブル学習。比較的扱いやすく、非線形な関係も捉えられる。
決定木を順番に追加していくGBDT(勾配ブースティング決定木)の代表的な実装。高い予測性能と汎用性を持つ。eXtreme Gradient Boosting
Level-wise: 木を横に広げていく育て方。同じ深さにあるノードを優先して分割し、木を階層ごとに成長させていく方式。
高速な学習と省メモリ化を重視したGBDTの実装。大規模な表形式データを扱いやすい。
Leaf-wise: 木を縦に伸ばしていく育て方。分割によって損失を最も大きく減らせそうな葉を選び、そこを優先して深くしていく方式。
GOSS: Gradient-based One-Side Sampling 勾配の大きいデータを優先的に残し、勾配の小さいデータを一部サンプリングすることで、分割探索に使うデータ量を減らす。
EFB: Exclusive Feature Bundling 同時に値を持つことが少ない特徴量をひとつにまとめ、特徴量の数を減らすことで計算を効率化する。
カテゴリ変数を含む表形式データを扱いやすくすることに重点を置いたGBDTの実装。Categorical Boosting
PyCaretの分類モジュールには、さまざまな機械学習アルゴリズムが用意されている。ここでは、その中から代表的な手法を(version 3.0.4の場合)。
大きく分けると、ツリー系、線形・統計系、近傍・確率系に分類できる。
複雑な非線形ルールを学習するのが得意なグループ。
| ID | 名称 | 特徴 | 長所 | 短所 |
|---|---|---|---|---|
| gbc | Gradient Boosting | 決定木を順番に追加し、前のモデルの弱点を補う | 高い予測性能を得やすい | 学習を完全には並列化しにくい |
| lightgbm | LightGBM | Leaf-wise方式などで学習を高速化 | 高速で大規模データに向く | 少ないデータでは過学習に注意 |
| xgboost | XGBoost | GBDTに計算効率化や正則化などを加えた | 高い予測性能と汎用性 | パラメータ調整がやや複雑 |
| rf | Random Forest | 多数の決定木を独立に学習して予測を組み合わせる | 安定した予測を得やすい | 木の数が増えるとモデルが大きくなる |
| et | Extra Trees | 決定木の分割をさらにランダム化 | 高速で、RFとは異なる多様なモデルを作れる | ランダム化によって予測性能が下がる場合もある |
| ada | AdaBoost | 誤分類されたデータを重視して次のモデルを作る | 比較的単純なモデルでも高い性能を狙える | ノイズや外れ値の影響を受けやすい |
| dt | Decision Tree | 条件分岐を繰り返して分類する | 可視化しやすく、比較的解釈しやすい | 複雑にすると過学習しやすい |
| catboost | CatBoost | カテゴリ変数を扱いやすいGBDT | カテゴリ変数を多く含むデータに強い | 学習や推論が重くなる場合がある |
データが直線的(または超平面)に分かれると仮定するグループ。
| ID | 名称 | 特徴 | 長所 | 短所 |
|---|---|---|---|---|
| lr | Logistic Regression | 線形結合をもとにクラスの確率を予測 | 軽量で解釈しやすく、ベースラインに向く | 複雑な非線形関係を捉えにくい |
| ridge | Ridge Classifier | L2正則化を加えた線形分類 | 特徴量が多い場合にも比較的安定 | 非線形な関係を捉えにくい(クラスを直接予測するためAUCは0になる) |
| lda | Linear Discriminant Analysis | クラス間の分離とクラス内のばらつきを考慮して分類 | 高速で比較的シンプル | 分布について一定の仮定がある |
| qda | Quadratic Discriminant Analysis | クラスごとの分布の違いを考慮して曲線的な境界を作る | 非線形な境界にも対応できる | データ量が少ないと不安定になりやすい |
| svm | SVM(Linear Kernel) | クラス間の境界のマージンを最大化 | 高次元データに比較的強い | スケーリングの影響を受けやすい |
似たもの探しや確率で判断するグループ。
| ID | 名称 | 特徴 | 長所 | 短所 |
|---|---|---|---|---|
| knn | K Neighbors | 近くにあるデータのクラスをもとに予測 | 直感的で局所的なパターンを捉えやすい | 予測時の計算量が大きくなりやすい |
| nb | Naive Bayes | 特徴量が独立と仮定して確率を計算 | 高速で、テキスト分類などに向く | 特徴量の独立という仮定が現実と合わない場合がある |
| dummy | Dummy Classifier | 単純なルールで予測する(最頻値など) | モデルの最低ラインを確認できる | 学習による予測能力を持たない |