SHAP 值无法在 SVM 模型上计算 shap 解释器
SHAP values cant compute shap explainer on SVM model
我正在尝试计算形状解释器,以便可视化我的模型。但是我不断收到以下错误:
Exception: The passed model is not callable and cannot be analyzed directly with
the given masker! Model: SVC(C=300, probability=True)
我的代码:
model = create_model(SVC, C=300, probability=True) #user defined function works right
model.fit(X_train, y_train)
explainer = shap.Explainer(model)
shap_values = explainer.shap_values(X_test)
shap.initjs()
shap.force_plot(explainer.expected_value, X_train)
当我将 KernelExplainer 与 X_train 一起尝试时,我得到:
TypeError: 'SVC' object is not callable
编辑:
这里是 create_model 函数,它将训练变量和其他模型关键字作为参数:
def create_model(X_train, y_train, model, **kwargs):
created_model = model(**kwargs)
created_model.fit(X_train,y_train)
return created_model
这里还有尝试推荐答案后的进度条:
progress bar screenshot
首先,您需要传递模型的 predict
方法,而不是模型本身。
其次,(至少在我的设置中)Explainer
无法自动为 SVC
确定合适的解释器,因此您可能希望直接调用适当的解释器,例如KernelExplainer
:
explainer = shap.KernelExplainer(model.predict)
我正在尝试计算形状解释器,以便可视化我的模型。但是我不断收到以下错误:
Exception: The passed model is not callable and cannot be analyzed directly with
the given masker! Model: SVC(C=300, probability=True)
我的代码:
model = create_model(SVC, C=300, probability=True) #user defined function works right
model.fit(X_train, y_train)
explainer = shap.Explainer(model)
shap_values = explainer.shap_values(X_test)
shap.initjs()
shap.force_plot(explainer.expected_value, X_train)
当我将 KernelExplainer 与 X_train 一起尝试时,我得到:
TypeError: 'SVC' object is not callable
编辑:
这里是 create_model 函数,它将训练变量和其他模型关键字作为参数:
def create_model(X_train, y_train, model, **kwargs):
created_model = model(**kwargs)
created_model.fit(X_train,y_train)
return created_model
这里还有尝试推荐答案后的进度条: progress bar screenshot
首先,您需要传递模型的 predict
方法,而不是模型本身。
其次,(至少在我的设置中)Explainer
无法自动为 SVC
确定合适的解释器,因此您可能希望直接调用适当的解释器,例如KernelExplainer
:
explainer = shap.KernelExplainer(model.predict)