Permutation
概要
Permutation Feature Importance(PFI)は、学習済みモデルを使い、特定パラメータの値をランダムに並び替えたときに予測精度がどれだけ低下するかでパラメータ重要度を定量化する手法です(Breiman 2001; Fisher et al. 2019)。
RF-ANOVA(fANOVA)は葉ボックス上の分散分解であり、シャッフルを一切行いません。 これに対し PFI は、シャッフルによる精度低下そのものを重要度の根拠とします。 n_repeats=5 回の独立した並び替えを平均することで、重要度推定の統計的ばらつきを低減しています。
理論背景
基本原理
あるパラメータ の値をデータセット中でランダムに並び替えると、 が目的変数と持っていた相関構造が破壊されます。 並び替え前後でモデルの予測誤差がどれだけ増加したかが、そのパラメータの重要度となります:
- :ホールドアウトデータ上のベースライン MSE
- : を 番目に並び替えた後の MSE
- 負値をゼロにクリップするのは、有限サンプルの数値誤差による下振れを防ぐためです
n_repeats 平均による分散低減
単回の並び替えでは、特定のシャッフルが偶然「あたり」または「はずれ」となり、推定値に大きな分散が生じます。 回繰り返して平均することで、分散を 倍に抑えられます(各繰り返しが独立なため):
各繰り返しには独立したシードを用います(後述)。
正規化
各パラメータの を、合計が 1 になるよう正規化します:
合計が 未満の場合は、すべて 0 を返します(すべての特徴量が全く無意味な縮退ケース)。
ホールドアウト評価の必要性
訓練データ上でパーミュテーションを実施すると、木が訓練データを記憶している(過学習)場合に となり、すべての重要度が 0 に近くなります。
これを避けるため、訓練データとは独立したホールドアウトデータ(評価データ)上でパーミュテーション評価を行います:
エッジケース: フィルタリング後のサンプル数が 4 未満の場合、ホールドアウト分割は無効化され、評価は訓練データと同じデータで行われます。 この状況では重要度スコアの信頼性が低下します。
全体の流れとしては、データをシャッフルして 80% を訓練、20% を評価に分割し、訓練データで学習したモデルの評価データ上のベースライン MSE を求めたうえで、パラメータごとに評価データの列をパーミュテーションして MSE の増分を測定します。
Tunny Dashboard での計算の流れ
- 前処理。 NaN/Inf を含む行は除外します。有効な行が 2 未満の場合は、すべての重要度を 0 として打ち切ります。行数が 2,000 を超える場合は、ランダムサンプリングで 2,000 行に削減します。
- ホールドアウト分割(シード 43)。 シャッフル後、先頭 80% を訓練データ、残り 20% を評価データとします(N < 4 の場合は全データを訓練・評価の両方に使います)。
- モデルの学習(1 回のみ)。 訓練データで 100 本の回帰木からなる Random Forest を学習します。学習したモデルは、以降の全パラメータ・全リピートの評価で共有します。
- ベースライン MSE の計算。 学習したモデルで評価データを予測し、ベースラインの MSE を求めます(数値安定化のため下限をごく小さい正の値でクランプします)。
- パーミュテーション重要度の計算(5 リピート)。 パラメータ ごとに、評価データの列 を独立なシードでシャッフルする操作を 5 回繰り返し、シャッフル後の MSE がベースラインよりどれだけ増えたか(増分がマイナスなら 0)を平均します。得られた値を、合計が 1 になるよう正規化します。
- R² の計算。 ベースライン MSE から決定係数を求めます。
シード設計
| 用途 | シード値 |
|---|---|
| データ分割シャッフル | 43 |
| パラメータ 、繰り返し の列シャッフル |
シード は の組み合わせごとに一意であり、独立したシャッフルを保証します。
設計上の注意: 分割シード 43 は RF-ANOVA の分割シードと同一です。 したがって、同一データセットに対して RF-ANOVA と Permutation を実行した場合、両手法は全く同じホールドアウト分割を使って評価します。 これは両手法の評価条件を揃えるための設計上の選択ですが、比較時には「同一の評価セットを見ている」ことを念頭に置く必要があります。
ハイパーパラメータ
| パラメータ | 値 | RF-ANOVA との比較 |
|---|---|---|
| 木の本数 | 100 | RF-ANOVA は 64 本 |
| 最大深さ | 10 | 同じ |
| 最小リーフサンプル | 2 | 同じ |
| 訓練シード | 42 | 同じ |
| n_repeats | 5 | RF-ANOVA はシャッフル自体を行わない |
| 最大行数 | 2,000 | 同じ |
R² の解釈
R² は評価データ上のサロゲートモデル(Random Forest)の決定係数であり、重要度推定の信頼性指標となります:
RF-ANOVA では R² を 0 未満にならないようクリップしますが、Permutation では負値を許容します。 負の R² は「モデルが平均予測よりも悪い」ことを示し、正確な情報を提供します。
| R² | 色 | 意味 |
|---|---|---|
| ≥ 0.8 | 緑 | モデルの当てはまりが良好。重要度の信頼性が高い |
| 0.5 ≤ R² < 0.8 | 黄 | やや低め。参考程度として扱う |
| < 0.5(負値含む) | 赤 "(low fit)" | モデルが目的関数を説明できていない。重要度の信頼性が低い |
RF-ANOVA との比較
| 比較軸 | Permutation (本手法) | RF-ANOVA (fANOVA) |
|---|---|---|
| シャッフル | 特徴量ごとに 5 回 独立にシャッフル | シャッフルを一切行わない(葉ボックス上の分散分解) |
| 木の本数 | 100(1 回のみ学習) | 64 |
| 計算時間 | 学習 1 回 + 特徴量ごとに約 5 回の評価 | ベースライン(学習 + 木ごとの分散分解、追加評価なし) |
| ホールドアウト分割 | 同一(seed=43) | 同一(seed=43、ただし重要度自体は学習データ側のフォレストから算出し、ホールドアウトは R² にのみ使用) |
| R² のクランプ | しない(負値あり) | max(R², 0) でクランプ |
| バイアス | 相関特徴量の影響が残る | 交互作用を単一パラメータの主効果には帰属しない |
両手法は同じホールドアウト分割シードを使いますが、RF-ANOVA の重要度はシャッフルを介さず学習済みフォレストから直接算出される点が本質的に異なります。 少数サンプルや分散の大きいデータでは、Permutation の方が安定した結果が得られます。
数値の安定化
ベースライン MSE が完全予測でゼロに近くなった場合でも比較の分母がゼロにならないよう、ごく小さい正の値を下限としてクランプしてから重要度を計算します。 このクランプは、シャッフル後の MSE との差から求まる重要度の相対的な順序には影響しません。
モデルの学習自体に失敗した場合はすべての重要度を 0 として返し、特定の繰り返しでの評価に失敗した場合は、その繰り返し分の増分を 0 として扱います。
計算コストの目安
計算コストは「モデルの学習 1 回 + パラメータ数 × リピート数分の評価(予測)」で構成されます。 支配的なモデルの学習は 1 回だけなので、全体の計算量は RF-ANOVA に追加のパーミュテーション評価(約 5 倍)を加えた程度であり、評価自体は学習済みモデルでの予測のみのため軽量です。
注意事項
相関特徴量の過小評価
複数の特徴量が互いに高い相関を持つ場合、1 つの特徴量を並び替えてもモデルが他の特徴量を代用できるため、重要度が実際より低く見積もられます。 これは PFI の既知の制限事項(Molnar 2022)であり、RF-ANOVA も同様の問題を持ちます。
サンプル分布の偏り
Tunny のトライアルデータは Optuna によってベイズ最適化的にサンプリングされるため、パラメータ空間が一様でない可能性があります。 サンプリング密度が高い領域の特徴量は過大評価、疎な領域は過小評価される傾向があります。 これはすべての感度分析手法に共通する注意点です。
n_repeats と計算コストのトレードオフ
n_repeats=5 は、計算コストと分散低減のバランスをとった設定値です。 分散の標準誤差は であるため、n_repeats を 5 から 20 に増やしても、さらなる安定化効果は限定的です。
参考文献
- Breiman, L. (2001). "Random Forests." Machine Learning, 45(1), 5–32. https://doi.org/10.1023/A:1010933404324
- Fisher, A., Rudin, C., & Dominici, F. (2019). "All Models are Wrong, but Many are Useful." Journal of Machine Learning Research, 20(177), 1–81. https://jmlr.org/papers/v20/18-760.html
- Altmann, A., Toloşi, L., Sander, O., & Lengauer, T. (2010). "Permutation importance: a corrected feature importance measure." Bioinformatics, 26(10), 1340–1347. https://doi.org/10.1093/bioinformatics/btq134
- Molnar, C. (2022). Interpretable Machine Learning, 2nd ed. Chapter 8.5. https://christophm.github.io/interpretable-ml-book/