程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

6個可解釋AI (XAI)的Python框架推薦

編輯:Python

隨著人工智能的發展為了解決具有挑戰性的問題,人們創造了更復雜、更不透明的模型。AI就像一個黑匣子,能自己做出決定,但是人們並不清楚其中緣由。建立一個AI模型,輸入數據,然後再輸出結果,但有一個問題就是我們不能解釋AI為何會得出這樣的結論。需要了解AI如何得出某個結論背後的原因,而不是僅僅接受一個在沒有上下文或解釋的情況下輸出的結果。

可解釋性旨在幫助人們理解:

  • 如何學習的?
  • 學到了什麼?
  • 針對一個特定輸入為什麼會做出如此決策?
  • 決策是否可靠?

在本文中,我將介紹6個用於可解釋性的Python框架。

SHAP

SHapley Additive explanation (SHapley Additive explanation)是一種解釋任何機器學習模型輸出的博弈論方法。它利用博弈論中的經典Shapley值及其相關擴展將最優信貸分配與局部解釋聯系起來(詳見論文的細節和引用)。

數據集中每個特征對模型預測的貢獻由Shapley值解釋。Lundberg和Lee的SHAP算法最初發表於2017年,這個算法被社區在許多不同的領域廣泛采用。

使用pip或conda安裝shap庫。

# install with pip
pip install shap
# install with conda
conda install -c conda-forge shap

使用Shap庫構建瀑布圖

使用Shap庫構建Beeswarm圖

使用Shap庫構建部分依賴圖

LIME

在可解釋性領域,最早出名的方法之一是LIME。它可以幫助解釋機器學習模型正在學習什麼以及為什麼他們以某種方式預測。Lime目前支持對表格的數據,文本分類器和圖像分類器的解釋。

知道為什麼模型會以這種方式進行預測對於調整算法是至關重要的。借助LIME的解釋,能夠理解為什麼模型以這種方式運行。如果模型沒有按照計劃運行,那麼很可能在數據准備階段就犯了錯誤。

使用pip安裝

pip install lime

LIME 構建的局部解釋圖

LIME構建的Beeswarm 圖

Shapash

“ Shapash是一個使機器學習對每個人都可以進行解釋和理解Python庫。Shapash提供了幾種類型的可視化,顯示了每個人都能理解的明確標簽。數據科學家可以更輕松地理解他們的模型並分享結果。最終用戶可以使用最標准的摘要來理解模型是如何做出判斷的。”

為了表達數據中包含故事、見解和模型的發現,互動性和漂亮的圖表必不可少。業務和數據科學家/分析師向AI/ML結果展示和互動的最佳方法是將其可視化並且放到web中。Shapash庫可以生成交互式儀表盤,並收集了許多可視化圖表。與外形/石灰解釋性有關。它可以使用SHAP/Lime作為後端,也就是說他只提供了更好看的圖表。

使用Shapash構建特征貢獻圖

使用Shapash庫創建的交互式儀表板

使用Shapash構建的局部解釋圖

InterpretML

InterpretML是一個開源的Python包,它向研究人員提供機器學習可解釋性算法。InterpretML支持訓練可解釋模型(glassbox),以及解釋現有的ML管道(blackbox)。

InterpretML展示了兩種類型的可解釋性:glassbox模型——為可解釋性設計的機器學習模型(如:線性模型、規則列表、廣義可加模型)和黑箱可解釋性技術——用於解釋現有系統(如:部分依賴,LIME)。使用統一的API並封裝多種方法,擁有內置的、可擴展的可視化平台,該包使研究人員能夠輕松地比較可解釋性算法。InterpretML還包括了explanation Boosting Machine的第一個實現,這是一個強大的、可解釋的、glassbox模型,可以像許多黑箱模型一樣精確。

使用InterpretML構建的局部解釋交互式圖

使用InterpretML構建的全局解釋圖

ELI5

ELI5是一個可以幫助調試機器學習分類器並解釋它們的預測的Python庫。目前支持以下機器學習框架:

  • scikit-learn
  • XGBoost、LightGBM CatBoost
  • Keras

ELI5有兩種主要的方法來解釋分類或回歸模型:

  • 檢查模型參數並說明模型是如何全局工作的;
  • 檢查模型的單個預測並說明什麼模型會做出這樣的決定。

使用ELI5庫生成全局權值

使用ELI5庫生成局部權重

OmniXAI

OmniXAI (Omni explained AI的簡稱),是Salesforce最近開發並開源的Python庫。它提供全方位可解釋的人工智能和可解釋的機器學習能力來解決實踐中機器學習模型在產生中需要判斷的幾個問題。對於需要在ML過程的各個階段解釋各種類型的數據、模型和解釋技術的數據科學家、ML研究人員,OmniXAI希望提供一個一站式的綜合庫,使可解釋的AI變得簡單。

以下是OmniXAI提供的與其他類似庫的對比

https://avoid.overfit.cn/post/1d08a70ed36a41a481d9f2a66b01971a

作者:Moez Ali


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved