楼主: hala_sneaker
2909 5

[问答] 关于R软件建立交叉验证的问题,求大神,在线等,很急 [推广有奖]

  • 0关注
  • 0粉丝

小学生

85%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
61 点
帖子
9
精华
0
在线时间
7 小时
注册时间
2015-5-10
最后登录
2016-7-1

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我在建立交叉验证的过程中出现了问题,本人初学者,求大神指点,作业今晚要交,很急,谢了
程序如下
> D=2;Z=5;n=nrow(w)#因变量为第二个“STA”
> Fold=function(Z=5,w,D,seed=7777){
+ n=nrow(w);d=1:n;dd=list()
+ e=levels(w[,D]);T=length(e)
+ set.seed(seed)
+ for(i in 1:T){
+ d0=d[w[,D]==e[i]];j=length(d0)
+ ZT=rep(1:Z,ceiling(j/Z))[1:j]
+ id=cbind(sample(ZT,length(ZT)),d0);dd[[i]]=id}
+ mm=list()
+ for(i in 1:Z){u=NULL;
+ for(j in 1:T)u=c(u,dd[[j]][dd[[j]][,1]==i,2])
+ mm[[i]]=u} #mm[[i]]
+ return(mm)}
>
> mm=Fold(Z,w,D,8888)

结果提示错误说:
Error in if (length(x) == 1L && is.numeric(x) && x >= 1) { :
  需要TRUE/FALSE值的地方不可以用缺少值


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:交叉验证 在线等 r软件 function ceiling 在线 软件

沙发
hala_sneaker 发表于 2015-5-10 23:07:30 |只看作者 |坛友微信交流群
顶一下,很急,谢谢各位

使用道具

藤椅
hala_sneaker 发表于 2015-5-10 23:17:32 |只看作者 |坛友微信交流群
求大神来啊

使用道具

板凳
hala_sneaker 发表于 2015-5-10 23:30:32 |只看作者 |坛友微信交流群
求大神指点啊

使用道具

报纸
letsgoaway 发表于 2015-5-12 14:21:06 |只看作者 |坛友微信交流群
做分类的话你可能少了一句w[,D]=factor(w[,D]),将因变量因子化一下。
下面是试过的代码,做分类用的:

D=10;Z=5;n=nrow(w);w[,D]=factor(w[,D])
Fold=function(Z=5,w,D,seed=7777){
  n=nrow(w);d=1:n;dd=list()
  e=levels(w[,D]);T=length(e)# 因变量T 类
  set.seed(seed)
  for(i in 1:T){
    d0=d[w[,D]==e];j=length(d0)
    ZT=rep(1:Z,ceiling(j/Z))[1:j]
    id=cbind(sample(ZT,length(ZT)),d0);dd[]=id}
  # 上面每个dd[] 是随机1:Z 及i 类的下标集组成的矩阵
  mm=list();for(i in 1:Z){u=NULL;
                          for(j in 1:T)u=c(u,dd[[j]][dd[[j]][,1]==i,2])
                          mm[]=u};return(mm)}# 输出Z 个下标集

使用道具

地板
淡定的木头 发表于 2016-12-21 15:52:50 |只看作者 |坛友微信交流群
这个问题你解决了么?

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-9 06:23