#python #catboost #shap
#python #catboost #shap
Вопрос:
Я подгоняю модель 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
Примечание: ранее я мог вычислять значения SHAP, используя приведенный выше код, когда я не задавал monotone_constraints
аргумент.
Комментарии:
1. Вы используете встроенные возможности
catboost
, которые, похоже, не работают. Вы можете попробоватьKernelExplainer
, который должен работать для любой функции илиTreeExplainer
изshap
пакета, и посмотреть, проходит ли ваш классификатор [через последний].
Ответ №1:
У меня также была такая же проблема при использовании старой версии catboost.
В версии 0.24.4 основная проблема была исправлена, поэтому я предлагаю попробовать указанную версию.