【问题标题】:R: Trouble using SMOTE package "invalid 'labels'"R:使用 SMOTE 包“无效的标签”时遇到问题
【发布时间】:2016-02-15 01:25:44
【问题描述】:

使用 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

为什么我总是以错误告终?

【问题讨论】:

    标签: r data-mining


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-11
        • 2018-04-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多