使用 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 目的?

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

谢谢。

有帮助吗?

解决方案

当然,方差分析是不可能的,因为方差分析涉及计算响应变量的总变异并将其划分为信息成分(SSA、SSE)。我不明白如何计算像 Kyphosis 这样的分类变量的平方和。

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

我不知道R中是否有一种根据信息增益对属性进行排序的方法,但我知道有 威卡 并被命名为 信息增益属性评估 它通过测量相对于类的信息增益来评估属性的价值。如果你使用 Ranker 作为 Search Method, ,属性按其个人评价进行排名。

编辑我终于找到了一种在 R 中使用 Library 来做到这一点的方法 CORElearn

estInfGain <- attrEval(Kyphosis ~ ., kyphosis, estimator="InfGain")
print(estInfGain)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top