可解釋性與創建模型同樣重要,帶你了解ML黑匣子的秘密!

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

點擊上方關注,All in AI中國

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

想像一下,如果你是一名數據科學家,在空閒時間,根據臉書和推特數據預測你的朋友夏天的時候會去哪里度假。如果,預測結果準確,那麼可能你的朋友會留下一個深刻的印象,認為你是一個可以看到未來的魔術師。如果預測是錯誤的,可能僅僅是你的「數據科學家」的名聲會受到影響,對於其他的任何人可能都不會有傷害。但如果這個話題的語境有變化,我們預測的不是夏天去哪里度假的問題,而是涉及到投資的問題,你想要投資你朋友可能度假的地方,那麼,預測出錯的話,你就會賠錢。由此可見,只要你的模型不會產生重大的影響,那麼,他的可解釋性就沒有那麼重要了。但是基於模型的預測涉及到影響時,可解釋性就變得相關。

可解釋的機器學習

解釋意味著以可理解的術語解釋或呈現。在ML系統的背景下,可解釋性是向人類解釋或以可理解的術語呈現的能力[Finale Doshi-Velez]

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

機器學習模型被許多人稱為「黑匣子」。這意味著雖然我們可以從中獲得準確的預測,但我們無法清楚地解釋或識別這些預測背後的邏輯。但是我們如何從模型中提取重要的見解呢?要記住哪些事項以及我們需要做到哪些功能或工具?這些是在提出模型可解釋性問題時需要考慮的重要問題。

可解釋性的重要性

一些人常常問的問題是,為什麼我們不滿足於模型的結果,為什麼我們如此癡迷於知道為什麼做出特定的決定?這很大程度上與模型在現實世界中可能產生的影響有關。對於那些僅僅用於推薦電影的模型,其影響遠遠小於為預測藥物結果而創建的模型。

「問題在於,單個指標,例如分類準確性,是對大多數現實世界任務的不完整描述。」(Doshi-Velez和Kim 2017)

這是一個可解釋的機器學習的大圖。在某種程度上,我們通過收集原始數據捕獲世界,並使用該數據進行進一步預測。從本質上講,可解釋性只是模型上的另一層,可以幫助人們理解這個過程。

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

可解釋的機器學習的大圖

可解釋性帶來的一些好處是:

  • 可靠性
  • 調試
  • 特徵工程
  • 指導未來的數據收集
  • 告知人類決策
  • 建立信任

模型可解釋性技術

只要我們能將其付諸實踐,理論才有意義。如果您想真正了解這個主題,可以嘗試Kaggle的機器學習解釋性速成課程。它具有適當數量的理論和代碼,可以將概念置於透視中,並有助於將模型可解釋性概念應用於實際的現實問題。

如果您想先了解內容的簡要概述,可以點擊https://www.kaggle.com/learn/machine-learning-explainability

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

可以從模型中提取的見解

要解釋模型,我們需要以下見解:

  • 模型中的最重要的特性是什麼
  • 對於來自模型的任何單個預測,數據中的每個特徵對該特定預測的影響。
  • 每個特徵對大量可能預測的影響

讓我們討論一些有助於從模型中提取上述見解的技巧:

1.排列重要性

模型認為哪些特徵很重要?哪些特徵對模型預測的影響可能比其他特徵更大?這個概念稱為特徵重要性,排列重要性是一種廣泛用於計算特徵重要性的技術。它幫助我們看到模型何時產生違反直覺的結果,並且當模型按照我們希望的方式工作時,它有助於顯示其他模型。

排列重要性適用於許多scikit-learn估算器。這個想法很簡單:在驗證數據集中,隨機排列或洗牌單個列,使所有其他列保持不變。如果模型的精度下降很多並導致誤差增加,則該特徵被認為是「重要的」。另一方面,如果對其值進行改組不會影響模型的準確性,則該特徵被視為「不重要」。

工作

考慮一個模型,該模型根據某些參數預測足球隊是否會有一個「最佳球員」獲勝者。表現出最佳表現的玩家將獲得此獎項。

在擬合模型之後計算排列重要性。因此,讓我們在訓練數據上訓練並擬合一個隨機森林分類器模型。

排列重要性使用ELI5庫計算。 ELI5是一個Python庫,允許使用統一API可視化和調試各種機器學習模型。它內置了對多個ML框架的支持,並提供了一種解釋黑盒模型的方法。

使用eli5庫計算和顯示重要性:

(這里val_X,val_y分別表示驗證集)

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

解釋

  • 頂部的特徵最重要,底部的特徵最少。對於這個例子,得分的目標是最重要的特徵。
  • ±之後的數字測量了從一次重新洗牌到下一次重組的表現。
  • 一些權重是負面的。這是因為在那些情況下,發現混洗數據的預測比實際數據更準確。

實踐

現在,需要查看有關完整示例並看看您是否理解,請單擊下面的鏈接轉到Kaggle頁面:

https://www.kaggle.com/dansbecker/permutation-importance

