有很多选择,这取决于你到底想要什么。
特征重要性或排列重要性
这两种方法都会告诉您哪些特征对模型最重要。它是每个功能的数字。它是在拟合模型后计算的。它不会告诉您任何有关特征的哪些值意味着什么分数。
在 sklearn 中,大多数 modelz 都有model.feature_importances_. 所有特征重要性的总和为 1。
为拟合模型计算排列重要性。它会告诉您,如果您对特征列进行洗牌,指标会恶化多少。
伪代码:
model.fit()
base_score = model.score(x_dev, y_dev)
for i in range(nr_features):
x_dev_copy = copy(x_dev)
x_dev_copy[:, i] = shuffle(x_dev_copy[:, i])
perm_score = model.score(x_dev_copy, y_dev)
perm_imp[i] = (perm_score - base_score) / base_score
您可以在此处阅读有关排列重要性的更多信息。
部分依赖图
告诉您某个特征的哪些值会增加/减少预测值。它看起来像这样:

有关Kaggle的更多信息:部分依赖图或直接访问库PDPbox GitHub。
形状值
解释了为什么模型对给定实例给出了特定的预测。它绘制了下图,告诉您哪些特征值将预测从平均值移动到当前实例的当前值。

查看SHAP 库以获取更多详细信息。