首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以手动创建一个RWeka决策树(递归分区)树吗?

我可以手动创建一个RWeka决策树(递归分区)树吗?
EN

Stack Overflow用户
提问于 2015-06-19 02:31:32
回答 2查看 678关注 0票数 1

我已经使用J48构建了一个RWeka决策树。我想将其性能与描述现有(外部计算的)决策树的决策树进行比较。我是RWeka新手,我很难手动创建RWeka决策树。理想情况下,我希望将两者并排显示,并使用RWeka可视化来绘制它们(它非常信息丰富且干净)。

现在,我将将RWeka计算决策树导出到Graphviz,并将其操作到我想要的结构中。我想在开始之前检查一下,并确保我不能简单地指定我想要手动指定决策树的规则。

我不想计算决策树(我已经这样做了),我想手动构建/指定一个决策树(用于在我的演示中进行统一的比较)。

谢谢你的进阶。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-19 06:59:55

RWeka包本身无法做到这一点。然而,RWeka使用partykit包来显示它的树,这些树可以做您想做的事情。查看vignette(“partykit“, package = “partykit“),如何使用预先指定的partysplit来构造递归partysplit对象,然后将它们转换为constparty。这个小插曲有一个实际的例子。

票数 2
EN

Stack Overflow用户

发布于 2015-06-19 18:27:12

下面是@Achim Zeileis建议的包@Achim Zeileis的一些示例代码。

代码语言:javascript
复制
library(partykit)

加载数据:

代码语言:javascript
复制
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表示未指定的数据帧的列,此拆分适用于该数据帧。索引对应于一个因子的水平(离散分裂),而间断对应于一个截止(连续分裂)。

代码语言:javascript
复制
sp_o <- partysplit(1L, index = 1:3)
sp_h <- partysplit(3L, breaks = 75)
sp_w <- partysplit(4L, index = 1:2)

将决策纳入节点:

代码语言:javascript
复制
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")))))

将数据匹配到树中:

代码语言:javascript
复制
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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30928998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档