多数の小さな木と、特徴量の公正な順位付け
決定木は「20日リターンは1%を超えるか」のような問いで行を繰り返し分割し、各段階でグループが最も純粋になる分割を選びます。グループのジニ不純度は G=1-Σₖpₖ² で、2つの子の加重不純度を下げる分割が良い分割です。深さに制限のない木は葉ごとに1行となり、学習正解率は100%、テスト正解率は約50%になります。木を誠実に保つ方法は2つあります。ランダムフォレストは、行と特徴量のランダムな標本で育てた浅い木を多数平均し、誤りが部分的に打ち消し合います。勾配ブースティングは小さな木を1本ずつ足し、各木はそこまでの和がまだ外している部分に当てはめます:Fₘ=Fₘ₋₁+νhₘ。学習率 ν が各ステップを小さく保ちます。どちらも max_depth、min_samples_leaf、木の本数で制御し、再現のために random_state が必要です。
特徴量重要度には2種類あります。不純度重要度(feature_importances_)は、学習行で各特徴量が不純度をどれだけ下げたかの合計で、総和は1になり、異なる値が多い特徴量に有利で、モデルがすでに見たデータで計算されます。置換重要度はテスト行の1列をシャッフルし、スコアがどれだけ落ちるかを測ります。重要な特徴量は崩すと痛手になり、無用なものは影響しません。ラベルが2つの特徴量の積で決まる人工的な問題では、ロジスティック回帰のAUCは0.5付近ですが、木は交互作用を見つけ、2つの順位付けはどちらも正しい2列を指します。SPYの方向では役に立たない結果になります。深さ無制限の木のテスト正解率は50.5%、AUCはロジット0.498、フォレスト0.515、ブースティング0.531、6つの不純度重要度はすべて0.13から0.20の間で、置換による順位はそれと食い違います。平坦な重要度と0.5付近のテストAUCは、順位付けすべきものがないことを意味します。
- 深さを制限する:無制限の木は学習で100%、テストで約50%。
- 不純度重要度は学習行で計算され、信頼すべきはテスト行の置換重要度。
- 木は線形モデルに見えない交互作用を捉えるが、ノイズの多いリターンには存在しない。AUCは0.5付近が当然。
ラボ:採点される内容
- 深さ曲線15点
- フォレストとブースティング10点
- 3モデル、3つのAUC20点
- 不純度重要度10点
- 置換による順位20点
- SPYの研究25点