Aprendizaje automático con datos categóricos y continuos

9

Esta pregunta podría ir aquí o en SO tal vez ...

Suponga que su conjunto de datos de entrenamiento contiene datos categóricos y continuos, como esta configuración:

 Animal, breed,  sex, age, weight, blood_pressure, annual_cost
 cat,    calico, M,   10,  15    ,   100         , 100 
 cat,    tabby,  F,   5,   10    ,   80          , 200
 dog,    beagle, M,   3,   30    ,   90          , 200
 dog,    lab,    F,   8,   75    ,   80          , 100

Y la variable dependiente a predecir es el costo anual del veterinario. Estoy un poco confundido en cuanto a las técnicas específicas disponibles para lidiar con ese conjunto de datos. ¿Cuáles son los métodos comúnmente utilizados para manejar conjuntos de datos que son una mezcla de datos continuos y categóricos?

reptilicus
fuente

Respuestas:

8

Para cada clase (raza, género ...) de atributos categóricos, puede agregar una cantidad de componentes a su vector de características igual a la cantidad de valores posibles en esa clase. Luego, si un punto de datos tiene el i-ésimo valor, establezca el i-ésimo de esos componentes en 1, y el resto para ese atributo en 0.

En su ejemplo, para género, agregaría dos nuevos componentes a su vector de características. Si el animal es macho, establecería el primero en 1 y el segundo en 0, y viceversa si el animal es hembra. Para los animales, si sus posibilidades fueran gato, perro y pescado, entonces haría lo mismo con tres componentes.

Estos coexistirían lado a lado con los atributos continuos. Sin embargo, es posible que desee ajustar la magnitud del "valor del indicador" (el valor que utiliza cuando un atributo está "activado") para que sea comparable a las magnitudes de los valores continuos que está utilizando.

Si elige esta forma de solucionar su problema, el siguiente paso sería elegir un algoritmo como una máquina de vectores de soporte y alimentarlo con su vector de características. Por supuesto, algunos enfoques como árboles de decisión no necesitarían el paso que mencioné anteriormente para comenzar.

DJLamar
fuente
1
Genial, buenos consejos! ¿Qué pasa con la posible situación en los datos de prueba donde la raza nunca apareció en los datos de entrenamiento? Por ejemplo, si había un caniche en los datos de prueba pero no en los datos de entrenamiento? ¿La mejor manera de hacerlo sería tener ceros para todos los componentes del vector de la raza?
reptilicus
2
De hecho, el enfoque opuesto (conocido como discretización de datos) suele ser la mejor opción para los métodos jerárquicos (como los algoritmos de árbol de decisión). La discretización de datos también es una técnica de preprocesamiento de datos (como se menciona en la otra respuesta).
rvcoutinho
2

Debe echar un vistazo al preprocesamiento de datos . Es anterior a cualquier técnica de aprendizaje automático. Aquí hay una buena introducción (que se encuentra en Google).

En cuanto a las técnicas, hay muchos enfoques diferentes . Probablemente pueda usar la mayoría de ellos después de preprocesar sus datos. Debes probarlos y elegir el que mejor se adapte a tus necesidades.

rvcoutinho
fuente