Функция Smote в R

#r #imbalanced-data #smote

#r #несбалансированные данные #smote

Вопрос:

Кто-нибудь знает, как настроить perc.over и perc.under в моем случае? Я попробовал пару комбинаций, но это не дало мне хорошего результата. Я хочу, чтобы моя целевая переменная была разделена почти на 50/50. У меня есть 266776 для моего обучающего набора, и текущее соотношение моей целевой переменной в этом наборе данных равно 88/12. Вот мой код. smoted_data <- SMOTE(ответ ~ ., data= train, perc.over = 100)

Комментарии:

1. если я не ошибаюсь, это должно создать сбалансированный data.set: smoted_data <- SMOTE(Ответ ~ ., данные, перц.над = 100 * 88/12, перц.под = 100 12/88 * 100 )

2. Какую библиотеку вы используете для SMOTE?

3. @G5W, я использую эту библиотеку (DMwR)

4. @DPH, к сожалению, я получил сообщение об ошибке. Ошибка в factor(newCases[, a], levels = 1: nlevels(data[, a]), labels = levels(data[, : недопустимые ‘метки’; длина 0 должна быть 1 или 2 Дополнительно: Предупреждающие сообщения: 1: В smote.exs(data[minExs,], ncol(данные), пер.с лишним, k): NAs, введенный принудительно 2: В smote.exs(данные [minExs, ], ncol(данные), пер.с лишним, k): NAs, введенный принудительно 3: в smote.exs(данные [minExs, ],ncol (data), perc.over, k) : NAs, введенный принудительно

5. @Gracetam это потому, что у меня была опечатка:: smoted_data <- SMOTE(Ответ ~ ., data= train, perc.over = 100 * 88/12, perc.under = 100 12/88 * 100 )