作者celestialgod (攸蓝)
看板R_Language
标题Re: [问题] 随机森林画决策树
时间Sun Jul 26 14:48:56 2015
※ 引述《SFMAndroid (安卓发送)》之铭言:
: 承前篇
: 目前成功用plot.getTree得到结果了
: #code
: library(tree)
: library(reprtree)
: library(plotrix)
: set.seed(100)
: jepg("~//tree.jpeg", width=1300, height=800)
: reprtree:::plot.getTree(rf, k=10, depth=0)
: dev.off()
我看了一下,原作者好像写死了那个部分的参数(cex = 0.8)
所以你需要用git clone把package download之後自己做一些修改
plor.reptree.R的 labelBG加上一个input, cex.label
boxed.labels里面的cex引数原本等於0.8要改成 cex = cex.label
像下面这样:
labelBG <- function(tr, cex.label = 0.8){
## 中间省略
boxed.labels(xy$x[ind],xy$y[ind]+0.5*charht, rows[ind] , border=F,
bg='white', cex=cex.label, xpad=0.5, ypad=1)
}
plot.getTree.R的plot.getTree加上一个input, cex.label
然後改倒数第三行的labelBG,改成labelBG(x, cex.label)
像这样
plot.getTree <- function(rforest=NULL,tr=NULL,k=1, depth=0,main=NULL,
cex.label = 0.8, ...){
## 中间省略
labelBG(x, cex.label)
labelYN(x)
title(main=main)
}
你接下来这样就可以work了
library(reprtree)
set.seed(100)
data <- data.frame(y=sample(c("好", "不好"), 100, replace=TRUE),
x1=sample(c("学生", "老师", "教官"), 100, replace=TRUE),
x2=sample(c("20岁以下", "20~30岁", "30岁以上"), 100, replace=TRUE))
rf <- randomForest(y~., data=data, ntree=10, proximity=TRUE)
reprtree:::plot.getTree(rf, k=10, depth=0, cex.label = 2)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.205.27.107
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1437893339.A.9C2.html
※ 编辑: celestialgod (123.205.27.107), 07/26/2015 14:55:39
1F:→ SFMAndroid: 大大我用git载下来也修改了 可是跑的时候他还是给我 07/26 16:24
2F:→ SFMAndroid: Error:"cex.label" 不是一个绘图参数 07/26 16:25
3F:→ SFMAndroid: 我是把载下来的资料夹覆盖原本R library里面的reptree 07/26 16:25
不行这样,你下载然後改CODE之後,要用命令列打R CMD INSTALL reprtree
4F:→ SFMAndroid: 然後再改参数 改完後不知为何没变@@ 07/26 16:26
5F:推 SFMAndroid: 输入後他写ERROR:dependencies 'randomForest', 07/26 16:32
这个问题比较复杂一点QQ...我不知道你为啥会出问题(叹气
6F:→ SFMAndroid: 'tree', 'plotrix' are not available for package 07/26 16:32
7F:→ SFMAndroid: 'reprtree' *removing '~/reprtree' 07/26 16:33
你的系统是什麽?这个问题通常出现在你使用R的资料夹是否有正确被囊括在路径中
试试看将reprtree的资料夹压缩成tar.gz,用R的manu选用本机的zip安装程式套件
结果回报:成功
※ 编辑: celestialgod (123.205.27.107), 07/26/2015 17:51:33