程序代码:
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函数主要工作。
但是现在遇到了这个错误,求问如何解决??有没有大神告知一下~~


雷达卡




京公网安备 11010802022788号







