【发布时间】:2019-06-14 05:31:06
【问题描述】:
我已经使用 rpart() 函数生成了一个简单的树,但是我希望能够在 Petal.Length < 4.9 拆分之前停止第二次拆分 Petal.Width,但是我不想更改其他任何内容那个树。我发现的唯一一件事是我可以使用子集函数来手动生长树,但是这个过程可能非常繁琐。关于可能使用的功能的任何建议?用于生成树的代码是:
library(rpart)
library(datasets)
data("iris")
library(rpart.plot)
Sample <-sample.int(n = nrow(iris), size = floor(.7*nrow(iris)), replace = F)
train <- iris[Sample, ]
test <- iris[-Sample, ]
m1 <- rpart(Species~Sepal.Width + Sepal.Length + Petal.Length + Petal.Width,
data = train, control = rpart.control(cp = 0.005), method = "anova")
rpart.plot(m1, type = 3, fallen.leaves = TRUE)
【问题讨论】:
-
您还应该学习使用
set.seed()构建可重现的示例。当我运行你的代码时,我什至没有对“Petal.Width”进行拆分。 -
谢谢我补充了。不过,这种拆分只是一个示例,理想情况下,我希望能够将此逻辑应用于更大的树
标签: r machine-learning decision-tree rpart pruning