1

我使用以下代码在 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) 显示:

树构造中实际使用的变量:

年龄
CountryCode
SupportCode
OrderType
prev_AnLP
prev_EVProfLP
prev_ProfLP
prev_TXLP
prev_SplLP

这些是我可以在分类树的每个节点上看到的相同变量,所以它们是正确的。我不明白的是summary(fit)的结果:

变量重要性:

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 (实际上是在两片叶子之前。 ..但仍然使用!)。为什么?

4

1 回答 1

2

属性的重要性基于属性显示为拆分器的所有节点的改进总和(由每个节点拆分中训练数据的分数加权)。代理也包括在重要性计算中,这意味着即使是从不分裂节点的变量也可能被分配一个很大的重要性分数。这允许变量重要性排名揭示属性之间的变量掩蔽和非线性相关性。重要性分数可以选择性地限制在拆分器中;比较仅拆分器和完整(拆分器和代理)重要性排名是一种有用的诊断方法。

有关更多信息,另请参阅“数据挖掘中的十大算法”一书的第 10 章 https://www.researchgate.net/profile/Dan_Steinberg2/publication/265031802_Chapter_10_CART_Classification_and_Regression_Trees/links/567dcf8408ae051f9ae493fe/Chapter-10-CART-Classification-and-回归树.pdf

于 2018-06-01T22:22:38.277 回答