模型可解釋性包iml

iml 包

機器學習模型通掣炙蹋可以很好地進行預測,但無法解釋。 iml軟件包提供了用于分析任何黑匣子機器學習模型的工具:

特征重要性:哪些是最重要的功能但惶?

特征效應:特征如何影響預測女责? (累積的局部影響漆枚,偏相關(guān)圖和個別條件期望曲線)

單個預測的解釋:單個數(shù)據(jù)點的特征值如何影響其預測? (LIME和Shapley值)

替代樹:我們可以用短決策樹來近似底層黑匣子模型嗎抵知?

iml包適用于任何分類和回歸機器學習模型:隨機森林墙基,線性模型,神經(jīng)網(wǎng)絡刷喜,xgboost等残制。

示例

1.讀取數(shù)據(jù)并建立隨機森林模型

library("iml")
library("randomForest")
data("Boston", package  = "MASS")
head(Boston)
set.seed(42)
rf = randomForest(medv ~ ., data = Boston, ntree = 50)
X = Boston[which(names(Boston) != "medv")]
predictor = Predictor$new(rf, data = X, y = Boston$medv)
  1. 特征重要性圖
    我們可以使用FeatureImp來衡量每個特征對于預測的重要性。 特征重要性度量是通過改組每個特征并測量性能下降多少來起作用的掖疮。 對于此回歸任務痘拆,我們選擇使用平均絕對誤差(mae)來衡量性能損失,另一種選擇是均方誤差(mse)氮墨。
imp = FeatureImp$new(predictor, loss = "mae")
plot(imp)
特征重要性.png
print(imp$results)
feature importance.05 importance importance.95 permutation.error
lstat 3.557901 4.632124 5.497080 4.565000
rm 2.900720 3.119034 4.531629 3.073835
nox 1.667456 1.714099 1.881914 1.689260
crim 1.569166 1.656692 1.679968 1.632685
dis 1.593274 1.626608 1.872172 1.603037
indus 1.351980 1.462431 1.485823 1.441239
ptratio 1.388786 1.417079 1.538757 1.396544
age 1.345481 1.416432 1.485841 1.395906
tax 1.254460 1.361721 1.442950 1.341988
black 1.205680 1.254997 1.340960 1.236811
rad 1.059286 1.132156 1.186773 1.115750
zn 1.035060 1.074501 1.091897 1.058930
chas 0.996149 1.036302 1.072554 1.021285
  1. 特征效應
    除了知道哪些特征很重要外纺蛆,我們還對特征如何影響預測結(jié)果感興趣。 FeatureEffect類實現(xiàn)累積的局部效應圖规揪,偏依賴圖和單個條件期望曲線桥氏。 下圖顯示了“ lstat”特征的局部累積效果(ALE)。 ALE顯示了當特征變化時預測結(jié)果如何變化猛铅。 x軸上的標記表示“ lstat”特征的分布字支,顯示了一個區(qū)域與預測結(jié)果的相關(guān)性(很少或沒有點表示我們不應過度解釋該區(qū)域)。
ale = FeatureEffect$new(predictor, feature = "lstat")
ale$plot()
特征效應.png
effs = FeatureEffects$new(predictor)
plot(effs)
特征效應2.png

4.交互作用
我們還可以衡量要素之間相互作用的強烈程度奸忽。 交互作用量度取決于交互作用解釋了f(x)的方差堕伪。 度量介于0(無交互)和1( f(x)因交互而引起的方差的100%)之間。 對于每個特征栗菜,我們衡量它們與任何其他特征的交互程度:

interact = Interaction$new(predictor)
plot(interact)
交互效應1.png

我們還可以指定一項特征欠雌,并衡量其與所有其他特征的所有2向交互

interact = Interaction$new(predictor, feature = "crim")
plot(interact)
交互效應2.png
  1. 替代模型
    使模型更易于解釋的另一種方法是用一個更簡單的模型-決策樹替換黑匣子。 我們采用黑匣子模型(在我們的情況下為隨機森林)的預測疙筹,并針對原始特征和預測結(jié)果訓練決策樹富俄。 該圖顯示了擬合樹的終端節(jié)點。 maxdepth參數(shù)控制樹的生長深度而咆,以及樹的可解釋性霍比。
tree = TreeSurrogate$new(predictor, maxdepth = 2)
plot(tree)
決策樹.png

使用替換的決策樹模型進行預測

tree$predict(Boston)

6.1 Local模型解釋單個預測值

> lime.explain = LocalModel$new(predictor, x.interest = X[1,])
Loading required package: glmnet
Loading required package: Matrix
Loaded glmnet 3.0-2

Loading required package: gower
> lime.explain$results
          beta x.recoded    effect x.original feature feature.value

rm 4.4836483 6.575 29.479987 6.575 rm rm=6.575
ptratio -0.5244767 15.300 -8.024493 15.3 ptratio ptratio=15.3
lstat -0.4348698 4.980 -2.165652 4.98 lstat lstat=4.98

> lime.explain = LocalModel$new(predictor, x.interest = X[1,])
> lime.explain$results
> plot(lime.explain)
beta x.recoded effect x.original feature feature.value
rm 4.3179058 6.421 27.725273 6.421 rm rm=6.421
ptratio -0.5330579 17.800 -9.488430 17.8 ptratio ptratio=17.8
lstat -0.4418233 9.140 -4.038265 9.14 lstat lstat=9.14
圖片.png

6.2 博弈論解釋單個預測值

shapley = Shapley$new(predictor, x.interest = X[1,])
shapley$plot()
博弈論解釋.png

7.并行計算見幫助文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市暴备,隨后出現(xiàn)的幾起案子悠瞬,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浅妆,死亡現(xiàn)場離奇詭異玛痊,居然都是意外死亡,警方通過查閱死者的電腦和手機狂打,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門擂煞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人趴乡,你說我怎么就攤上這事对省。” “怎么了晾捏?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵蒿涎,是天一觀的道長。 經(jīng)常有香客問我惦辛,道長劳秋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任胖齐,我火速辦了婚禮玻淑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘呀伙。我一直安慰自己补履,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布剿另。 她就那樣靜靜地躺著箫锤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雨女。 梳的紋絲不亂的頭發(fā)上谚攒,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音氛堕,去河邊找鬼馏臭。 笑死,一個胖子當著我的面吹牛岔擂,可吹牛的內(nèi)容都是我干的位喂。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼乱灵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了七冲?” 一聲冷哼從身側(cè)響起痛倚,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎澜躺,沒想到半個月后蝉稳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抒蚜,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年耘戚,在試婚紗的時候發(fā)現(xiàn)自己被綠了嗡髓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡收津,死狀恐怖饿这,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情撞秋,我是刑警寧澤长捧,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站吻贿,受9級特大地震影響串结,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜舅列,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一肌割、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧帐要,春花似錦声功、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至冒冬,卻和暖如春伸蚯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背简烤。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工剂邮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人横侦。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓挥萌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親枉侧。 傳聞我的和親對象是個殘疾皇子引瀑,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容