2015-11-13 1 views
3

Использование пакета SMOTE из библиотеки DMwR. После загрузки кадра данных, я пытаюсь выполнить выборку следующим образом:R: Проблема с использованием пакета 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 

Почему я всегда получаю ошибку?

ответ

6

У меня возникла аналогичная проблема, и я решил ее, преобразовывая строковые функции в целочисленный тип. Я предполагаю, что он работает только с данными числового/факторного типа. я заменяю class_1, class_2 на 1,2.

0

Из описания ошибки, похоже, что код ожидает, что тип данных столбца будет «фактором» для столбца типа «символ». Попробуйте отличить столбец символов с фактором as.factor() перед вызовом функции SMOTE.

crime_bal$text<-as.factor(crime_bal$text) 
crime_bal$url<-as.factor(crime_bal$url) 
Смежные вопросы