为什么变量重要性没有反映在树构造中实际使用的变量中?
Why variable importance is not reflected in variable actually used in tree construction?
我使用以下代码在 R 上生成了一个(未修剪的)分类树:
fit <- rpart(train.set$line ~ CountryCode + OrderType + Bon + SupportCode + prev_AnLP + prev_TXLP + prev_ProfLP + prev_EVProfLP + prev_SplLP + Age + Sex + Unknown.Position + Inc + Can + Pre + Mol, data=train.set, control=rpart.control(minsplit=5, cp=0.001), method="class")
printcp(fit) 显示:
Variables actually used in tree construction:
Age
CountryCode
SupportCode
OrderType
prev_AnLP
prev_EVProfLP
prev_ProfLP
prev_TXLP
prev_SplLP
这些是我在分类树的每个节点上看到的相同变量,因此它们是正确的。
我不明白的是summary(fit)的结果:
Variable importance:
29 prev_EVProfLP
19 prev_AnLP
16 prev_TXLP
15 prev_SplLP
9 prev_ProfLP
7 CountryCode
2 OrderType
1 Pre
1 Mol
从 summary(fit) 结果来看,变量 Pre 和 Mol 似乎比 SupportCode 和 Age 更重要,但在树中 Pre 和 Mol 不用于拆分数据,而 SupportCode 和 Age 被使用(就在之前两片叶子,实际上......但仍然使用!)。
为什么?
属性的重要性基于所有节点的改进总和,其中属性作为拆分器出现(由每个节点拆分中的训练数据的分数加权)。替代项也包含在重要性计算中,这意味着即使是从不分裂节点的变量也可能被分配一个很大的重要性分数。这允许变量重要性排名揭示变量掩蔽和属性之间的非线性相关性。重要性分数可以选择性地局限于分离器;比较仅拆分器和完整(拆分器和代理)重要性排名是一个有用的诊断。
有关详细信息,另请参阅本书 'The Top Ten Algorithms in Data Mining' 的第 10 章
https://www.researchgate.net/profile/Dan_Steinberg2/publication/265031802_Chapter_10_CART_Classification_and_Regression_Trees/links/567dcf8408ae051f9ae493fe/Chapter-10-CART-Classification-and-Regression-Trees.pdf。
我使用以下代码在 R 上生成了一个(未修剪的)分类树:
fit <- rpart(train.set$line ~ CountryCode + OrderType + Bon + SupportCode + prev_AnLP + prev_TXLP + prev_ProfLP + prev_EVProfLP + prev_SplLP + Age + Sex + Unknown.Position + Inc + Can + Pre + Mol, data=train.set, control=rpart.control(minsplit=5, cp=0.001), method="class")
printcp(fit) 显示:
Variables actually used in tree construction:
Age
CountryCode
SupportCode
OrderType
prev_AnLP
prev_EVProfLP
prev_ProfLP
prev_TXLP
prev_SplLP
这些是我在分类树的每个节点上看到的相同变量,因此它们是正确的。 我不明白的是summary(fit)的结果:
Variable importance:
29 prev_EVProfLP
19 prev_AnLP
16 prev_TXLP
15 prev_SplLP
9 prev_ProfLP
7 CountryCode
2 OrderType
1 Pre
1 Mol
从 summary(fit) 结果来看,变量 Pre 和 Mol 似乎比 SupportCode 和 Age 更重要,但在树中 Pre 和 Mol 不用于拆分数据,而 SupportCode 和 Age 被使用(就在之前两片叶子,实际上......但仍然使用!)。 为什么?
属性的重要性基于所有节点的改进总和,其中属性作为拆分器出现(由每个节点拆分中的训练数据的分数加权)。替代项也包含在重要性计算中,这意味着即使是从不分裂节点的变量也可能被分配一个很大的重要性分数。这允许变量重要性排名揭示变量掩蔽和属性之间的非线性相关性。重要性分数可以选择性地局限于分离器;比较仅拆分器和完整(拆分器和代理)重要性排名是一个有用的诊断。
有关详细信息,另请参阅本书 'The Top Ten Algorithms in Data Mining' 的第 10 章 https://www.researchgate.net/profile/Dan_Steinberg2/publication/265031802_Chapter_10_CART_Classification_and_Regression_Trees/links/567dcf8408ae051f9ae493fe/Chapter-10-CART-Classification-and-Regression-Trees.pdf。