gpt4 book ai didi

catboost - 模型特征重要性和 SHAP 汇总图的差异

转载 作者:行者123 更新时间:2023-12-05 05:47:04 57 4
gpt4 key购买 nike

我一直在玩玩具数据集,以了解更多关于 shap 库和用法的信息。我发现这个问题是 catboost 回归模型的特征重要性与 shap 库中 summary_plot 的特征重要性不同。

我正在分析 X_train 集上 model.feature_importances_ 的特征重要性和 X_test 集上 shap 解释器的摘要图。

这是我的源代码-

import catboost
from catboost import *
import shap
shap.initjs()
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split

X,y = shap.datasets.boston()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)

# Train Model
model = CatBoostRegressor(iterations=300, learning_rate=0.1, random_seed=123)
model.fit(X_train, y_train, verbose=False, plot=False)

# Compute feature importance dataframe
feat_imp_list = list(zip ( list(model.feature_importances_) , model.feature_names_) )
feature_imp_df = pd.DataFrame(sorted(feat_imp_list, key=lambda x: x[0], reverse=True) , columns = ['feature_value','feature_name'])
feature_imp_df

enter image description here

# Run shap explainer on X_test set
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)

enter image description here

为什么 DIS 在 Model 的特征重要性图中排在第 3 位,而在 SHAP 库的摘要图中排在第 7 位?

最佳答案

特征重要性总是正的,因为 shap 值是附加到自变量的系数(它可以是负的也可以是正的)。

两者都是按降序排列的结果:- 在功能重要性中,您可以看到它从最大值开始下降到最小值。它的总和在任何情况下都必须是 100(即 100%)。-对于形状值,它只是附加到该特定特征的系数。这也是按降序排列的(从最高系数到最低值)。它的总和可以是实数中的任何值(对于任何情况)。

附言您可以将这些形状系数与逻辑回归模型的系数进行比较,以便更好地理解。

干杯!

关于catboost - 模型特征重要性和 SHAP 汇总图的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71088769/

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com