Sobremuestreo con variables categóricas

9

Me gustaría realizar una combinación de sobremuestreo y submuestreo para equilibrar mi conjunto de datos con aproximadamente 4000 clientes divididos en dos grupos, donde uno de los grupos tiene una proporción de aproximadamente el 15%.

He examinado SMOTE ( http://www.inside-r.org/packages/cran/DMwR/docs/SMOTE ) y ROSE ( http://cran.r-project.org/web/packages/ROSE/ ROSE.pdf ), pero ambos crean nuevas muestras sintéticas utilizando observaciones existentes y, por ejemplo, kNN.

Sin embargo, como muchos de los atributos asociados con los clientes son categóricos, no creo que este sea el camino correcto. Por ejemplo, muchas de mis variables como Region_A y Region_B son mutuamente excluyentes, pero usando kNN las nuevas observaciones pueden colocarse tanto en Region_A como en Region_B. ¿Estás de acuerdo en que esto es un problema?

En ese caso, ¿cómo se realiza el sobremuestreo en R simplemente duplicando las observaciones existentes? ¿O es esta la forma incorrecta de hacerlo?

pir
fuente
¿Por qué necesita submuestreo si solo tiene 4000 observaciones?
kjetil b halvorsen 18/0614
Quiero equilibrar mi conjunto de datos para tener una proporción aproximadamente igual de clases. Si uso mis datos como están ahora, los modelos simplemente predecirán todas las observaciones como la clase mayoritaria.
pir

Respuestas:

8

ROSE y SMOTE están diseñados para manejar variables categóricas, por lo tanto, a menos que sus variables categóricas se expresen en formato binario, normalmente no debería tener que preocuparse de que las observaciones sintéticas se asignen características categóricas mutuamente excluyentes. Si lo son, siempre puede reestructurarlos como factores.

En su ejemplo de dos regiones, crearía una nueva variable de región con dos niveles, "A" y "B". Sus registros tomarían los valores apropiados haciendo referencia a sus columnas originales.

Ahora, si se encuentra en una situación en la que sus nuevas observaciones sintéticas podrían generar categorías conflictivas porque se extienden a través de múltiples variables, por lo demás no relacionadas (p. Ej. SíntesisObservación.isPig = 1 y sintéticoObservación.hasAlas = 1), siempre podría realizar algunos cambios de datos adicionales antes de hacer su estimación del modelo para limpiar tales aberraciones.

Además, dado que tiene alrededor de 600 observaciones de eventos en su conjunto de datos, ¿puede considerar los beneficios potenciales del uso de observaciones sintéticas derivadas del submuestreo de la clase mayoritaria?

habu
fuente