Как решить ошибку "Слишком мало наблюдений". при использовании ROSE для балансировки данных в R?
Я пытаюсь использовать библиотеку ROSE для R, чтобы перебалансировать целевую переменную в моем наборе данных. Вот моя информация о моем наборе данных.
- В моем исходном наборе данных всего 132056 записей.
- Всего в целевой переменной 279 случаев (0,21%) младшего класса.
- В целевой переменной всего 131777 случаев (99,79%) основного класса.
Я хотел бы занизить выборку набора данных, чтобы процент незначительных классов увеличился до 5%.
Вот мой код:
df_Under <- ovun.sample(Target ~ ., data = df, method = "under", N =5580, seed = 1)
Однако после запуска приведенного выше кода я получил следующее сообщение об ошибке.
"Error in (function (formula, data, method, subset, na.action, N, p = 0.5, :Too few observations."
Я пытался играть с другим методом ROSE, таким как "за" и "оба", но там возникает та же ошибка.
Как я могу исправить эту проблему?
С уважением,
2 ответа
Я столкнулся с той же проблемой. Проблема была на самом деле в наборе данных, который имел столбцы (переменные) с NA/Nan.
Пожалуйста, попробуйте запустить код после удаления NA.
Позвольте мне знать, если это помогает.
Я верю, что вы хотите, чтобы ваш код использовал p = 0.05
(5%) нет p = 0.5
(50%), как у вас (что является функцией по умолчанию) и over
образец, чтобы вызвать размер выборки из класса меньшинства, как вы упомянули в своем посте:
df_Under <- ovun.sample(Target ~ ., data = df, method = "over", N =5580, seed = 1, p = 0.05)
data.balanced.under <- ovun.sample (Target ~., data = df, method = "under", p = 0.5) $ data
это решит вашу проблему