Explainable Boosting Machine / GA2M
Explainable Boosting Machine (EBM) はtree-basedの一般化加法モデル(generalized additive model: GAM)を改良したもので、特徴は
なおEBM(Nori et al., 2019)はGA2M(Lou et al., 2013)の実装を並列可能にして高速化したもの。
モデル¶
一般化線形モデル(Generalized Linear Model: GLM)
g(E[y])=β0+∑βixi 線形回帰モデルなどを一般化した一般化線形モデルは各特徴量からの寄与度βi が明示的で、解釈性が高い。しかし線形モデルゆえにモデルの柔軟性が低く、非線形な構造のデータへの説明性に難がある。
一般化加法モデル(generalized additive model: GAM, Hastie & Tibshirani 1986)
そこで線形回帰モデルを一般化したGAMが提案された。
g(E[y])=β0+∑fi(xi) しかしGAMには交互作用項がないため、2変数間の交互作用を捉えられない(例えば不動産価格推定で、「緯度x経度」という交互作用は立地を表すのに有効だが、GAMだと考慮できない)。
Generalized Additive Model plus Interactions (GA2M, Lou et al., 2013)
そこで、GAMに交互作用項を追加した
g(E[y])=β0+∑fi(xi)+∑fi,j(xi,xj) というモデルを Generalized Additive Model plus Interactions (GA2M) という。
GA2MやEBMは伝統的なGAMからの進化点として
特徴関数(feature function)fiにbaggingや勾配ブースティングを使用する
予測に有用な交互作用項 fi,j(xi,xj) の検知をする、「FAST」というアルゴリズムを備える
という特徴がある。
GA2Mのアルゴリズム¶
GAMの主要なアルゴリズムには
backfitting
gradient boosting
がある。GA2Mではgradient boostingを採用し、勾配(残差など)を近似するように学習させる
記号の意味(notation)
以下で使う記号をまとめておく
n:特徴量の次元数
u⊆{1,…,n}:特徴量のインデックスの集合
x=(x1,…,xn):特徴量ベクトル
xu:uに含まれるインデックスの特徴量だけの特徴量ベクトル
U:すべての特徴量とそのペアのインデックス集合
U1={{i}∣1≤i≤n}
U2={{i,j}∣1≤i<j≤n}
U=U1∪U2
Hu:ルベーグ可測な関数fu(xu)のヒルベルト空間
H1=∑u∈U1Hu:
単変量成分に対して加法形 F(x)=∑u∈U1fu(xu) をもつ関数のヒルベルト空間
なお、これらの成分 fu を shape functions と呼ぶ。
Two-stage Construction¶
GA2M全体の構築は2段階に行う。
交互作用項モデル∑f(xi,xj)はすべての組み合わせを入れるのではなく、予測性能の高い交互作用項のみで行う。予測性能の評価は計算量が高くなりがちで難しい問題なので、FAST(提案手法)で高速な近似計算を行う。
交互作用検出アルゴリズム¶
2次の交互作用項は、その組み合わせ数の多さから計算量が非常に大きくなる。
また、有効な交互作用項の検出・選別方法については先行研究がいくつかあるが、一度モデルをfittingさせる必要があるものが多く、計算量や精度の課題がある。
先行研究¶
| 手法 | 概要 | 問題点 |
|---|
| ANOVA | 全ペアワイズ交互作用項を含む加法モデルをフィット後、分散分析で有意性を検定 | フルモデルの計算コストが膨大 |
| 偏依存関数(PDF) | Friedman & Popescu提案の統計量 Hij2 で交互作用強度を測定 | 低密度領域で偽の交互作用を検出する可能性 |
| GUIDE | カイ二乗検定による交互作用検出 | FASTより検出力が低い |
| Grove | 制約モデルと非制約モデルのRMSE差で交互作用強度を定量化 | 計算コストが極めて高い(数日単位) |
合成データによる実験では Grove と ANOVA が最も正確で、提案手法 のFAST はそれにほぼ匹敵する検出精度だった
FAST(提案手法)¶
概要 / naive fast¶
交互作用項 fij(xi,xj) を(GBDT等で)完全に推定するのは計算コストが高い。そのため、 きわめてシンプルなtreeモデルTijで交互作用項の効果を概算する。
まず、2つの変数xi,xjのそれぞれの軸に平行なcutoff点 ci,cjをつくり、xi,xjの2次元の特徴空間を4象限に区切る。
各象限内のデータ点の平均をとって予測値とする
すべての可能な(ci,cj)の点について残差平方和 RSSが最小化される最適なTijを選択する

Construction Predictors¶
このtreeの学習・評価をそのまま行うと、すべての切断点(ci,cj)について木Tijを構築する必要があり、計算量が高い。そこで、
特徴量をヒストグラムにして探索を効率化
ヒストグラムのもとで各点(ci,cj)に対する情報を事前に計算しておき、各木Tijの構築を高速化
する。
変数xiがとりうる値のソート済み集合を dom(xi)=v1,...,vdi とする。ここでdi=∣dom(xi)∣。
xi=vのときの目的変数の総和をHit(v)を、重み(あるいはサンプル数)の総和をHiw(v)とおく。直感的には、これらは回帰木におけるヒストグラムである。同様に Hijt(u,v)およびHijw(u,v) を、(xi,xj)=(u,v) のときの目的変数の総和および重みの総和として定義する。
また、累積ヒストグラムを CHit(v) と CHiw(v)とおく。
さらに、次のように定義する。
CHit(v)=∑u>vHit(u)=CHit(vidi)−CHit(v)
CHiw(v)=∑u>vHiw(u)=CHiw(vidi)−CHiw(v)

