Как решить ошибку "Слишком мало наблюдений". при использовании 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

это решит вашу проблему

Другие вопросы по тегам