【发布时间】:2011-07-03 10:20:53
【问题描述】:
我对 R 很陌生,遇到了一个非常愚蠢的问题。
我正在使用 rpart 包校准回归树,以便进行一些分类和一些预测。
多亏了 R,校准部分很容易做也很容易控制。
#the package rpart is needed
library(rpart)
# Loading of a big data file used for calibration
my_data <- read.csv("my_file.csv", sep=",", header=TRUE)
# Regression tree calibration
tree <- rpart(Ratio ~ Attribute1 + Attribute2 + Attribute3 +
Attribute4 + Attribute5,
method="anova", data=my_data,
control=rpart.control(minsplit=100, cp=0.0001))
在校准大决策树后,我希望为给定的数据样本找到一些新数据的相应集群(以及预测值)。predict 函数似乎非常适合这种需要。
# read validation data
validationData <-read.csv("my_sample.csv", sep=",", header=TRUE)
# search for the probability in the tree
predict <- predict(tree, newdata=validationData, class="prob")
# dump them in a file
write.table(predict, file="dump.txt")
但是,使用predict 方法,我只能得到新元素的预测比例,而我无法找到获得新元素所属的决策树叶的方法。
我认为它应该很容易得到,因为 predict 方法必须找到叶子才能返回比率。
有几个参数可以通过class= 参数提供给 predict 方法,但是对于回归树来说似乎都返回相同的东西(决策树的目标属性的值)
有谁知道如何获取决策树中对应的节点?
通过path.rpart方法分析节点,有助于我理解结果。
【问题讨论】:
-
您是否尝试过使用
str()探索您的对象?
标签: r regression decision-tree rpart cart-analysis