解釋產(chǎn)生特定NBA球員預(yù)測薪水的特征(github)
我最喜歡的庫之一是SHAP,它是解釋機(jī)器學(xué)習(xí)模型生成的輸出不可或缺的工具。 SHAP是幾種不同的當(dāng)前解釋模型的頂點(diǎn),并且通過為每個(gè)特征分配重要性值來表示用于解釋模型預(yù)測的統(tǒng)一框架。反過來,可以繪制這些重要性值,并用于產(chǎn)生任何人都可以輕易解釋的漂亮可視化。在您閱讀時(shí),您會(huì)注意到主題是可解釋性,以及為什么它在機(jī)器學(xué)習(xí)中如此迫切。
在本文中,我提供了一個(gè)外行人對(duì)其作者Scott Lundberg和Su-In Lee的原始論文的評(píng)論
目的
線性模型易于解釋。 考慮用于預(yù)測NBA球員薪水的經(jīng)典線性回歸模型(假設(shè)薪水完全基于每場比賽得分):
我們簡單地將其解釋為β1,即X對(duì)Y單位增加的平均影響。換句話說,如果凱文杜蘭特得到27.5分,那么我們所要做的就是乘以β1來預(yù)測他的薪水。 使用線性模型,很明顯模型如何達(dá)到預(yù)測。
但是神經(jīng)網(wǎng)絡(luò)呢,那里有重復(fù)的矩陣乘法和激活函數(shù)? 我們?nèi)绾卧谳敵龅纳舷挛闹薪忉屵@一點(diǎn)?
隨著我們轉(zhuǎn)向更復(fù)雜的模型,具有更高的準(zhǔn)確性,我們發(fā)現(xiàn)越來越難以解釋這些模型如何產(chǎn)生預(yù)測。 由于以下幾個(gè)原因,這是一個(gè)岌岌可危的困境:
·模型偏差是一個(gè)重要問題,因?yàn)樗鼈冏罱K可能會(huì)對(duì)決策產(chǎn)生不公平的影響。 一些數(shù)據(jù)存在內(nèi)在偏差,特別是在涉及種族和性別偏見時(shí),這會(huì)對(duì)模型的預(yù)測產(chǎn)生負(fù)面影響。 由于沒有好的方法來解釋模型如何做出決定,因此很難確定這些固有的偏見。
·模型改進(jìn)也很困難如果您不知道要改進(jìn)什么。當(dāng)然,您可以調(diào)整超參數(shù),直到獲得最佳分?jǐn)?shù),但您擁有的數(shù)據(jù)類型更為重要。了解模型中不同特征的價(jià)值可為數(shù)據(jù)收集提供有價(jià)值的反饋,告知我們哪些類型的數(shù)據(jù)最重要.
·用戶信任對(duì)于采用人工智能系統(tǒng)非常重要。 在人工智能治理中心最近的一份報(bào)告中,作者報(bào)告說:"有更多的美國人認(rèn)為高級(jí)機(jī)器智能會(huì)比那些認(rèn)為對(duì)人類有益的人有害。"復(fù)雜模型的可解釋性有助于 更好的理解,建立模型如何做出決策的直覺,并最終產(chǎn)生用戶信任。
添加功能歸因方法
為了解釋更復(fù)雜的模型,我們需要一個(gè)更接近原始模型的簡單解釋模型。
假設(shè)我們有一個(gè)形式為f(x)的復(fù)雜模型,那么解釋模型g(z')≈f(x)。
稍微分解g(z'),我們將一些效應(yīng)φ?歸因于每個(gè)特征z'。 通過總結(jié)所有這些效果及其特征,我們可以近似原始模型的輸出。 這被定義為附加特征歸屬方法。 事實(shí)證明,其他當(dāng)前的解釋模型遵循相同的解釋模型,允許它們?nèi)拷y(tǒng)一到一個(gè)單一的框架中。
附加特征歸屬方法的屬性
1.局部精度:最重要的屬性之一是解釋模型能夠匹配原始模型的輸出。
2.缺失:如果缺少特征,則該特征沒有效果,或φ?= 0。
3.一致性:如果模型發(fā)生變化,使得特征貢獻(xiàn)增加或保持不變,那么特征屬性或φ?不應(yīng)減少。
這導(dǎo)致我們SHAP值,它統(tǒng)一了以前的方法,并展示了上述屬性。
SHAP值
SHAP值(φ?)用于描述特征的重要性。 請(qǐng)考慮以下圖表:
f(x)是模型預(yù)測的輸出,E[f(z)]是如果沒有特征則預(yù)測的基值。 換句話說,E[f(z)]只是平均模型輸出。
當(dāng)我們包括一個(gè)特征x 1,然后φ1,解釋我們?nèi)绾螐幕档叫碌念A(yù)測值,現(xiàn)在由E [f(z)|給出。 z 1 = x 1]。 對(duì)剩余的變量x 1,x 2,x 3重復(fù)這個(gè)過程,估計(jì)φ1,φ2和φ3的SHAP值,顯示模型最終如何到達(dá)預(yù)測輸出f(x)。
不同口味的SHAP(different favours of SHAP)
SHAP有多種實(shí)現(xiàn)方式,每種方式都適用于特定的模型類型,可以實(shí)現(xiàn)更快的逼近。
·TreeExplainer
TreeExplainer專為樹集合方法開發(fā),如XGBoost,LightGBM或CatBoost。
·DeepExplainer
DeepExplainer是為深度學(xué)習(xí)模型開發(fā)的,支持TensorFlow / Keras。
·GradientExplainer
GradientExplainer也是為深度學(xué)習(xí)模型中的SHAP值而開發(fā)的,但速度比DeepExplainer慢,并且做出了不同的假設(shè)。 此方法基于Integrated Gradient歸因方法,并支持TensorFlow / Keras / PyTorch。
·KernelExplainer
KernelExplainer使用加權(quán)線性回歸近似任何類型模型的SHAP值。
使用特定于模型類型的算法(TreeExplainer,DeepExplainer)而不是通用KernelExplainer更快更有效。
總結(jié)
作者發(fā)現(xiàn)人類解釋和SHAP解釋之間的關(guān)聯(lián)比任何其他方法更強(qiáng),這表明了SHAP的強(qiáng)大和直觀性。 計(jì)算出的SHAP值很容易在美觀,簡單的圖中顯示,這些圖解釋了特征如何影響特定預(yù)測。 這使得SHAP成為一個(gè)令人信服的工具,可以自信地解釋和解釋任何模型。
有關(guān)如何實(shí)現(xiàn)SHAP的教程,請(qǐng)查看我的筆記本,看看我們?nèi)绾谓忉対u變提升樹的預(yù)測結(jié)果。 SHAP github還提供了很多資源,可以提供有關(guān)如何實(shí)現(xiàn)DeepExplainer,KernelExplainer和其他有用功能的更多示例。
-
算法
+關(guān)注
關(guān)注
23文章
4615瀏覽量
92991 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8422瀏覽量
132724
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論