解釋AI決策,這10個強大的 Python 庫記得收藏!

本文整理了10個常用于可解釋AI的Python庫,方便我們更好的理解AI模型的決策。

什么是XAI?

XAI(Explainable AI)的目標是為模型的行為和決策提供合理的解釋,這有助于增加信任、提供問責制和模型決策的透明度。XAI 不僅限于解釋,還以一種使推理更容易為用戶提取和解釋的方式進行 ML 實驗。

在實踐中,XAI 可以通過多種方法實現,例如使用特征重要性度量、可視化技術,或者通過構建本質上可解釋的模型,例如決策樹或線性回歸模型。方法的選擇取決于所解決問題的類型和所需的可解釋性水平。

AI 系統被用于越來越多的應用程序,包括醫療保健、金融和刑事司法,在這些應用程序中,AI 對人們生活的潛在影響很大,并且了解做出了決定特定原因至關重要。因為這些領域的錯誤決策成本很高(風險很高),所以XAI 變得越來越重要,因為即使是 AI 做出的決定也需要仔細檢查其有效性和可解釋性。

可解釋性實踐的步驟

數據準備: 這個階段包括數據的收集和處理。數據應該是高質量的、平衡的并且代表正在解決的現實問題。擁有平衡的、有代表性的、干凈的數據可以減少未來為保持 AI 的可解釋性而付出的努力。

模型訓練: 模型在準備好的數據上進行訓練,傳統的機器學習模型或深度學習神經網絡都可以。模型的選擇取決于要解決的問題和所需的可解釋性水平。模型越簡單就越容易解釋結果,但是簡單模型的性能并不會很高。

模型評估: 選擇適當的評估方法和性能指標對于保持模型的可解釋性是必要的。在此階段評估模型的可解釋性也很重要,這樣確保它能夠為其預測提供有意義的解釋。

解釋生成: 這可以使用各種技術來完成,例如特征重要性度量、可視化技術,或通過構建固有的可解釋模型。

解釋驗證: 驗證模型生成的解釋的準確性和完整性。這有助于確保解釋是可信的。

部署和監控: XAI 的工作不會在模型創建和驗證時結束。它需要在部署后進行持續的可解釋性工作。在真實環境中進行監控,定期評估系統的性能和可解釋性非常重要。

技術交流

技術要學會交流、分享,不建議閉門造車。一個人可以走的很快、一堆人可以走的更遠。

好的文章離不開粉絲的分享、推薦,資料干貨、資料分享、數據、技術交流提升,均可加交流群獲取,群友已超過2000人,添加時最好的備注方式為:來源+興趣方向,方便找到志同道合的朋友。

方式①、添加微信號:dkl88194,備注:來自CSDN + 數據分析
方式②、微信搜索公眾號:Python學習與數據挖掘,后臺回復:數據分析

資料1
在這里插入圖片描述
資料2

我們打造了《100個超強算法模型》,特點:從0到1輕松學習,原理、代碼、案例應有盡有,所有的算法模型都是按照這樣的節奏進行表述,所以是一套完完整整的案例庫。

很多初學者是有這么一個痛點,就是案例,案例的完整性直接影響同學的興致。因此,我整理了 100個最常見的算法模型,在你的學習路上助推一把!

在這里插入圖片描述

1、SHAP (SHapley Additive exPlanations)

SHAP是一種博弈論方法,可用于解釋任何機器學習模型的輸出。它使用博弈論中的經典Shapley值及其相關擴展將最佳信用分配與本地解釋聯系起來。

在這里插入圖片描述

2、LIME(Local Interpretable Model-agnostic Explanations)

LIME 是一種與模型無關的方法,它通過圍繞特定預測在局部近似模型的行為來工作。LIME 試圖解釋機器學習模型在做什么。LIME 支持解釋文本分類器、表格類數據或圖像的分類器的個別預測。

在這里插入圖片描述

3、Eli5

ELI5是一個Python包,它可以幫助調試機器學習分類器并解釋它們的預測。它提供了以下機器學習框架和包的支持:

  • scikit-learn:ELI5可以解釋scikit-learn線性分類器和回歸器的權重和預測,可以將決策樹打印為文本或SVG,顯示特征的重要性,并解釋決策樹和基于樹集成的預測。ELI5還可以理解scikit-learn中的文本處理程序,并相應地突出顯示文本數據。

  • Keras -通過Grad-CAM可視化解釋圖像分類器的預測。

  • XGBoost -顯示特征的重要性,解釋XGBClassifier, XGBRegressor和XGBoost . booster的預測。

  • LightGBM -顯示特征的重要性,解釋LGBMClassifier和LGBMRegressor的預測。

  • CatBoost:顯示CatBoostClassifier和CatBoostRegressor的特征重要性。

  • lightning -解釋lightning 分類器和回歸器的權重和預測。

  • sklearn-crfsuite。ELI5允許檢查sklearn_crfsuite.CRF模型的權重。

