隨著人工智能的發(fā)展為了解決具有挑戰(zhàn)性的問題,人們創(chuàng)造了更復(fù)雜、更不透明的模型。AI就像一個(gè)黑匣子,能自己做出決定,但是人們并不清楚其中緣由。
建立一個(gè)AI模型,輸入數(shù)據(jù),然后再輸出結(jié)果,但有一個(gè)問題就是我們不能解釋AI為何會(huì)得出這樣的結(jié)論。需要了解AI如何得出某個(gè)結(jié)論背后的原因,而不是僅僅接受一個(gè)在沒有上下文或解釋的情況下輸出的結(jié)果。
可解釋性旨在幫助人們理解:
-
如何學(xué)習(xí)的?
-
學(xué)到了什么?
-
針對(duì)一個(gè)特定輸入為什么會(huì)做出如此決策?
-
決策是否可靠?
SHAP
SHapley Additive explanation (SHAP)是一種解釋任何機(jī)器學(xué)習(xí)模型輸出的博弈論方法。它利用博弈論中的經(jīng)典Shapley值及其相關(guān)擴(kuò)展將最優(yōu)信貸分配與局部解釋聯(lián)系起來(詳見論文的細(xì)節(jié)和引用)。
以前寫過一篇文章,用過SHAP這個(gè)庫(kù):
基于隨機(jī)森林模型的心臟病患者預(yù)測(cè)分類
數(shù)據(jù)集中每個(gè)特征對(duì)模型預(yù)測(cè)的貢獻(xiàn)由Shapley值解釋。Lundberg和Lee的SHAP算法最初發(fā)表于2017年,這個(gè)算法被社區(qū)在許多不同的領(lǐng)域廣泛采用。
使用pip或conda安裝shap庫(kù)。
# install with pippip install shap# install with condaconda install -c conda-forge shapbr
使用Shap庫(kù)構(gòu)建瀑布圖
使用Shap庫(kù)構(gòu)建Beeswarm圖
使用Shap庫(kù)構(gòu)建部分依賴圖
LIME
在可解釋性領(lǐng)域,最早出名的方法之一是LIME。它可以幫助解釋機(jī)器學(xué)習(xí)模型正在學(xué)習(xí)什么以及為什么他們以某種方式預(yù)測(cè)。Lime目前支持對(duì)表格的數(shù)據(jù),文本分類器和圖像分類器的解釋。
知道為什么模型會(huì)以這種方式進(jìn)行預(yù)測(cè)對(duì)于調(diào)整算法是至關(guān)重要的。借助LIME的解釋,能夠理解為什么模型以這種方式運(yùn)行。如果模型沒有按照計(jì)劃運(yùn)行,那么很可能在數(shù)據(jù)準(zhǔn)備階段就犯了錯(cuò)誤。
使用pip安裝:
pip install lime
br
LIME 構(gòu)建的局部解釋圖
LIME構(gòu)建的Beeswarm 圖
Shapash
“ Shapash是一個(gè)使機(jī)器學(xué)習(xí)對(duì)每個(gè)人都可以進(jìn)行解釋和理解Python庫(kù)。Shapash提供了幾種類型的可視化,顯示了每個(gè)人都能理解的明確標(biāo)簽。數(shù)據(jù)科學(xué)家可以更輕松地理解他們的模型并分享結(jié)果。最終用戶可以使用最標(biāo)準(zhǔn)的摘要來理解模型是如何做出判斷的。”
為了表達(dá)數(shù)據(jù)中包含故事、見解和模型的發(fā)現(xiàn),互動(dòng)性和漂亮的圖表必不可少。業(yè)務(wù)和數(shù)據(jù)科學(xué)家/分析師向AI/ML結(jié)果展示和互動(dòng)的最佳方法是將其可視化并且放到web中。Shapash庫(kù)可以生成交互式儀表盤,并收集了許多可視化圖表。與外形/石灰解釋性有關(guān)。它可以使用SHAP/Lime作為后端,也就是說它只提供了更好看的圖表。
使用Shapash構(gòu)建特征貢獻(xiàn)圖
使用Shapash庫(kù)創(chuàng)建的交互式儀表板
使用Shapash構(gòu)建的局部解釋圖
InterpretML
InterpretML是一個(gè)開源的Python包,它向研究人員提供機(jī)器學(xué)習(xí)可解釋性算法。InterpretML支持訓(xùn)練可解釋模型(glassbox),以及解釋現(xiàn)有的ML管道(blackbox)。
InterpretML展示了兩種類型的可解釋性:glassbox模型——為可解釋性設(shè)計(jì)的機(jī)器學(xué)習(xí)模型(如:線性模型、規(guī)則列表、廣義可加模型)和黑箱可解釋性技術(shù)——用于解釋現(xiàn)有系統(tǒng)(如:部分依賴,LIME)。
使用統(tǒng)一的API并封裝多種方法,擁有內(nèi)置的、可擴(kuò)展的可視化平臺(tái),該包使研究人員能夠輕松地比較可解釋性算法。InterpretML還包括了explanation Boosting Machine的第一個(gè)實(shí)現(xiàn),這是一個(gè)強(qiáng)大的、可解釋的、glassbox模型,可以像許多黑箱模型一樣精確。
使用InterpretML構(gòu)建的局部解釋交互式圖
使用InterpretML構(gòu)建的全局解釋圖
ELI5
ELI5是一個(gè)可以幫助調(diào)試機(jī)器學(xué)習(xí)分類器并解釋它們的預(yù)測(cè)的Python庫(kù)。目前支持以下機(jī)器學(xué)習(xí)框架:
-
scikit-learn
-
XGBoost、LightGBM CatBoost
-
Keras
ELI5有兩種主要的方法來解釋分類或回歸模型:
-
檢查模型參數(shù)并說明模型是如何全局工作的;
-
檢查模型的單個(gè)預(yù)測(cè)并說明什么模型會(huì)做出這樣的決定。
使用ELI5庫(kù)生成全局權(quán)值
使用ELI5庫(kù)生成局部權(quán)重
OmniXAI
OmniXAI (Omni explained AI的簡(jiǎn)稱),是Salesforce最近開發(fā)并開源的Python庫(kù)。它提供全方位可解釋的人工智能和可解釋的機(jī)器學(xué)習(xí)能力來解決實(shí)踐中機(jī)器學(xué)習(xí)模型在產(chǎn)生中需要判斷的幾個(gè)問題。對(duì)于需要在ML過程的各個(gè)階段解釋各種類型的數(shù)據(jù)、模型和解釋技術(shù)的數(shù)據(jù)科學(xué)家、ML研究人員,OmniXAI希望提供一個(gè)一站式的綜合庫(kù),使可解釋的AI變得簡(jiǎn)單。
以下是OmniXAI提供的與其他類似庫(kù)的對(duì)比:
最后,下面是這6個(gè)框架的官方地址:
https://shap.readthedocs.io/en/latest/index.html
https://github.com/marcotcr/lime
https://shapash.readthedocs.io/en/latest/
https://interpret.ml/
https://eli5.readthedocs.io/
https://github.com/salesforce/OmniXAI