[英]Can I manually create an RWeka decision (Recursive Partitioning) tree?
我已经使用RWeka构建了J48决策树。 我想将其性能与描述现有(外部计算的)决策树的决策树进行比较。 我是RWeka的新手,无法手动创建RWeka决策树。 理想情况下,我想并排显示这两个图像,并使用RWeka可视化效果对其进行绘制(非常有用且干净)。
现在,我将RWeka计算的决策树导出到Graphviz并将其操纵到所需的结构中。 我想在开始之前进行检查,并确保不能简单地指定要手动指定决策树的规则。
我不想计算决策树(我已经做到了),我想手动构造/指定决策树(在演示文稿中进行统一比较)。
在此先感谢您。
RWeka
程序包本身无法做到这一点。 但是, RWeka
使用partykit
包来显示其树,该树可以完成您想要的操作。 查看vignette(“partykit“, package = “partykit“)
如何使用预先指定的partysplit
构造递归的partynode
对象,然后将其转换为constparty
。 小插图为此提供了一个动手的示例。
这里是软件包一些示例代码partykit
该@Achim Zeileis
建议。
library(partykit)
加载数据:
data("WeatherPlay", package = "partykit")
WeatherPlay
# outlook temperature humidity windy play
# 1 sunny 85 85 false no
# 2 sunny 80 90 true no
# 3 overcast 83 86 false yes
# 4 rainy 70 96 false yes
# 5 rainy 68 80 false yes
# 6 rainy 65 70 true no
# 7 overcast 64 65 true yes
...
初始化决策:整数1L
表示此拆分适用的尚未指定的数据帧的列。 索引对应于因子的水平(离散拆分),中断对应于截止值(连续拆分)。
sp_o <- partysplit(1L, index = 1:3)
sp_h <- partysplit(3L, breaks = 75)
sp_w <- partysplit(4L, index = 1:2)
将决策合并到节点中:
pn <- partynode(1L, split = sp_o, kids = list(
partynode(2L, split = sp_h, kids = list(
partynode(3L, info = "yes"),
partynode(4L, info = "no"))),
partynode(5L, info = "yes"),
partynode(6L, split = sp_w, kids = list(
partynode(7L, info = "yes"),
partynode(8L, info = "no")))))
使数据适合树:
t2 <- party(pn,
data = WeatherPlay,
fitted = data.frame(
"(fitted)" = fitted_node(pn, data = WeatherPlay),
"(response)" = WeatherPlay$play, # response variable
check.names = FALSE),
terms = terms(play ~ ., data = WeatherPlay),
)
t3 <- as.constparty(t2)
plot(t3)
来源: http : //cran.r-project.org/web/packages/partykit/vignettes/partykit.pdf
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.