R:麻烦使用SMOTE包"无效'标签'"

时间:2015-11-13 12:51:12

标签: r data-mining

使用DMwR库中的SMOTE包。加载数据帧后,我尝试按如下方式执行采样:

crime_bal$target <- as.factor(crime_bal$target)
crime_bal <- SMOTE(target ~ .,crime_bal,perc.under = 200, perc.over = 100)

但它总是会出现这个错误:

Error in factor(newCases[, a], levels = 1:nlevels(data[, a]), labels = levels(data[,  : 
  invalid 'labels'; length 0 should be 1 or 2
In addition: Warning messages:
1: NAs introduced by coercion 
2: NAs introduced by coercion 

我的数据集详情:

> summary(crime_bal)
     text               url            target  
 Length:6326        Length:6326        0:5994  
 Class :character   Class :character   1: 332  
 Mode  :character   Mode  :character

为什么我总是以错误结束?

2 个答案:

答案 0 :(得分:7)

我遇到过类似的问题,我通过将字符串功能转换为整数类型来解决它。我的猜测它只适用于数字/因子类型的数据。即我将class_1,class_2替换为1,2。

答案 1 :(得分:0)

从错误描述中,看起来代码期望列的数据类型是“字符”类型列的“因子”。在调用SMOTE函数之前,尝试使用as.factor()将字符列转换为因子。

crime_bal$text<-as.factor(crime_bal$text)
crime_bal$url<-as.factor(crime_bal$url)