R函数以获取rpart应用的规则

3
iris <- read.csv("iris.csv") #iris data available in R
library(rpart)
iris.rpart <- rpart(Species~Sepal.length+Sepal.width+Petal.width+Petal.length, 
                 data=iris)
plotcp(iris.rpart)
printcp(iris.rpart)
iris.rpart1 <- prune(iris.rpart, cp=0.047)
plot(iris.rpart1,uniform=TRUE)
text(iris.rpart1, use.n=TRUE, cex=0.6)

我尝试对鸢尾花数据集进行rpart分析,但是有没有一些R函数可以获取rpart应用的规则以了解在添加新数据点时分类是如何进行的呢?


您可以输入 rpart 来阅读源代码。它很长。 - Rich Scriven
@RichardScriven 没有从attributes命令中获取任何函数? - user3370708
https://dev59.com/533aa4cB1Zd3GeqPkPak - IRTFM
我认为你在 iris.rpart 公式中的变量名不正确。我试图进行编辑,但未获批准。 - Rich Scriven
@RichardScriven,我想通了。我使用iris.rpart得到了规则。代码的最后两行帮助我生成图表。但我无法获取PDF文件,请帮忙看看? - user3370708
1个回答

1

rpart.plot包含一个函数rpart.rules,用于生成一组决策树规则。例如:

library(rpart.plot)
iris.rpart <- rpart(Species~., data=iris)
rpart.rules(iris.rpart)

提供

   Species  seto vers virg
    setosa [1.00  .00  .00] when Petal.Length <  2.5
versicolor [ .00  .91  .09] when Petal.Length >= 2.5 & Petal.Width <  1.8
 virginica [ .00  .02  .98] when Petal.Length >= 2.5 & Petal.Width >= 1.8

options(width=1000)
rpart.predict(iris.rpart, newdata=iris[50:52,], rules=TRUE)

提供给你用于生成每个预测的规则:
   setosa versicolor virginica
50      1    0.00000  0.000000 because Petal.Length <  2.5
51      0    0.90741  0.092593 because Petal.Length >= 2.5 & Petal.Width <  1.8
52      0    0.90741  0.092593 because Petal.Length >= 2.5 & Petal.Width <  1.8

更多示例请参见rpart.plot vignette的第4章。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接