基本用法:

Show_weights() 顯示模型的所有權重,Show_prediction() 可用于檢查模型的個體預測

在這里插入圖片描述

ELI5還實現了一些檢查黑盒模型的算法:

TextExplainer使用LIME算法解釋任何文本分類器的預測。排列重要性法可用于計算黑盒估計器的特征重要性。

在這里插入圖片描述

4、Shapash

Shapash提供了幾種類型的可視化,可以更容易地理解模型。通過摘要來理解模型提出的決策。該項目由MAIF數據科學家開發。Shapash主要通過一組出色的可視化來解釋模型。

Shapash通過web應用程序機制工作,與Jupyter/ipython可以完美的結合。

from shapash import SmartExplainerxpl = SmartExplainer(model=regressor,preprocessing=encoder, # Optional: compile step can use inverse_transform methodfeatures_dict=house_dict  # Optional parameter, dict specifies label for features name)xpl.compile(x=Xtest,y_pred=y_pred,y_target=ytest, # Optional: allows to display True Values vs Predicted Values)xpl.plot.contribution_plot("OverallQual")

圖片

5、Anchors

Anchors使用稱為錨點的高精度規則解釋復雜模型的行為,代表局部的“充分”預測條件。該算法可以有效地計算任何具有高概率保證的黑盒模型的解釋。

Anchors可以被看作為LIME v2,其中LIME的一些限制(例如不能為數據的不可見實例擬合模型)已經得到糾正。Anchors使用局部區域,而不是每個單獨的觀察點。它在計算上比SHAP輕量,因此可以用于高維或大數據集。但是有些限制是標簽只能是整數。

在這里插入圖片描述

6、BreakDown

BreakDown是一種可以用來解釋線性模型預測的工具。它的工作原理是將模型的輸出分解為每個輸入特征的貢獻。這個包中有兩個主要方法。Explainer()和Explanation()

model = tree.DecisionTreeRegressor()model = model.fit(train_data,y=train_labels)#necessary importsfrom pyBreakDown.explainer import Explainerfrom pyBreakDown.explanation import Explanation#make explainer objectexp = Explainer(clf=model, data=train_data, colnames=feature_names)#What do you want to be explained from the data (select an observation)explanation = exp.explain(observation=data[302,:],direction="up")

在這里插入圖片描述

7、Interpret-Text

Interpret-Text 結合了社區為 NLP 模型開發的可解釋性技術和用于查看結果的可視化面板。可以在多個最先進的解釋器上運行實驗,并對它們進行比較分析。這個工具包可以在每個標簽上全局或在每個文檔本地解釋機器學習模型。

以下是此包中可用的解釋器列表:

  • Classical Text Explainer——(默認:邏輯回歸的詞袋)

  • Unified Information Explainer

  • Introspective Rationale Explainer

在這里插入圖片描述

它的好處是支持CUDA,RNN和BERT等模型。并且可以為文檔中特性的重要性生成一個面板。

from interpret_text.widget import ExplanationDashboardfrom interpret_text.explanation.explanation import _create_local_explanation# create local explanationlocal_explanantion = _create_local_explanation(classification=True,text_explanation=True,local_importance_values=feature_importance_values,method=name_of_model,model_task="classification",features=parsed_sentence_list,classes=list_of_classes,)# Dash itExplanationDashboard(local_explanantion)

圖片

8、aix360 (AI Explainability 360)

AI Explainbability 360工具包是一個開源庫,這個包是由IBM開發的,在他們的平臺上廣泛使用。AI Explainability 360包含一套全面的算法,涵蓋了不同維度的解釋以及代理解釋性指標。

在這里插入圖片描述

工具包結合了以下論文中的算法和指標:

  • Towards Robust Interpretability with Self-Explaining Neural Networks, 2018. ref

  • Boolean Decision Rules via Column Generation, 2018. ref

  • Explanations Based on the Missing: Towards Contrastive Explanations with Pertinent Negatives, 2018. ref

  • Improving Simple Models with Confidence Profiles, , 2018. ref

  • Efficient Data Representation by Selecting Prototypes with Importance Weights, 2019. ref

  • TED: Teaching AI to Explain Its Decisions, 2019. ref

  • Variational Inference of Disentangled Latent Concepts from Unlabeled Data, 2018. ref

  • Generating Contrastive Explanations with Monotonic Attribute Functions, 2019. ref

  • Generalized Linear Rule Models, 2019. ref

9、OmniXAI

OmniXAI (Omni explable AI的縮寫),解決了在實踐中解釋機器學習模型產生的判斷的幾個問題。

它是一個用于可解釋AI (XAI)的Python機器學習庫,提供全方位的可解釋AI和可解釋機器學習功能,并能夠解決實踐中解釋機器學習模型所做決策的許多痛點。OmniXAI旨在成為一站式綜合庫,為數據科學家、ML研究人員和從業者提供可解釋的AI。

from omnixai.visualization.dashboard import Dashboard# Launch a dashboard for visualizationdashboard = Dashboard(instances=test_instances,                        # The instances to explainlocal_explanations=local_explanations,           # Set the local explanationsglobal_explanations=global_explanations,         # Set the global explanationsprediction_explanations=prediction_explanations, # Set the prediction metricsclass_names=class_names,                         # Set class namesexplainer=explainer                              # The created TabularExplainer for what if analysis)dashboard.show()    

圖片

10、XAI (eXplainable AI)

XAI 庫由 The Institute for Ethical AI & ML 維護,它是根據 Responsible Machine Learning 的 8 條原則開發的。它仍處于 alpha 階段因此請不要將其用于生產工作流程。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210291.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210291.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210291.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《深入淺出進階篇》洛谷P3197 越獄——集合

洛谷P3197 越獄 題目大意: 監獄有 n 個房間,每個房間關押一個犯人,有 m 種宗教,每個犯人會信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄。 答案對100,003 取模。…

Temu賣家如何獲取流量?Temu新手賣家流量來源哪里?——站斧瀏覽器

流量對于每個平臺來說都是很重要的,那么Temu賣家如何獲取流量?流量來源哪里? Temu賣家如何獲取流量? 1、優化產品標題和描述:在Temu平臺上,買家通常通過搜索關鍵詞來尋找他們感興趣的產品。因此&#xff…

【數電筆記】58-同步D觸發器

目錄 說明: 1. 電路組成 2. 邏輯功能 3. 特性表、特性方程 4. 狀態轉移圖 例題 5. 同步D觸發器的特點 6. 集成同步D觸發器:74LS375 74LS375內部原理 說明: 筆記配套視頻來源:B站本系列筆記并未記錄所有章節,…

服務器部署網易開源TTS | EmotiVoice部署教程

一、環境 ubuntu 20.04 python 3.8 cuda 11.8二、部署 1、docker方式部署 1.1、安裝docker 如何安裝docker,可以參考這篇文章 1.2、拉取鏡像 docker run -dp 127.0.0.1:8501:8501 syq163/emoti-voice:latest2、完整安裝 安裝python依賴 conda create -n Emo…

Web 開發的 20 個實用網站

Web 開發的 20 個實用網站 作為一名前端開發工程師,我們一定使用過很多工具來提高自己的工作效率。它們可以是網站、文檔或 JavaScript 庫。 本文將分享30個有趣的網站。 JavaScript正則表達式可視化工具 https://jex.im/regulex/#!flags&re%5E(a%7Cb)*%3F%…

Centos7及Ubuntu系統安裝指定版本dockerdocker-compose安裝

Centos7系統 docker指定版本安裝【官方文檔步驟】 官方文檔地址:https://docs.docker.com/engine/install/centos/ # 1.安裝yum工具及設置docker-ce鏡像庫 sudo yum install -y yum-utils# 國外的鏡像下載太慢了改成阿里云鏡像庫 sudo yum-config-manager --add-rep…

★102. 二叉樹的層序遍歷

102. 二叉樹的層序遍歷 很巧妙的,又學習了一種層次遍歷的方法,就是說根據當前的隊列的長度去遍歷,遍歷的當前隊列的長度就是該層次的節點個數。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* Tr…

AIGC專題報告:AIGC助力大規模對象存儲服務OSS的能效提升

今天分享的AIGC系列深度研究報告:《AIGC專題報告:AIGC助力大規模對象存儲服務OSS的能效提升》。 (報告出品方:全球軟件開發大會) 報告共計:18頁 結合AI的智能運維助力能效提升 場景1:通過 AI…

SpringMVC-Servlet

依賴 <dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version> </dependency>web.xml 4.0版本 <?xml version"1.0" encoding"UTF-8"?> <…

Python 網絡爬蟲(三):XPath 基礎知識

《Python入門核心技術》專欄總目錄?點這里 文章目錄 1. XPath簡介2. XPath語法2.1 選擇節點2.2 路徑分隔符2.3 謂語2.4 節點關系2.5 運算符3. 節點3.1 元素節點(Element Node)3.2 屬性節點(Attribute Node)

前端vue3——實現二次元人物拼圖校驗

文章目錄 ?前言?vue3拖拽實現拼圖&#x1f496; 思路分解&#x1f496; 布局結構&#x1f496; 拖拽函數&#x1f496; 校驗函數&#x1f496; inscode整體代碼 ?運行效果&#x1f496; 隨機順序&#x1f496; 拖拽中&#x1f496; 校驗失敗&#x1f496; 校驗通過 ?總結?…

IDEA中.java .class .jar的含義與聯系

當使用IntelliJ IDEA這樣的集成開發環境進行Java編程時&#xff0c;通常涉及.java源代碼文件、.class編譯后的字節碼文件以及.jar可執行的Java存檔文件。 1. .java 文件&#xff1a; 1.這些文件包含了Java源代碼&#xff0c;以文本形式編寫。它們通常位于項目中的源代碼目錄中…

蒼穹外賣項目筆記(8)— 緩存商品、購物車功能

前言 代碼鏈接&#xff1a; Echo0701/take-out? (github.com) 1 緩存菜品 1.1 問題說明 【注】很多時候系統性能的瓶頸就在于數據庫這端 1.2 實現思路 通過 Redis 來緩存數據&#xff0c;減少數據庫查詢操作 【注】Redis 基于內存來保存數據的&#xff0c;訪問 Redis 數據…

LeetCode208.實現Trie(前綴樹)

我一開始想題目叫前綴樹&#xff0c;是要用樹嗎&#xff1f;但是不知道用樹怎么寫&#xff0c;然后我就花了10多分鐘&#xff0c;用了HashMap解了。map的key是word&#xff0c;value是一個放了word的所有前綴的set&#xff0c;這樣search方法就非常簡單了&#xff0c;只要看has…

Leetcode—2048.下一個更大的數值平衡數【中等】

2023每日刷題&#xff08;五十四&#xff09; Leetcode—2048.下一個更大的數值平衡數 實現代碼 class Solution { public:int nextBeautifulNumber(int n) {for(int x n 1; ; x) {vector<int> cnt(10, 0);for(int y x; y > 0; y / 10) {cnt[y%10];}bool ok tru…

C++ Div3、Sqrt 函數高性能實現(帶匯編指令集)

均采用魔法數字&#xff08;Magic Number&#xff09;實現&#xff0c;一個是經典求平方根函數所使用的魔法數字&#xff1a;0x5f375a86、0x5f3759df。 float Sqrt(float x) noexcept { /* 0x5f3759df */float xhalf 0.5f * x;int32_t i *(int32_t*)&x;i 0x5f375a86 - …

TP5上傳圖片壓縮尺寸

圖片上傳&#xff0c;最簡單的就是&#xff0c; 方法一&#xff1a; 修改上傳限制&#xff0c;不讓上傳大于多少多少的圖片 改一下size即可&#xff0c;默認單位是B換算成M還需要除以兩次1024 方法二&#xff1a; 對上傳的圖片進行縮放&#xff0c;此辦法網上找了不少的代碼…

如何在 Azure Cosmos DB 中使用緩存

Cosmos DB 是微軟在 Azure 云中發布的新 NoSQL 數據庫。與關系數據庫不同&#xff0c;Cosmos DB 是一種托管數據庫服務&#xff0c;因此具有可擴展性&#xff0c;因此在高事務性 .NET 和 .NET Core 應用程序中很受歡迎。 但是&#xff0c;使用 Cosmos DB 時&#xff0c;您需要…

pytorch 鉤子函數hook 詳解及實戰

文章目錄 1. 介紹1.1 pytorch hook 函數種類1.2 pytorch hook 種類1.3 hook的執行順序2. torch.Tensor.register_hook()2.1 功能2.2 語法2.3 案例3. nn.Module.register_forward_pre_hook3.1 功能3.2 語法3.3 案例4. nn

連通分量提取

圖像形態學操作中的提取連通分量是一種用于分離圖像中相互連接的像素區域的技術。這些像素區域通常代表著圖像中的不同物體、目標或者區域。連通分量提取通常用于圖像分割、對象識別、特征提取等領域。 原理&#xff1a; ??連通分量提取基于圖像中像素的連接性。在這個過程中…