手动修剪决策树

时间:2019-01-20 18:26:04

标签: r machine-learning decision-tree rpart pruning

我已经使用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)

Decision Tree

1 个答案:

答案 0 :(得分:0)

一种方法是使用snip的{​​{1}}参数:

rpart.plot

这会将树放在屏幕上,您可以使用鼠标手动修剪。有关详细信息,请参见rpart.plot程序包插图的第9章“用鼠标修剪树”。 http://www.milbo.org/doc/prp.pdf