1

使用 R 的rpart函数时,我可以很容易地用它拟合模型。例如:

# Classification Tree with rpart
library(rpart)

# grow tree 
fit <- rpart(Kyphosis ~ Age + Number + Start,
     method="class", data=kyphosis)

printcp(fit) # display the results 
plotcp(fit) 
summary(fit) # detailed summary of splits

# plot tree 
plot(fit, uniform=TRUE, 
     main="Classification Tree for Kyphosis")
text(fit, use.n=TRUE, all=TRUE, cex=.8)

我的问题是 - 如何衡量我的三个解释变量(年龄、数字、开始)中的每一个对模型的“重要性”?

如果这是一个回归模型,我可以从“anova”F 检验中查看 p 值(在lm有和没有变量的模型之间)。但是在物体上使用“anova”的等价物是lm什么rpart

(我希望我能把我的问题说清楚)

谢谢。

4

1 回答 1

3

当然,anova 是不可能的,因为 anova 涉及计算响应变量的总变化并将其划分为信息分量(SSA、SSE)。我看不出如何计算像脊柱后凸这样的分类变量的平方和。

我认为您实际上在谈论的是属性选择(或评估)。例如,我将使用该information gain度量。我认为这是用于在树中的每个节点处选择测试属性的方法,并且选择具有最高信息增益(或最大熵减少)的属性作为当前节点的测试属性。此属性最小化了对结果分区中的样本进行分类所需的信息。

我不知道在 R 中是否有根据属性的信息增益对属性进行排名的方法,但我知道在WEKA中有一种方法,名为InfoGainAttributeEval它通过测量关于类的信息增益来评估属性的价值。如果您使用Rankeras Search Method,则属性将按其各自的评估进行排名。

编辑 我终于找到了一种在 R 中使用库的方法CORElearn

estInfGain <- attrEval(Kyphosis ~ ., kyphosis, estimator="InfGain")
print(estInfGain)
于 2010-03-07T19:59:17.870 回答