モデルの汎化:ブートストラップと交差検証

Pythonで学ぶMachine Learning面接対策

Lisa Stuart

Data Scientist

第4章の概要

  • ブートストラップ/交差検証 → モデル汎化
  • クラス不均衡
  • 特徴量の相関
  • アンサンブルのモデル選択
Pythonで学ぶMachine Learning面接対策

モデルの汎化

  • 未知データで良好に動作する ML モデルの能力
    • テストデータ
    • 将来データ
  • 学習指標 ≈ テスト指標
  • 過学習モデルは汎化しない
Pythonで学ぶMachine Learning面接対策

決定木

決定木のプロット

1 https://medium.com/@rnbrown/creating-and-visualizing-decision-trees-with-python-f8e8fa394176
Pythonで学ぶMachine Learning面接対策

決定木のノード

決定木の根ノード

Pythonで学ぶMachine Learning面接対策

長所と短所

決定木のプロット

  • 長所:
    • 理解しやすい
    • 可視化しやすい
  • 短所:
    • 過学習しやすい
    • 貪欲法的
    • クラス不均衡で偏りやすい
Pythonで学ぶMachine Learning面接対策

ランダムフォレスト

ランダムフォレスト

1 https://www.researchgate.net/figure/Random-Forest-visualization_fig11_326560291
Pythonで学ぶMachine Learning面接対策

K分割交差検証

K分割交差検証

1 https://scikit-learn.org/stable/modules/cross_validation.html
Pythonで学ぶMachine Learning面接対策

関数

# decision tree
`sklearn.tree.DecisionTreeClassifier` 

# random forest 
`sklearn.ensemble.RandomForestClassifier`

# cross-validated grid search
`sklearn.model_selection.GridSearchCV` 

# model accuracy
`sklearn.metrics.accuracy_score` 

# train/test split function
`sklearn.model_selection.train_test_split`

# Parameters that gave best results
`cross-val_model.best_params_`

# Mean cross-validated score of 
# estimator with best params 
`cross-val_model.best_score_`
Pythonで学ぶMachine Learning面接対策

GridSearchCV と RandomSearchCV

グリッドサーチ

Pythonで学ぶMachine Learning面接対策

演習に進みましょう!

Pythonで学ぶMachine Learning面接対策

Preparing Video For Download...