cutoff (ci,cj) で区切った4象限 a,b,c,dを計算する。
赤い領域aがわかれば、他の象限も周辺累積ヒストグラムCHを使って簡単に計算できる。aは動的計画法を用いて高速に計算できる。
切断点 (ci,cj) における目的変数の総和のlookup tableを Lt(ci,cj)=[a,b,c,d] とする。同様に重みの総和のlookup tableを Lw(ci,cj)=[a,b,c,d] とする。
Lookup Tableの作り方を詳しく述べたのがAlgorithm 2である。
切断点(p,q)における値をa[p][q]とする。この1行目a[1][q]を先に計算してから他の行を計算する。
一度Lt,Lwが求まれば、任意の切断点(ci,cj)について木Tijが計算できる。例えば木Tijで最も左の葉ノード(4象限{a,b,c,d}のうちa)の値はLt(ci,cj).a /Lw(ci,cj).a で求められる。LookupTableからの値の取得と1回の計算程度なので計算量は O(1) となる
Tij に対する RSS の計算は非常に効率的に行える。
まず、RSS の定義を考える。Tij.r を領域 r における予測値とする(ただし r∈{a,b,c,d})。
RSS=k=1∑N(yk−Tij(xk))2=(k=1∑Nyk2−2r∑Tij.rLt.r+r∑(Tij.r)2Lw.r) RSS の絶対値ではなく相対的な大小関係にのみ関心があるため、実際の実装においては、以下の部分だけを考えればよい:
r∑(Tij.r)2Lw.r−2r∑Tij.rLt.r このことから、Tij に対する RSS の計算量は O(1) であることが容易に分かる。
FASTの計算量¶
時間計算量は1つのペア (xi,xj) あたり O(didj+N)
各ペア (xi,xj) に対して、ヒストグラムおよび累積ヒストグラムを計算するにはデータ全体を走査する必要があるため、その計算量は O(N)
またLookup Table の構築には O(didj+N) の時間計算量が必要なため
空間計算量は O(didj)
特徴量の離散化(binning)¶
連続値特徴量の場合、didj は非常に大きくなる可能性がある。しかし、特徴量を b 個の等頻度ビン(equi-frequency bins)に離散化することで、計算量はペアあたり O(b2+N) に削減できる。GA2Mでは b=256 としている。
このような離散化は通常、回帰木の性能を損なわないことが先行研究で知られている。また実験により FAST は幅広い b の値に対して感度が低いことがわかっている。
各項の重み / Feature Importance¶
解釈性を高めるために、仮説空間 H における最適なモデルを学習した後、すべての項(1次元および2次元の成分)の重要度をランキングし、各項に重みをつける。
本研究では、項 u に対して、fu(ただし E[fu]=0)の標準偏差である
E[fu2] を重みとして用いる。
これは線形モデルにおける重みの自然な一般化である。というのも、fi(xi)=wixi の場合、特徴量が正規化されて E[xi2]=1 を満たすとき、E[fi2] は ∣wi∣ に一致するためである。
予測性能¶
提案論文での実験では回帰問題・分類問題それぞれ複数のデータセットに対し、 Random Forestと同程度の予測性能 を示した。
import pandas as pd
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score, mean_absolute_error
from interpret.glassbox import ExplainableBoostingRegressor
from interpret import show
# 1) データロード
data = fetch_california_housing(as_frame=True)
X: pd.DataFrame = data.data
y: pd.Series = data.target # Median house value
# 2) train/test split
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# 3) EBM(回帰)
ebm = ExplainableBoostingRegressor(
random_state=42,
# interactions=10, # 交互作用を入れたいなら(解釈はやや複雑に)
# max_bins=256, # 連続特徴のビン数(大きいほど柔軟だが過学習注意)
)
# 4) fit & 評価
ebm.fit(X_train, y_train)
pred = ebm.predict(X_test)
print(f"R^2: {r2_score(y_test, pred):.3f}")
print(f"MAE: {mean_absolute_error(y_test, pred):.3f}")
# 5) Explain(global / local)
global_exp = ebm.explain_global(name="EBM global (California Housing)")
local_exp = ebm.explain_local(X_test.iloc[:5], y_test.iloc[:5], name="EBM local (first 5)")
# Notebook環境なら可視化(ブラウザ/埋め込み表示)
show(global_exp)
show(local_exp)
参考文献¶
[1909.09223] InterpretML: A Unified Framework for Machine Learning Interpretability
Lou, Y., Caruana, R., Gehrke, J., & Hooker, G. (2013, August). Accurate intelligible models with pairwise interactions. In Proceedings of the 19th ACM SIGKDD international conference on Knowledge discovery and data mining (pp. 623-631).
Hastie, T., & Tibshirani, R. (1986). Generalized additive models. Statistical science, 1(3), 297-310.