获取遵循R中决策树中特定规则的元组

时间:2015-08-17 08:05:56

标签: r dataframe data-manipulation rpart

我正在使用R中的rpart创建决策树。我还可以使用path.rpart()函数打印出决策树生成的规则。

对于空气质量数据,我将规则输出为

$`8`
[1] "root"          "Temp< 82.5"    "Wind>=7.15"    "Solar.R< 79.5"

$`18`
[1] "root"          "Temp< 82.5"    "Wind>=7.15"    "Solar.R>=79.5"
[5] "Temp< 77.5"   

$`19`
[1] "root"          "Temp< 82.5"    "Wind>=7.15"    "Solar.R>=79.5"
5] "Temp>=77.5"   

$`5`
[1] "root"       "Temp< 82.5" "Wind< 7.15"

等等。

有没有办法可以编写一个代码,将这些约束放在我的初始表空气质量上,以获得遵循这些规则的行 这相当于

airquality[which(airquality$Temp<82.5 & airquality$Wind>=7.15 & Solar.R<79.5)]

第一条规则。

非常感谢任何帮助。提前致谢。

2 个答案:

答案 0 :(得分:3)

path.rpart提供了一个很好的概述,但是MrFlick已经编写了一些代码来显示哪些观察结果属于特定节点。看here

这只关注rpart树。要查看预测值下降到哪个节点,请查看this post

请参阅我包含的示例代码。该功能来自第一个答案。第二个答案的最后一部分。

> df
         name value
total7 total7 0.020
total8 total8 0.219

答案 1 :(得分:2)

rules = rpart(airquality)    
table(rules$where)
airquality[rules$where==6,]

您是否会在不编码规则的情况下为您提供拆分数据框。我不确定这是不是你想要的。