楼主: 落陷的阳光
10444 3

[问答] R 重抽样SMOTE函数出现“ subscript out of bounds”错误 [推广有奖]

  • 0关注
  • 0粉丝

大专生

1%

还不是VIP/贵宾

-

威望
0
论坛币
11 个
通用积分
1.0000
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
917 点
帖子
6
精华
0
在线时间
59 小时
注册时间
2013-9-5
最后登录
2019-11-25

楼主
落陷的阳光 发表于 2018-4-25 17:25:20 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
程序代码:
table(data.train.normalize$Y) # 违约样本占比约为0.2207143
fml = as.formula(paste("Y ~ ", paste("X",1:23, sep = "",collapse= "+"))) #回归表达式
newD = SMOTE(fml,data.train.normalize,k = 3,perc.over = 200,perc.under = 100)


运行结果:
> table(data.train.normalize$Y) # 违约样本占比约为0.2207143

    0     1
16365  4635
> #fml = as.formula(paste("Y ~ ", paste("X",1:23, sep = "",collapse= "+"))) #回归表达式
> newD = SMOTE(fml,data.train.normalize,k = 3,perc.over = 200,perc.under = 100)
Error in T[i, ] : subscript out of bounds
In addition: There were 46 warnings (use warnings() to see them)


先对21000条的非均衡训练集样本进行重抽样,用的是SMOTE方法,希望能够将少数类样本(Y=1)合成2倍(perc.over /100)数量的新少数类样本,以此达到均衡样本。这是SMOTE函数主要工作。
但是现在遇到了这个错误,求问如何解决??有没有大神告知一下~~

二维码

扫码加我 拉你入群

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

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

关键词:Mote SMO warnings Collapse addition SMOTE subscript out of bounds

沙发
落陷的阳光 发表于 2018-4-25 17:49:16
已解决。。。。。。。。。

藤椅
dangluzhuo 发表于 2018-4-26 18:43:31
请问如何解决的,我也碰到一样的问题

板凳
落陷的阳光 发表于 2018-4-27 11:06:39
dangluzhuo 发表于 2018-4-26 18:43
请问如何解决的,我也碰到一样的问题
把目标变量转换为因子变量,代码如下:
data.train.normalize$Y = factor(data.train.normalize$Y)
不谢~

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

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