- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在玩玩具数据集,以了解更多关于 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
# Run shap explainer on X_test set
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)
为什么 DIS 在 Model 的特征重要性图中排在第 3 位,而在 SHAP 库的摘要图中排在第 7 位?
最佳答案
特征重要性总是正的,因为 shap 值是附加到自变量的系数(它可以是负的也可以是正的)。
两者都是按降序排列的结果:- 在功能重要性中,您可以看到它从最大值开始下降到最小值。它的总和在任何情况下都必须是 100(即 100%)。-对于形状值,它只是附加到该特定特征的系数。这也是按降序排列的(从最高系数到最低值)。它的总和可以是实数中的任何值(对于任何情况)。
附言您可以将这些形状系数与逻辑回归模型的系数进行比较,以便更好地理解。
干杯!
关于catboost - 模型特征重要性和 SHAP 汇总图的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71088769/
我需要使用 CatBoost 执行多类多标签分类。 示例数据: X = [[1, 2, 3, 4], [2, 3, 5, 1], [4, 5, 1, 3]] y = [[3, 1], [2, 8],
我试图了解 catboost 过拟合检测器。它在这里描述: https://tech.yandex.com/catboost/doc/dg/concepts/overfitting-detector-
我用 catboost 训练了二元分类器,测试数据中的相同特征会返回此错误; catboost/libs/data/model_dataset_compatibility.cpp:47: Featur
如何返回 CatBoost 模型的所有超参数? 注意:我认为这不是 Print CatBoost hyperparameters 的复制品因为那个问题/答案不能满足我的需要。 例如,使用 sklear
这是我在 CatBoost 中应用 BayesSearch 的尝试: from catboost import CatBoostClassifier from skopt import BayesSe
我正在为我的二元分类模型使用 catboost 分类器,其中我有一个高度不平衡的数据集:0 -> 115000 和 1 -> 10000。有人可以指导我如何在 catboostclassifier 中
当从 catboost 绘制一棵树时,它在叶子中显示 val;这些值代表什么? 我在他们关于绘图的官方教程中找不到答案,在我能找到的任何地方也找不到任何此类问题的答案。喜欢: LightGBM plo
我一直在玩玩具数据集,以了解更多关于 shap 库和用法的信息。我发现这个问题是 catboost 回归模型的特征重要性与 shap 库中 summary_plot 的特征重要性不同。 我正在分析 X
考虑以下数据: import pandas as pd y_train = pd.DataFrame({0: {14194: 'Fake', 13891: 'Fake', 13247: 'Fake',
我正在尝试使用 CatBoost 来拟合二元模型。当我使用以下代码时,我想到了 verbose=False可以帮助抑制迭代日志。但它没有。有没有办法避免打印迭代? model=CatBoostClas
类似的问题: Python Catboost: Multiclass F1 score custom metric Catboost 教程 https://catboost.ai/docs/conce
我一直在研究 catboost 算法,我很难看出使用对称树的意义。在这方面,我在他们的github中找到了: An important part of the algorithm is that it
训练模型后如何打印 CatBoost 超参数? 在 sklearn我们可以打印模型对象,它将显示所有参数,但在 catboost 中它只打印对象的引用: . from catboost import
我有一些关于 catboost 的愚蠢问题。 从catboost的文档中,我了解到行之间存在一些排列/洗牌,用于分类数据转换。( https://tech.yandex.com/catboost/do
我是 ML 新手,对 catboost 有疑问。所以,我想预测函数值(例如 cos | sin 等)。我回顾了一切,但我的预测始终是直线 是否可能,如果可能,我该如何解决我的问题 我很高兴收到任何评论
我最近开始使用 CatBoost 来快速构建机器学习模型的原型(prototype),受到杰出的 performance benchmarks 的启发。 CatBoost 与 XGBoost、Ligh
我正在处理一个包含人员列表(按财政代码索引)的数据集。目标变量是二进制的(1:买一本书,0:否则)。所有预测变量都是分类的(例如:国籍、城市、道路、收入类别等)。财政代码可以重复两次,每个实例/观察都
model.fit(train_data, y=label_data, eval_set=eval_dataset) eval_dataset = Pool(val_data, val_labels)
我有一个关于随机森林的问题。想象一下,我有关于用户与项目交互的数据。项目数量很大,大约 10 000 个。我的随机森林输出应该是用户可能与之交互的项目(如推荐系统)。对于任何用户,我想使用一个描述用户
在大型数据集(约 1M 行,500 列)上运行 catboost,我得到:训练已停止(迭代 0 上的退化解,可能太小 l2 正则化,尝试增加它)。 我如何猜测 l2 正则化值应该是多少?与y的平均值、
我是一名优秀的程序员,十分优秀!