Tunny Icon
TunnyDocs

The next-gen Grasshopper optimization tool.

Ridge

概要

Ridge 回帰は、線形モデルに L2 正則化を加えた手法で、各パラメータの係数を使って感度を評価します。 Tunny Dashboard の Importance チャートでは、目的関数ごとに学習した Ridge の係数の絶対値 βj|\beta_j| を重要度スコアとして表示します。

  • 係数の符号:目的関数を増やす方向か、減らす方向か
  • 係数の絶対値:影響の強さ(感度)

Spearman と同様に軽量で、RF-ANOVA / SHAP / Sobol より高速に全体傾向を掴みたいときに有効です。

数式

標準化済み入力行列を XRn×pX \in \mathbb{R}^{n \times p}、目的変数を yRny \in \mathbb{R}^{n} とします。 まず yy を中心化して yc=yyˉy_c = y - \bar y を作ります。

Ridge の係数は次式で求めます:

β=(XTX+αI)1XTyc\beta = (X^T X + \alpha I)^{-1} X^T y_c

  • α\alpha:正則化強度(Tunny Dashboard では 1.0)
  • II:単位行列

予測値(中心化空間):

y^c=Xβ\hat y_c = X\beta

決定係数:

R2=1i(yc,iy^c,i)2iyc,i2R^2 = 1 - \frac{\sum_i (y_{c,i} - \hat y_{c,i})^2}{\sum_i y_{c,i}^2}

数値安定のため R2R^2 は下限 0 にクリップしています。

前処理とホールドアウト評価

RF-ANOVA / MDI / SHAP / PFI と同じ規約に統一されています(以前は Ridge だけ学習データ上の in-sample R² を報告しており、他手法の R² バッジと並べたときに過大評価になっていました)。

flowchart TD
    data["実際のトライアルデータ<br/>(X ∈ R^{N×P}, y ∈ R^N)"] --> step1["Step 1: NaN/Inf を含む行を除外<br/>(x または y のいずれかが非有限な行は<br/>学習・評価どちらにも使わない)"]
    step1 --> step2["Step 2: 80/20 ホールドアウト分割<br/>(Fisher-Yates シャッフル後に分割、シード 42/43)"]
    step1 -- "有効行 < 2" --> zero["全パラメータの重要度 0、<br/>R² = 0.0 を返す"]
    step2 -- "有効行 ≥ 4" --> split1["先頭 80% を訓練データ、<br/>残り 20% を評価データ"]
    step2 -- "有効行 < 4" --> split2["全データを訓練・評価両方に使う<br/>(フォールバック)"]
    split1 --> step3["Step 3: 標準化・中心化は TRAIN データの<br/>平均・標準偏差のみで行う<br/>(EVAL データも同じ TRAIN 由来の<br/>統計量で変換してから評価する)"]
    split2 --> step3
    step3 --> step4["Step 4: 法方程式<br/>(X_train^T X_train + αI)β = X_train^T y_{c,train}<br/>を解く"]
    step4 --> step5["Step 5: R² は EVAL データ上でのみ計算する<br/>(学習に使っていないデータで評価)"]

Ridge は法方程式を閉形式で解くため計算コストが軽く、RF-ANOVA/MDI/SHAP/PFI のような行数上限(2,000 行など)は設けていません。

計算フロー(要約)

  1. パラメータ列を取得し、NaN/Inf を含む行を除外します
  2. 80/20 でシャッフル分割します(データが少なすぎる場合は全データを訓練と評価の両方に使います)
  3. TRAIN データの平均と標準偏差で標準化し、TRAIN の yy 平均で中心化します(EVAL にも同じ統計量を適用)
  4. 法方程式 (XtrainTXtrain+αI)β=XtrainTyc,train(X_{\text{train}}^TX_{\text{train}} + \alpha I)\beta = X_{\text{train}}^Ty_{c,\text{train}} を解きます
  5. R2R^2 は EVAL データ上で計算し、 β\beta とともに返します
  6. UI では β|\beta| を棒グラフにして表示します

重要度表示の定義

Importance チャートの Ridge 重要度は次で定義されます:

scorej=βj\mathrm{score}_j = |\beta_j|

したがって、Ridge は「線形近似したときに、そのパラメータがどれだけ効くか」を示す指標です。

R² の解釈

  • R20.8R^2 \ge 0.8: 線形近似として十分に良好
  • 0.5R2<0.80.5 \le R^2 < 0.8: 参考には使えるが、非線形の可能性あり
  • R2<0.5R^2 < 0.5: 線形モデルでは説明不足。RF-ANOVA / SHAP / Sobol の併用を推奨

強みと限界

強み:

  • 高速(大規模データでも実行しやすいです)
  • 多重共線性にある程度強いです(L2 正則化)
  • 係数で説明しやすいです

限界:

  • 非線形、しきい値、強い交互作用を直接は表現できません
  • 係数の大きさが表すのは、あくまで線形近似の範囲での感度です
  • 相関の強い説明変数間では係数の分配が不安定になる場合があります

使いどころの目安

  • まず軽量に重要パラメータを絞り込みたいです
  • 近似的に線形関係が支配的と考えられます
  • Spearman だけだと方向や寄与の線形解釈が不足します

実務では、Ridge で一次スクリーニングし、非線形が疑われる場合に RF-ANOVA / SHAP / Sobol へ進む運用が扱いやすいです。

参考文献