我希望获得一个重要特征的数据框。使用以下代码,我已经获得了shap_values,但我不确定这些值的含义。我的数据框中有142个特征和67个实验,但是我得到了大约2500个值的数组。
explainer = shap.TreeExplainer(rf)
shap_values = explainer.shap_values(X_test)
shap.summary_plot(shap_values, X_test, plot_type="bar")
我已经尝试将它们存储在一个df中:
rf_resultX = pd.DataFrame(shap_values, columns = ['shap_values'])
但是得到了错误信息:ValueError: 传递的值的形状为(18, 142),但索引表明它应该是(18, 1)
142 - 特征的数量。 18 - 我不知道。
我认为它的运作方式如下:
- shap_values需要平均。
- 并与特征名称配对:pd.DataFrame(feature_names, columns = ['feature_names'])
有人有解释shap_values的经验吗? 起初我认为,数值的数量是特征数乘以行数。