Есть ли пакет или функция, которые могут выполнять SMOTE с непрерывными и категориальными функциями?

У меня есть несбалансированный набор данных с категориальной зависимой переменной и характеристическими переменными, которые являются непрерывными и категориальными. Я знаю, что функция SMOTE из пакета DMwR может обрабатывать только непрерывные функции. Есть ли пакет, который может обрабатывать категориальные и непрерывные функции, такие как, как описывает Чавла, в его газета?


person MasterStudent1992    schedule 25.03.2019    source источник
comment
Не в R, но похоже, что это было реализовано на python. stackoverflow .com / questions / 47655813 /   -  person RLave    schedule 25.03.2019
comment
Мое чтение статьи, которую вы цитируете, касается только непрерывных элементов. В частности, обратите внимание, что при описании набора данных для взрослых они написали For SMOTE, we extracted the continuous features and generated a new dataset with only continuous features.   -  person G5W    schedule 25.03.2019
comment
Это находится в разделах 6.1 и 6.2 @ G5W. Но только теоретически.   -  person RLave    schedule 25.03.2019
comment
@RLave да, я знаю, но я надеюсь, что, может быть, кто-нибудь поможет мне с реализацией r   -  person MasterStudent1992    schedule 25.03.2019
comment
К сожалению, похоже, что это еще не реализовано в R.   -  person RLave    schedule 25.03.2019


Ответы (1)


Вы можете справиться с этим в R!

Да, и smotefamily :: SMOTE, и DMwR :: SMOTE могут обрабатывать только числовые функции, потому что основной алгоритм является k-ближайшими соседями.

Следовательно:

  1. преобразовать все категориальные переменные в тип данных factor.

  2. вычислить числовые оценки каждого уровня фактора с помощью самого последнего пакета tidymodels::embed

Пакет tidymodels::embed предлагает три метода для выполнения шага 2:

  • step_lencode_glm
  • step_lencode_bayes
  • step_lencode_mixed

В документации говорится, что эти методы estimate the effect of each of the factor levels on the outcome and these estimates are used as the new encoding.

person Agile Bean    schedule 01.11.2019