Как решить ошибку "Слишком мало наблюдений". при использовании ROSE для балансировки данных в R? - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь использовать библиотеку 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, таким как «over» и «both», но возникает та же ошибка.

Как я могу исправить эту проблему?

С уважением,

Ответы [ 3 ]

0 голосов
/ 19 июля 2018

data.balanced.under <- ovun.sample (Target ~., Data = df, method = "under", p = 0.5) $ data </p>

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

0 голосов
/ 19 марта 2019

Я столкнулся с той же проблемой. Проблема была на самом деле в наборе данных, который имел столбцы (переменные) с NA / Nan.

Пожалуйста, попробуйте запустить код после удаления NA.

Дайте мне знать, если это поможет.

0 голосов
/ 04 июля 2018

Я полагаю, что вы хотите, чтобы ваш код использовал p = 0.05 (5%), а не p = 0.5 (50%), как у вас (что является функцией по умолчанию), и over sample, чтобы поднять размер выборки класс меньшинства, как вы упомянули в своем посте:

df_Under <- ovun.sample(Target ~ ., data = df, method = "over", N =5580, seed = 1, p = 0.05)
...