自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用 SHAP 使機(jī)器學(xué)習(xí)模型變的可解釋??!

人工智能 機(jī)器學(xué)習(xí)
SHAP 是一種解釋機(jī)器學(xué)習(xí)模型預(yù)測(cè)結(jié)果的方法,它基于博弈論中的 Shapley 值理論。它通過(guò)計(jì)算每個(gè)特征對(duì)模型輸出的貢獻(xiàn)度,幫助我們理解模型的決策過(guò)程。

SHAP 是一種解釋機(jī)器學(xué)習(xí)模型預(yù)測(cè)結(jié)果的方法,它基于博弈論中的 Shapley 值理論。

它通過(guò)計(jì)算每個(gè)特征對(duì)模型輸出的貢獻(xiàn)度,幫助我們理解模型的決策過(guò)程。

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

核心概念

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

SHAP的主要特點(diǎn)

1.一致性

如果模型的特征貢獻(xiàn)增加,那么相應(yīng)的SHAP值也會(huì)增加,確保解釋的合理性。

2.局部解釋

SHAP值可以解釋單個(gè)樣本的預(yù)測(cè)結(jié)果,幫助理解特定數(shù)據(jù)點(diǎn)的模型決策。

3.全局解釋

通過(guò)對(duì)多個(gè)數(shù)據(jù)點(diǎn)的SHAP值進(jìn)行匯總,提供模型整體行為的洞察。

SHAP的優(yōu)勢(shì)

  • 模型無(wú)關(guān)性
    SHAP 適用于多種機(jī)器學(xué)習(xí)模型,包括線性模型、樹(shù)模型和深度學(xué)習(xí)模型等。
  • 理論基礎(chǔ)
    SHAP基于Shapley值,具有堅(jiān)實(shí)的理論支持,確保解釋的公平性和一致性。
  • 可視化能力
    SHAP提供多種可視化工具,幫助直觀地理解特征對(duì)模型預(yù)測(cè)的影響。

案例分享

下面,我們來(lái)訓(xùn)練一個(gè) XGBoost 模型并計(jì)算 SHAP 值來(lái)解釋每個(gè)特征如何影響預(yù)測(cè)。

首先,我們加載數(shù)據(jù)集(加利福尼亞住房數(shù)據(jù)集)并訓(xùn)練一個(gè) 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ùn)練集和測(cè)試集
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)

接下來(lái),計(jì)算訓(xùn)練集上的 SHAP值,并使用 shap.summary_plot 展示了各特征對(duì)模型預(yù)測(cè)的總體影響。

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

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

我們還可以只取每個(gè)特征的 SHAP 值的平均絕對(duì)值來(lái)獲得標(biāo)準(zhǔn)條形圖。

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

最后,我們使用 shap.force_plot 展示了單個(gè)樣本的特征貢獻(xiàn),幫助我們理解模型對(duì)該樣本的具體預(yù)測(cè)。

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


責(zé)任編輯:華軒 來(lái)源: 程序員學(xué)長(zhǎng)
相關(guān)推薦

2025-01-23 08:23:12

2019-08-29 18:07:51

機(jī)器學(xué)習(xí)人工智能

2024-05-21 09:45:40

機(jī)器學(xué)習(xí)人工智能XAI

2020-08-19 09:20:00

機(jī)器學(xué)習(xí)人工智能Python

2021-01-08 10:47:07

機(jī)器學(xué)習(xí)模型算法

2020-08-25 10:30:59

TensorFlow數(shù)據(jù)機(jī)器學(xué)習(xí)

2023-09-20 11:42:44

人工智能AI

2021-06-05 08:04:26

機(jī)器學(xué)習(xí)CARTOptimal

2019-05-13 09:22:21

微軟開(kāi)源機(jī)器學(xué)習(xí)

2021-12-30 20:20:46

機(jī)器學(xué)習(xí)銷(xiāo)售語(yǔ)言

2023-11-06 10:50:35

機(jī)器學(xué)習(xí)LIME

2023-08-11 13:54:31

AI因果

2019-11-15 13:52:06

機(jī)器學(xué)習(xí)Shapley計(jì)算

2024-05-28 08:00:00

人工智能機(jī)器學(xué)習(xí)

2022-06-07 10:25:45

機(jī)器學(xué)習(xí)Shapash

2018-05-23 09:20:12

人工智能機(jī)器學(xué)習(xí)技術(shù)

2024-09-09 11:45:15

ONNX部署模型

2019-10-22 10:12:45

機(jī)器學(xué)習(xí)模型人工智能

2017-07-07 14:41:13

機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)JavaScript

2021-11-02 09:40:50

TensorFlow機(jī)器學(xué)習(xí)人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)