我在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
订单类型
prev_AnLP
prev_EVProfLP
prev_ProfLP
prev_TXLP
prev_SplLP
我可以在分类树中的每个节点看到相同的变量,因此它们是正确的。 我不明白的是摘要(拟合)的结果:
变量重要性:
29 prev_EVProfLP
19 prev_AnLP
16 prev_TXLP
15 prev_SplLP
9 prev_ProfLP
7 CountryCode
2 OrderType
1上一页 1 Mol
从摘要(拟合)结果看,变量Pre和Mol比SupportCode和Age更重要,但是在树中Pre和Mol不用于分割数据,而使用SupportCode和Age(在两个叶子之前) ,实际上......但仍然使用!)。 为什么呢?
答案 0 :(得分:1)
属性的重要性基于所有节点中的改进总和,其中属性显示为拆分器(由每个节点拆分中的训练数据的分数加权)。代理也包括在重要性计算中,这意味着即使是永不分割节点的变量也可以被赋予较大的重要性分数。这允许变量重要性排名揭示属性之间的变量掩蔽和非线性相关性。重要性分数可以选择仅限于分割者;比较分离者和完全(分裂者和代理人)重要性排名是一种有用的诊断。
有关详细信息,另请参阅“数据挖掘中的十大算法”一书的第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。