通常情况下,利益相关者并不想要一个擅长预测的黑匣子模型;他们希望深入了解功能,以便更好地了解他们的业务,因此他们可以向其他人解释。
当我们检查xgboost或sklearn梯度增强模型的特征重要性时,我们可以确定特征重要性......但我们不明白为什么这些特征很重要,对吗?
有没有办法解释哪些功能很重要,还有什么重要?
我被告知要使用shap但是运行甚至一些样板示例会引发错误,所以我正在寻找替代方案(甚至只是一种检查树木的程序方式,并且可以带走其他人的见解。而不是plot_importance()
情节。
在下面的示例中,如何解释为什么特征f19
是最重要的(同时也意识到决策树是随机的,没有random_state或种子)。
from xgboost import XGBClassifier, plot_importance
from sklearn.datasets import make_classification
import matplotlib.pyplot as plt
X,y = make_classification(random_state=68)
xgb = XGBClassifier()
xgb.fit(X, y)
plot_importance(xgb)
plt.show()
更新 我正在寻找的是一个程序化程序证据,证明上述模型选择的特征对预测能力有正面或负面影响。我想看看代码(非理论)你将如何检查实际模型并确定每个特征的正面或负面贡献。目前,我认为这是不可能的,所以有人请证明我错了。我喜欢错了!
我也理解决策树是非参数的,没有系数。仍然有一种方法可以看出一个特征是否有积极贡献(该特征的一个单位增加y)或负面(该特征的一个单位减少y)。
UPDATE2: 尽管对这个问题大加赞赏,还有几个关闭"关闭"投票,看来这个问题毕竟不是那么疯狂。 Partial dependence plots可能就是答案。
部分依赖图(PDP)由Friedman(2001)引入 解释复杂机器学习算法的目的。 解释线性回归模型并不复杂 解释支持向量机,随机森林或梯度 Boosting Machine模型,这是Partial Dependence Plot可以来的 投入使用。对于一些统计解释,您可以在这里参考和更多 预先。一些算法具有查找变量的方法 重要但他们并不表示变通是否强烈或 负面影响模型。
答案 0 :(得分:1)
功能的“重要性”取决于您用于构建树的算法。例如,在C4.5树中,经常使用最大熵标准。这意味着功能集允许使用较少的决策步骤进行分类。
答案 1 :(得分:1)
当我们检查xgboost或sklearn梯度增强模型的特征重要性时,我们可以确定特征重要性......但我们不明白为什么这些特征很重要,对吗?
是的,我们这样做。特征重要性不是一些神奇的对象,它是一个明确定义的数学标准 - 它的确切定义取决于特定的模型(和/或一些其他选择),但它始终是一个告诉"为什么"的对象。 "为什么"通常是最基本的东西,归结为"因为它具有最强的预测能力"。例如,对于随机森林特征,重要性是当在树中推送随机选择的训练数据点时,在决策路径上使用该特征的可能性的度量。所以它给出了"为什么"在适当的数学意义上。
答案 2 :(得分:1)
tldr; http://scikit-learn.org/stable/auto_examples/ensemble/plot_partial_dependence.html
我想澄清一些措辞,以确保我们在同一页上。
<强> 1。预测能力
您的功能重要性向您展示了保留最多信息的内容,并且是最重要的重要功能。权力可能意味着导致最大变化的原因 - 你必须通过插入虚拟值来检查它们的整体影响,就像你必须使用线性回归系数一样。
<强> 2。相关性/相关性强>
正如@ Tiago1984所指出的,它在很大程度上取决于底层算法。 XGBoost / GBM正在累加建立一个存根委员会(具有少量树木的决策树,通常只有一个分裂)。
在回归问题中,树通常使用与MSE相关的标准。我不会详细介绍,但你可以在这里阅读更多内容:https://medium.com/towards-data-science/boosting-algorithm-gbm-97737c63daa3。
你会看到它在每一步计算弱学习者“方向”的向量,所以你原则上知道它的影响方向(但要记住它可能会在一棵树上多次出现) ,在添加剂模型的多个步骤中。)
但是,要切入追逐;您可以修复除f19
之外的所有功能,并对一系列f19
值进行预测,并查看它与响应值的关系。
查看部分依赖关系图:http://scikit-learn.org/stable/auto_examples/ensemble/plot_partial_dependence.html
在统计学习要素,第10.13.2章中也有一章。