我可以使用设置为“-1”的单调约束来计算 CatBoost 模型拟合的 SHAP 值吗?
Can I calculate SHAP values on a CatBoost model fit using monotone constraints set to "-1"?
我拟合了一个 CatBoostClassifier 模型(在 Python 中),参数 monotone_constraints
设置为值等于“-1”的字典。
但是,当我尝试计算 SHAP 值时:
df_shap_vals = model.get_feature_importance(data=X_pooled,
type='ShapValues',
prettified=False,
thread_count=-1,
verbose=False)
我收到错误:
CatBoostError: c:/program files (x86)/go agent/pipelines/buildmaster/catboost.git/catboost/libs/fstr/shap_values.cpp:810: Cannot calc shap values, model contains non zero approx for zero-weight leaf
注意:我以前在没有设置 monotone_constraints
参数的情况下能够使用上面的代码计算 SHAP 值。
我在使用 旧版 catboost 时也遇到了同样的问题。
在版本0.24.4中,底层问题已经修复,因此我的建议是尝试提到的版本。
我拟合了一个 CatBoostClassifier 模型(在 Python 中),参数 monotone_constraints
设置为值等于“-1”的字典。
但是,当我尝试计算 SHAP 值时:
df_shap_vals = model.get_feature_importance(data=X_pooled,
type='ShapValues',
prettified=False,
thread_count=-1,
verbose=False)
我收到错误:
CatBoostError: c:/program files (x86)/go agent/pipelines/buildmaster/catboost.git/catboost/libs/fstr/shap_values.cpp:810: Cannot calc shap values, model contains non zero approx for zero-weight leaf
注意:我以前在没有设置 monotone_constraints
参数的情况下能够使用上面的代码计算 SHAP 值。
我在使用 旧版 catboost 时也遇到了同样的问题。
在版本0.24.4中,底层问题已经修复,因此我的建议是尝试提到的版本。