偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

使用 SHAP 使機器學習模型變的可解釋?。?/h1>

人工智能 機器學習
SHAP 是一種解釋機器學習模型預測結果的方法,它基于博弈論中的 Shapley 值理論。它通過計算每個特征對模型輸出的貢獻度,幫助我們理解模型的決策過程。

SHAP 是一種解釋機器學習模型預測結果的方法,它基于博弈論中的 Shapley 值理論。

它通過計算每個特征對模型輸出的貢獻度,幫助我們理解模型的決策過程。

SHAP 適用于各種類型的機器學習模型,使得黑盒模型(如深度神經(jīng)網(wǎng)絡、隨機森林等)的預測更加透明、可解釋。

核心概念

  • Shapley 值
    源自博弈論的 Shapley 值,用于公平地分配合作博弈中各參與者的收益。
    在機器學習中,SHAP 通過計算每個特征在不同組合中的邊際貢獻,求取其平均值,從而得到該特征的 Shapley 值。這種方法確保了模型解釋的公平性和一致性。
  • 可加性解釋模型
    SHAP 構建了一個可加性的解釋模型,將模型的預測結果表示為各特征貢獻的線性組合。
    這種方法確保了特征貢獻的總和等于模型的預測值,從而提供了一種一致且直觀的解釋方式。

SHAP的主要特點

1.一致性

如果模型的特征貢獻增加,那么相應的SHAP值也會增加,確保解釋的合理性。

2.局部解釋

SHAP值可以解釋單個樣本的預測結果,幫助理解特定數(shù)據(jù)點的模型決策。

3.全局解釋

通過對多個數(shù)據(jù)點的SHAP值進行匯總,提供模型整體行為的洞察。

SHAP的優(yōu)勢

  • 模型無關性
    SHAP 適用于多種機器學習模型,包括線性模型、樹模型和深度學習模型等。
  • 理論基礎
    SHAP基于Shapley值,具有堅實的理論支持,確保解釋的公平性和一致性。
  • 可視化能力
    SHAP提供多種可視化工具,幫助直觀地理解特征對模型預測的影響。

案例分享

下面,我們來訓練一個 XGBoost 模型并計算 SHAP 值來解釋每個特征如何影響預測。

首先,我們加載數(shù)據(jù)集(加利福尼亞住房數(shù)據(jù)集)并訓練一個 XGBoost 模型

import shap
import xgboost as xgb
import pandas as pd
import numpy as np
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# 加載加利福尼亞住房數(shù)據(jù)集
california_housing = fetch_california_housing()
X, y = california_housing.data, california_housing.target
feature_names = california_housing.feature_names
X = pd.DataFrame(X, columns=feature_names)

# 拆分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = xgb.XGBRegressor(random_state=42)
model.fit(X_train, y_train)

接下來,計算訓練集上的 SHAP值,并使用 shap.summary_plot 展示了各特征對模型預測的總體影響。

explainer = shap.Explainer(model,X_train)
shap_values = explainer(X_train)
shap.summary_plot(shap_values, X_train, feature_names=feature_names)

下圖按所有樣本的 SHAP 值大小總和對特征進行排序,并使用 SHAP 值顯示每個特征對模型輸出的影響的分布。

我們還可以只取每個特征的 SHAP 值的平均絕對值來獲得標準條形圖。

shap.plots.bar(shap_values,show=False)

最后,我們使用 shap.force_plot 展示了單個樣本的特征貢獻,幫助我們理解模型對該樣本的具體預測。

shap.initjs()  # 初始化JS以便顯示交互圖
shap.force_plot(explainer.expected_value, shap_values.values[0, :], X_train.iloc[0])


責任編輯:華軒 來源: 程序員學長
相關推薦

2025-07-15 10:29:17

2025-01-23 08:23:12

2019-08-29 18:07:51

機器學習人工智能

2024-05-21 09:45:40

機器學習人工智能XAI

2020-08-19 09:20:00

機器學習人工智能Python

2021-01-08 10:47:07

機器學習模型算法

2020-08-25 10:30:59

TensorFlow數(shù)據(jù)機器學習

2023-09-20 11:42:44

人工智能AI

2021-06-05 08:04:26

機器學習CARTOptimal

2021-12-30 20:20:46

機器學習銷售語言

2019-05-13 09:22:21

微軟開源機器學習

2023-11-06 10:50:35

機器學習LIME

2019-11-15 13:52:06

機器學習Shapley計算

2023-08-11 13:54:31

AI因果

2024-05-28 08:00:00

人工智能機器學習

2022-06-07 10:25:45

機器學習Shapash

2018-05-23 09:20:12

人工智能機器學習技術

2024-09-09 11:45:15

ONNX部署模型

2021-11-02 09:40:50

TensorFlow機器學習人工智能

2017-07-07 14:41:13

機器學習神經(jīng)網(wǎng)絡JavaScript
點贊
收藏

51CTO技術棧公眾號