楼主: robit
4651 5

[问答] 新手求助R软件分类回归树,只分两组 [推广有奖]

  • 2关注
  • 2粉丝

已卖:164份资源

硕士生

84%

还不是VIP/贵宾

-

威望
0
论坛币
7919 个
通用积分
26.4878
学术水平
2 点
热心指数
2 点
信用等级
0 点
经验
3992 点
帖子
142
精华
0
在线时间
200 小时
注册时间
2007-4-24
最后登录
2012-5-27

楼主
robit 发表于 2011-12-30 18:10:25 |AI写论文
20论坛币
我有21个地方9年的数据,我想做区域分组,如果我把9年数据放在一起一共就有189条,这时我用R软件做分类回归树,可以分三组;但如果把这9年数据取个平均值,就有21条数据,只能分出两组。我用的指令是fit=rpart(y~x1+x2+x3+x4+x5,data=a)

补充一下:我做过其他试验,貌似数据一少,就只能分2组,其实我觉得21条已经不少,为啥又只能分两组?
以下是我的数据,万分感谢
数据.xls (39.5 KB)

最佳答案

qoiqpwqr 查看完整内容

这是rpart的一些选项 rpart.control(minsplit = 20, minbucket = round(minsplit/3), cp = 0.01, maxcompete = 4, maxsurrogate = 5, usesurrogate = 2, xval = 10, surrogatestyle = 0, maxdepth = 30, ...) 第一个minsplit的缺省值是20,如果一个node的个数小于20的话,就不会再继续分下去了。 你的总个数是21,分了一次之后一个是13,一个是8,所以不会再继续下去了。 > fit=rpart(y~x1+x ...
关键词:新手求助 r软件 rpart Data PART 软件 平均值

沙发
qoiqpwqr 发表于 2011-12-30 18:10:26
这是rpart的一些选项
rpart.control(minsplit = 20, minbucket = round(minsplit/3), cp = 0.01,
              maxcompete = 4, maxsurrogate = 5, usesurrogate = 2, xval = 10,
              surrogatestyle = 0, maxdepth = 30, ...)
第一个minsplit的缺省值是20,如果一个node的个数小于20的话,就不会再继续分下去了。
你的总个数是21,分了一次之后一个是13,一个是8,所以不会再继续下去了。

> fit=rpart(y~x1+x3+x5,data=dat, cp = 0.001, minsplit = 5)
> fit
n= 21

node), split, n, deviance, yval
      * denotes terminal node

1) root 21 4.92946800 0.5857907  
   2) x3< 4.621357e+07 17 0.43087720 0.4131688  
     4) x5< 1.477778 6 0.07079054 0.2864146  
       8) x5< 1.005 2 0.01760142 0.1982708 *
       9) x5>=1.005 4 0.02988114 0.3304865 *
     5) x5>=1.477778 11 0.21110520 0.4823075  
      10) x3< 3.049149e+07 9 0.13067690 0.4455678  
        20) x3>=2.615278e+07 3 0.02317325 0.3416831 *
        21) x3< 2.615278e+07 6 0.05893949 0.4975102  
          42) x3< 2.472364e+07 4 0.02392114 0.4521742 *
          43) x3>=2.472364e+07 2 0.01035413 0.5881822 *
      11) x3>=3.049149e+07 2 0.01361306 0.6476360 *
   3) x3>=4.621357e+07 4 1.83909100 1.3194340 *
已有 4 人评分学术水平 热心指数 信用等级 收起 理由
耕耘使者 + 2 + 2 热心帮助其他会员
kk22boy + 5 + 5 + 5 好人好报!
UNC + 1 + 1 + 1 热心帮助其他会员
AspenRd + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 9  热心指数 + 9  信用等级 + 7   查看全部评分

藤椅
robit 发表于 2011-12-31 14:44:54
qoiqpwqr 发表于 2011-12-30 18:10
这是rpart的一些选项
rpart.control(minsplit = 20, minbucket = round(minsplit/3), cp = 0.01,
       ...
真谢谢啊~~那如果我要用prune这函数进行剪枝,并且Ra(T)=R(T)+a|T|公式中a=2,那么应该如何使用prune这函数呢?
还想请问一下哪里可以找到rpart,以及prune这两个函数的参数介绍啊?

板凳
qoiqpwqr 发表于 2011-12-31 14:53:18
robit 发表于 2011-12-31 14:44
真谢谢啊~~那如果我要用prune这函数进行剪枝,并且Ra(T)=R(T)+a|T|公式中a=2,那么应该如何使用prune这函 ...
?rpart
?prune
?rpart.control

报纸
robit 发表于 2011-12-31 16:52:59
qoiqpwqr 发表于 2011-12-31 14:53
?rpart
?prune
?rpart.control
谢谢啊~做了分类树后,那能不能求出各预测变量的重要性啊?应该输入什么指令?再次麻烦了~

地板
tmdxyz 发表于 2012-3-14 08:09:44
robit 发表于 2011-12-31 16:52
谢谢啊~做了分类树后,那能不能求出各预测变量的重要性啊?应该输入什么指令?再次麻烦了~
predict命令

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 09:06