成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用 SHAP 使機器學習模型變的可解釋!!!

人工智能
SHAP 借鑒了博弈論中 Shapley 值的思想,將模型視為一個合作游戲,特征被視為游戲中的“玩家”,而模型輸出(模型預測)是“收益”。

大家好,我是小寒

SHAP 是一種用于解釋機器學習模型預測結果的方法,它基于博弈論中的 Shapley值。旨在為每個特征分配一個“貢獻值”,表明該特征對模型預測結果的影響有多大。

SHAP 為復雜的黑箱模型(如深度學習模型、集成方法等)提供了一種統一且理論上有保障的解釋框架,幫助我們理解模型的決策過程,提高模型的透明度和可信度。

SHAP 的基本概念

SHAP 借鑒了博弈論中 Shapley 值的思想,將模型視為一個合作游戲,特征被視為游戲中的“玩家”,而模型輸出(模型預測)是“收益”。

Shap 值的計算過程

SHAP 值的計算依賴于計算所有特征組合的邊際貢獻。其計算過程如下。

  1. 采樣特征子集
    選取包含或不包含特定特征的不同組合,計算其對模型輸出的影響。
  2. 計算邊際貢獻
    比較加入和移除某特征后模型輸出值的差異。
  3. 平均邊際貢獻
    對所有可能組合計算的貢獻值取平均,得到特征的 Shap 值。

由于特征組合的數量呈指數級增長,SHAP 使用近似方法(如蒙特卡洛采樣、特定模型優化)來減少計算成本。

SHAP 的特點

  1. 一致性
    如果某個特征對預測的影響增加,其 SHAP 值也應增加。
  2. 公平性
    所有特征的貢獻之和等于模型的預測值減去基準值(如平均預測值)。
  3. 模型無關性
    可以應用于任何機器學習模型(如 XGBoost、隨機森林、深度神經網絡等)。
  4. 局部與全局解釋能力
  • 局部解釋:解釋單個預測值的貢獻。
  • 全局解釋:衡量整個數據集上特征的重要性。

SHAP 的應用

SHAP 廣泛應用于解釋機器學習模型,以下是常見的應用場景。

  • 特征重要性分析:了解哪些特征對模型預測結果影響最大。
  • 個體預測解釋:解釋特定樣本的預測結果,提供個性化解釋。
  • 模型調優:通過 SHAP 分析特征貢獻來優化模型。
  • 異常檢測:識別在決策過程中導致異常預測的關鍵特征。

SHAP 的實現方式

SHAP 提供了多種計算方法,適用于不同的模型類型和規模。

  1. Kernel SHAP(通用)
    適用于任意黑盒模型,使用加權線性回歸來逼近 SHAP 值,但計算成本較高。
  2. Tree SHAP(決策樹專用)
    針對決策樹模型(如 XGBoost、LightGBM、Random Forest)進行了優化,計算效率更高。
  3. Deep SHAP(深度學習)
    結合深度學習的梯度信息來估計 SHAP 值。

案例分享

以下是將 SHAP 與復雜的 XGBoost 模型一起使用的示例代碼。

首先訓練一個 xgboost 模型。

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

# 1. 加載加利福尼亞房價數據集
california = fetch_california_housing()
X = pd.DataFrame(california.data, columns=california.feature_names)
y = california.target

# 2. 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 3. 訓練 XGBoost 模型
model = xgb.XGBRegressor(objective="reg:squarederror", n_estimators=100, max_depth=4, random_state=42)
model.fit(X_train, y_train)

接下來,計算 SHAP 值,并展示所有特征對預測的整體影響。

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

圖片圖片

接下來,使用 force_plot 圖,直觀展示單個樣本的預測分解。

shap.force_plot(explainer.expected_value, shap_values[10].values, X_test.iloc[10], matplotlib=True)

圖片圖片

使用 Dependence Plot(依賴圖) 顯示特征 AveRooms 如何影響預測,同時考慮與其他特征的交互效應。

shap.dependence_plot("AveRooms", shap_values.values, X_test)

圖片圖片

使用 Decision Plot(決策圖) 展示特征在決策路徑中的累積影響。

shap.decision_plot(explainer.expected_value, shap_values.values[:10], X_test.iloc[:10])

圖片圖片


責任編輯:武曉燕 來源: 程序員學長
相關推薦

2024-11-04 14:33:04

機器學習SHAP黑盒模型

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數據機器學習

2023-09-20 11:42:44

人工智能AI

2021-06-05 08:04:26

機器學習CARTOptimal

2019-05-13 09:22:21

微軟開源機器學習

2021-12-30 20:20:46

機器學習銷售語言

2023-11-06 10:50:35

機器學習LIME

2019-11-15 13:52:06

機器學習Shapley計算

2023-08-11 13:54:31

AI因果

2022-06-07 10:25:45

機器學習Shapash

2024-05-28 08:00:00

人工智能機器學習

2018-05-23 09:20:12

人工智能機器學習技術

2024-09-09 11:45:15

ONNX部署模型

2017-07-07 14:41:13

機器學習神經網絡JavaScript

2021-11-02 09:40:50

TensorFlow機器學習人工智能

2019-10-22 10:12:45

機器學習模型人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷久久网 | 久久一区二区三区免费 | 99久久婷婷国产综合精品电影 | 激情五月婷婷在线 | 自拍偷拍亚洲欧美 | 99精品国产一区二区三区 | 伊人婷婷 | 亚洲精品欧美 | 色视频在线免费观看 | 亚洲第一成年免费网站 | 亚洲视频中文字幕 | 久久伊人精品 | 国产精品高清在线 | 亚洲情综合五月天 | 精产国产伦理一二三区 | 日韩视频在线播放 | .国产精品成人自产拍在线观看6 | 天天干视频网 | 欧美精品久久久久久久久久 | 色眯眯视频在线观看 | 福利视频一二区 | 91亚洲精品久久久电影 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 91高清视频在线 | 三级av网址 | 国产精品久久久久久久久久久免费看 | 亚洲高清在线免费观看 | www视频在线观看 | 欧美久久久电影 | 玖玖在线免费视频 | 国产资源一区二区三区 | 成人在线视频观看 | 全免费a级毛片免费看视频免 | 中文字幕av第一页 | 热99视频| 中文成人无字幕乱码精品 | 精品美女视频在线观看免费软件 | 久久久夜色精品亚洲 | 国产一区二区精品自拍 | 欧美色综合 | 做a视频在线观看 |