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