2.部分依賴圖

部分依賴圖(簡稱PDP或PD圖)顯示了一個或兩個特徵對機器學習模型的預測結果的邊際效應(J. H. Friedman 2001)。 PDP顯示特徵如何影響預測,PDP可以通過1D或2D圖顯示目標與所選特徵之間的關係。

工作

在模型擬合後也計算PDP。在我們上面討論的足球問題中,有很多特徵,比如傳球、投籃、進球等等。我們首先考慮這一行開始,假設這一行代表的球隊有50%的機會控球,傳球100次,投籃10次,進1球。

我們繼續擬合模型,並計算一支球隊擁有一名贏得「遊戲人」的球員的概率,這是我們的目標變量。接下來,我們將選擇一個變量並不斷改變其值。例如,如果球隊打進1球,2球,3球等,我們將計算結果。然後繪制所有這些值,得到預測的結果與目標得分的圖表。

用於繪制PDP的庫稱為python部分依賴圖或簡稱PDPbox。

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

解釋

  • Y軸表示預測的變化與在基線或最左邊的值預測的變化。
  • 藍色區域表示置信區間
  • 對於「進球得分」圖表,我們觀察到得分目標會增加獲得「最佳球員」獎勵的可能性,但過了一段時間,這種可能性達到飽和。

我們還可以使用2D局部圖來一次可視化兩個特徵之間的部分依賴性。

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

實踐

https://www.kaggle.com/dansbecker/partial-plots

3.SHAP值

SHAP代表SHapley Additive exPlanation,它有助於分解一個預測,以顯示每個特徵的影響。它基於Shapley值,這是一種用於博弈論的技術,用於確定協作遊戲中每個玩家對其成功貢獻的程度。通常情況下,在準確性和可解釋性之間取得正確的權衡可能是一個困難的平衡行為,但SHAP值可以同時提供這兩者。

工作

再次,與足球示例一起,我們想要預測球隊有一個贏得「遊戲人」的球員的概率。 SHAP值解釋了對於給定特徵具有特定值的影響,與我們在該特徵採用某些基線值時所做的預測相比較。

SHAP值使用Shap庫計算,可以很容易從PyPI或conda輕鬆安裝。

Shap值顯示給定特徵改變了我們預測的程度(與我們在該特徵的某個基線值處進行預測的情況相比)。假設我們想知道當球隊進了3個球而不是某個固定的底線時預測是什麼。如果我們能夠回答這個問題,我們可以對其他功能執行相同的步驟如下:

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

因此,預測可以分解為如下圖:

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

這是一個更大視圖的鏈接

解釋

上面的說明顯示了各自有助於將模型輸出從基值(我們傳遞的訓練數據集上的平均模型輸出)推送到模型輸出的特徵。將預測推高的特徵以紅色顯示,將預測推低的特徵用藍色表示。

  • 這里的base_value是0.4979,而我們的預測值是0.7
  • 目標得分= 2對增加預測的影響最大
  • 控球特徵對降低預測的影響最大

實踐

SHAP值比我在此解釋的理論更深入。請務必通過以下鏈接獲得完整的理解。

https://www.kaggle.com/dansbecker/shap-values

4.SHAP值的高級用法

匯總許多SHAP值可以為模型提供更詳細的見解。

SHAP摘要圖

為了概述哪些特徵對於模型最重要,我們可以繪制每個樣本的每個特徵的SHAP值。摘要圖說明哪些特徵最重要,以及它們對數據集的影響範圍。

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

摘要圖

對於每個點:

  • 垂直位置顯示它描繪的功能
  • 顏色顯示該特徵對於該行的數據集是高還是低
  • 水平位置顯示該值的影響是否導致更高或更低的預測

左上角的點是一支進球很少的球隊,將預測值降低了0.25。

SHAP依賴貢獻圖

雖然SHAP匯總圖概述了每個特徵,但SHAP依賴圖顯示了模型輸出如何隨特徵值變化。 SHAP依賴性貢獻圖提供了與PDP相似的洞察力,但它們增加了更多細節。

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

依賴性貢獻情節

上述依賴性貢獻情節表明,擁有球會增加球隊讓球員贏得獎勵的機會。但是如果他們只得到一個進球,那麼這個趨勢就會逆轉而且如果他們得分那麼少,那麼裁判可能會因為球得分而懲罰他們。

實踐

https://www.kaggle.com/dansbecker/advanced-uses-of-shap-values

結論

機器學習不再是黑匣子了。如果我們無法向其他人解釋結果,那麼一個好的模型又有什麼用呢。可解釋性與創建模型同樣重要。為了在人群中獲得更廣泛的接受,機器學習系統能夠為其決策提供或滿意的解釋至關重要。正如阿爾伯特·愛因斯坦所說:「如果你不能簡單地解釋它,你就不能很好地理解它。」

可解釋性與創建模型同樣重要,帶你瞭解ML黑匣子的秘密!

編譯出品