我正在使用GPUTree,发现GPUTree和TreeExplainer之间不匹配:
树解释程序代码:
explainer = shap.TreeExplainer(model)
shap_values_per_entity = explainer.shap_values(x_predict)
GPUTree解释代码:
explainer = shap.explainers.GPUTree(model)
shap_values_per_entity = explainer.shap_values(x_predict)
型号=lgbm
当我使用GPUTree解释程序代码时,我得到了以下异常(当使用相同模型和预测的树解释程序时,我得到的形状值没有任何异常): TreeExplainer中的可加性检查失败!请确保传递给解释者的数据矩阵的形状与模型的训练形状相同。如果您的数据形状正确,请在GitHub上报告。考虑使用FrutuxMyPrime=“介入”选项重试。该检查失败,因为其中一个样本的形状值之和为-0.036761,而模型输出为-1.979285。如果此差异可以接受,则可以设置check_additivity=False以禁用此检查。 此外,由于预测与我用来训练模型的预测不同,所以这个例外情况尚不清楚
在前面的错误之后,我使用check\u additivity=False标志运行了shap\u values函数:
每个实体的形状值=解释者。形状值(x预测,检查可加性=假) 我得到的结果与TreeExplainer的结果不同,例如:
树形结果:
0.000679,-0.000121,0.000143,0.000715,0.0
Gpu树形状结果:
0.00478,-0.000650,0.000106,0.000587,0.0
目前没有回答
相关问题 更多 >
编程相关推荐