Apprentissage automatique avec des données catégoriques et continues

9

Cette question pourrait aller ici ou sur SO peut-être ...

Supposons que votre jeu de données de formation contienne à la fois des données catégorielles et continues telles que cette configuration:

 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

Et la variable dépendante à prévoir est le coût annuel du vétérinaire. Je suis un peu confus quant aux techniques spécifiques disponibles pour traiter un tel ensemble de données. Quelles sont les méthodes couramment utilisées pour traiter les ensembles de données qui sont un mélange de données continues et catégorielles?

reptilicus
la source

Réponses:

8

Pour chaque classe (race, sexe ...) d'attributs catégoriels, vous pouvez ajouter un nombre de composants à votre vecteur d'entités égal au nombre de valeurs possibles dans cette classe. Ensuite, si un point de données a la ième valeur, vous définissez le ième un de ces composants sur 1, et le reste pour cet attribut sur 0.

Dans votre exemple, pour le sexe, vous ajouteriez deux nouveaux composants à votre vecteur d'entités. Si l'animal est un mâle, vous devez définir le premier sur 1 et le second sur 0, et vice versa si l'animal est une femelle. Pour les animaux, si vos possibilités étaient le chat, le chien et le poisson, vous feriez de même avec trois composants.

Celles-ci coexisteraient côte à côte avec les attributs continus. Vous souhaiterez peut-être ajuster la magnitude de la "valeur de l'indicateur" (la valeur que vous utilisez lorsqu'un attribut est "activé") afin qu'elle soit comparable aux magnitudes des valeurs continues que vous utilisez.

Si vous avez choisi cette façon de résoudre votre problème, l'étape suivante serait de choisir un algorithme tel qu'une machine à vecteur de support et de l'alimenter en vecteur d'entité. Bien sûr, certaines approches comme Decision Trees n'auraient pas besoin de l'étape que j'ai mentionnée ci-dessus pour commencer.

DJLamar
la source
1
Cool, bons conseils! Qu'en est-il de la situation possible dans les données de test où la race n'est jamais apparue dans les données d'entraînement? Par exemple, s'il y avait un caniche dans les données de test mais pas dans les données d'entraînement? La meilleure façon de procéder aurait-elle simplement des zéros pour tous les composants du vecteur de race?
reptilicus
2
En fait, l'approche inverse (connue sous le nom de discrétisation des données) est généralement le meilleur choix pour les méthodes hiérarchiques (telles que les algorithmes d'arbre de décision). La discrétisation des données est également une technique de prétraitement des données (comme mentionné dans l'autre réponse).
rvcoutinho
2

Vous devriez jeter un œil au prétraitement des données . C'est avant toute technique d'apprentissage automatique. Voici une bonne introduction (trouvée sur Google).

En ce qui concerne les techniques, il existe de nombreuses approches différentes . Vous pouvez probablement utiliser la plupart d'entre eux après avoir prétraité vos données. Vous devriez les essayer et choisir celui qui correspond le mieux à vos besoins.

rvcoutinho
la source