R_Language 板


LINE

[问题类型]: 程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来) [软体熟悉度]: 请把以下不需要的部份删除 入门(写过其他程式,只是对语法不熟悉) [问题叙述]: 如题 最近在用randomForest这个package做分类预测 y是binary variable 跑出结果後用getTree抓其中一颗决策树出来 输出大概就是 left daughter right daughter split var split point status prediction 这样 然後有几点想请教版友: 1. getTree的split pint判断 stack overflow有人说 若split point是2.5 则<=2.5往左走 >2.5往右走 但是若split var是factor的话呢? 像是三个levels "学生" "老师" "教官" 若直接这样getTree的话 split point那会变成乱数 ex. 3 所以我後来试着给他数字 学生为1 老师为2 教官为3 split point变成2.5 1.5之类 但在解释上说不过去 也无法套用stack overflow里的人的逻辑 若split var是年龄区间还可以解释 例如20岁以下为1 20~30岁是2 30岁以上是3 split point为2.5时 我还能理解为<=2.5是30岁以下 >2.5是30岁以上 当然 这是现阶段的理解 ex. 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) ) library(randomForest) rf <- randomForest(y~., data=data, ntree=10, proximity=TRUE) tree <- getTree(rf, labelVar=TRUE) 然後tree的结果就如上面所述 请问我究竟该如何理解这个结果呢? (2015/07/25 09:39) 补充:根据?getTree得到split point的解释是 x1有3个类别 split point若为3 则是指(1,1,0) 因为1*2^0+1*2^1+0*2^3=3 然後学生和老师都归类到左边 所以判断依据是"是否为教官" 否就丢到左边这样吗? 2. 最後是画图的问题 我在网路上找到一位网友自己写了一个函式叫to.dendrogram 程式附在下面 但是画出来的决策树只有split point的名称 ex.学生 教师 可是我希望把split point也画上去 ex. <=2.5, <=1.5等 目前知道的绘图有几个package:rpart, tree之类 但那都要用rpart或ctree来跑"一颗"决策树 然後再用package内的绘图函式画图 但是跟随机森林的那10颗(ntree=10)决策数是不一样的吧! 不要求很精美的图 主要是想修改网友的to.dendrogram的code 弄成有split point的结果 但是attr(rval, "edgetext")那边一直搞不定@@ 或是这里有大神能提供更好的解法 感激不尽!! 总结一下问题 1. randomForest中getTree的split var为factor时 split point该如何判断? 2. to.dendrogram的图中 如何修改code才能把split point放上去? 这些问题困扰小弟好久了~"~ 再次感谢 [程式范例]: http://pastie.org/10311492 [系统环境]: R version 3.2.1 (2015-06-18) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 8 x64 (build 9200) locale: [1] LC_COLLATE=Chinese (Traditional)_Taiwan.950 [2] LC_CTYPE=Chinese (Traditional)_Taiwan.950 [3] LC_MONETARY=Chinese (Traditional)_Taiwan.950 [4] LC_NUMERIC=C [5] LC_TIME=Chinese (Traditional)_Taiwan.950 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] tree_1.0-36 data.table_1.9.4 randomForest_4.6-10 loaded via a namespace (and not attached): [1] magrittr_1.5 plyr_1.8.3 tools_3.2.1 reshape2_1.4.1 Rcpp_0.11.6 [6] stringi_0.5-5 stringr_1.0.0 chron_2.3-47 [关键字]: randomForest 随机森林 getTree --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.229.215.230
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1437830114.A.120.html ※ 编辑: SFMAndroid (36.229.215.230), 07/25/2015 21:15:34 ※ 编辑: SFMAndroid (36.229.215.230), 07/25/2015 21:24:00 ※ 编辑: SFMAndroid (36.229.215.230), 07/25/2015 21:26:49 ※ 编辑: SFMAndroid (36.229.215.230), 07/25/2015 21:37:25
1F:推 ntme: 没用过,但看pdf文件中说y是factor才作分类 07/25 21:35
2F:→ celestialgod: 你可以给一个seed还有你R的版本吗 07/25 21:38
3F:→ celestialgod: 我这里没有试出来split point像你说的情形 07/25 21:38
※ 编辑: SFMAndroid (36.229.215.230), 07/25/2015 21:40:34
4F:→ SFMAndroid: seed设成100 R版本跟系统环境已补上 谢谢~ 07/25 21:41
5F:→ celestialgod: 你後面补的解释应该没有错 1.的答案应该如你理解 07/25 21:42
6F:→ SFMAndroid: 请问c大 那若predictor是连续变数的话 <=是往左 07/25 21:43
7F:→ celestialgod: 不过seed一百我还是没有看到6(摊手 07/25 21:43
8F:→ SFMAndroid: >是往右没错吧? 07/25 21:44
9F:→ celestialgod: 对 07/25 21:44
10F:→ SFMAndroid: 抱歉 设完seed後我忘记改结果了@@ 07/25 21:44
※ 编辑: SFMAndroid (36.229.215.230), 07/25/2015 21:46:32
11F:→ SFMAndroid: 谢谢c大:) 07/25 21:46
12F:→ celestialgod: http://tinyurl.com/pwtzucf 07/25 21:50
13F:→ celestialgod: 上面连结是别人写的plot.getTree 07/25 21:50
14F:→ celestialgod: 有不少FUNCTION 下载之後 都source应该就可以用 07/25 21:50
15F:→ celestialgod: 我就不测试了 07/25 21:51
16F:→ SFMAndroid: 好的感谢c大 再请教一个问题 若x2多一个类别"清洁工" 07/25 21:52
17F:→ SFMAndroid: split point得到9 (1,0,0,1)这样 就是学生跟清洁工归 07/25 21:53
18F:→ SFMAndroid: 左边 其余归右边这样? 但我以为决策树是二分(是否)的 07/25 21:54
19F:→ celestialgod: 对 07/25 21:54
20F:→ celestialgod: 每一个类别都有是否 所以有2^类别数那麽多个组合 07/25 21:55
21F:→ SFMAndroid: 区分方式 像这样是"是否是教官或老师" 不是就往左? 07/25 21:55
22F:→ celestialgod: 类别比较麻烦 所以他要每一个种类做一个CHECK 07/25 21:55
23F:→ SFMAndroid: 完全理解了 谢谢!! 07/25 21:56
24F:→ celestialgod: 忘了讲 刚刚那个我发现是一个套件 07/25 21:57
25F:→ celestialgod: 应该可以用devtools:::install_github来安装 07/25 21:57
26F:→ SFMAndroid: 尝试中 感谢:) 07/25 21:58
27F:→ celestialgod: install_github("araastat/reprtree") 07/25 22:00
28F:→ SFMAndroid: 下载成功了 又多学一招XD 谢c大 07/25 22:03







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP