变量重要性
变量重要性(也称为特征重要性)是一个分数,表示特征对模型的“重要性”。例如,如果给定模型具有两个输入特征“f1”和“f2”,变量重要性为 {f1=5.8, f2=2.5},则特征“f1”对模型来说比特征“f2”更“重要”。与其他机器学习模型一样,变量重要性是了解决策树工作原理的一种简单方式。
您可以将模型不限定变量的重要性(例如排列变量重要性)应用于决策树。
决策树还具有特定变量的重要性,例如:
- 给定变量的拆分分数总和。
- 包含给定变量的节点数量。
- 某个地图项在所有树形路径中首次出现的平均深度。
变量的重要性可能因特质而异,例如:
此外,变量重要性提供了关于以下方面的不同类型信息:
例如,包含特定特征的条件数量表示决策树正在查看此特定特征的程度,这可能表示变量的重要性。毕竟,如果某个特征不重要,学习算法就不会在多个条件下使用它。但是,同一特征出现在多个条件中也可能表示模型正在尝试,但无法泛化特征的模式。例如,如果特征只是一个示例标识符,没有要泛化的信息,就会发生这种情况。
另一方面,排列变量重要性的高值表示移除特征会破坏模型,而这又表示可变重要性。但是,如果模型非常可靠,移除任何一个特征可能不会损害模型。
由于不同的变量重要性会影响模型的不同方面,因此同时查看多个变量重要性具有参考价值。例如,如果某个特征在所有变量重要性方面都很重要,则该特征可能很重要。再举一个例子,如果某个特征的“节点数”可变重要性较高,“排列”变量重要性较低,则此特征可能难以泛化,并且可能会影响模型质量。
在 YDF 中,您可以通过调用
model.describe()
并查看“变量重要性”标签页来查看模型的变量重要性。如需了解详情,请参阅
模型理解教程。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-04-18。
[null,null,["最后更新时间 (UTC):2024-04-18。"],[[["Variable importance, also known as feature importance, is a score indicating how crucial a feature is to a model's predictions."],["Decision trees have specific variable importances like the sum of split scores, number of nodes using a variable, and average depth of a feature's first occurrence."],["Different variable importance metrics provide insights into the model, dataset, and training process, such as feature usage patterns and generalization abilities."],["Examining multiple variable importances together offers a comprehensive understanding of feature relevance and potential model weaknesses."],["YDF allows users to access variable importance through the `model.describe()` function and its \"variable importance\" tab for model understanding."]]],[]]