gpt4 book ai didi

r - 使用 rpart 在回归树中搜索对应的节点

转载 作者:行者123 更新时间:2023-12-04 10:11:53 25 4
gpt4 key购买 nike

我对 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方法我只是得到我的新元素的预测比例,我找不到得到 的方法决策树叶我的新元素所属的地方。

我认为它应该很容易得到,因为预测方法 必须已经找到叶子以返回的比例。

有几个参数可以通过 class= 提供给 predict 方法。参数,但对于回归树似乎都返回相同的东西(决策树的目标属性的值)

有谁知道如何获取决策树中的相应节点?

通过分析带有 path.rpart 的节点方法,它将帮助我理解结果。

最佳答案

不幸的是,本杰明的回答不起作用:type="vector"仍然返回预测值。

我的解决方案很笨拙,但我认为没有更好的方法。诀窍是用相应的节点编号替换模型框架中的预测 y 值。

tree2 = tree
tree2$frame$yval = as.numeric(rownames(tree2$frame))
predict = predict(tree2, newdata=validationData)

现在 predict 的输出将是节点编号,而不是预测的 y 值。

(注意:以上在我的情况下有效,其中 tree 是回归树,而不是分类树。在分类树的情况下,您可能需要省略 as.numeric 或将其替换为 as.factor 。)

关于r - 使用 rpart 在回归树中搜索对应的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5102754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com