Apprendimento automatico con dati categorici e continui


9

Questa domanda potrebbe andare qui o su SO forse ...

Supponiamo che il set di dati di allenamento contenga sia dati categorici sia dati continui come questa configurazione:

 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

E la variabile dipendente da prevedere è il costo annuale del veterinario. Sono un po 'confuso sulle tecniche specifiche disponibili per gestire un set di dati di questo tipo. Quali sono i metodi comunemente usati per gestire i set di dati che sono una miscela di dati sia continui che categorici?

Risposte:


8

Per ogni classe (razza, genere ...) di attributi categorici, è possibile aggiungere un numero di componenti al vettore della funzione pari al numero di valori possibili in quella classe. Quindi, se un punto dati ha il valore ith, imposta ith uno di quei componenti su 1 e il resto per quell'attributo su 0.

Nel tuo esempio, per sesso, aggiungi due nuovi componenti al tuo vettore di caratteristiche. Se l'animale è maschio, dovresti impostare il primo su 1 e il secondo su 0, e viceversa se l'animale è femmina. Per gli animali, se le tue possibilità fossero gatto, cane e pesce, faresti lo stesso con tre componenti.

Questi coesisterebbero fianco a fianco con gli attributi continui. Potresti voler regolare la grandezza del "valore dell'indicatore" (il valore che usi quando un attributo è "attivo") in modo che sia paragonabile alla grandezza dei valori continui che stai utilizzando.

Se scegli questo modo di risolvere il tuo problema, il passo successivo sarebbe scegliere e algoritmo come una macchina vettoriale di supporto e alimentarlo con il tuo vettore di funzionalità. Naturalmente, alcuni approcci come gli alberi decisionali non avrebbero bisogno del passaggio che ho menzionato sopra per cominciare.


1
Fantastici, ottimi consigli! Che dire della possibile situazione nei dati di test in cui la razza non è mai stata inserita nei dati di addestramento? Ad esempio, se c'era un barboncino nei dati del test ma non nei dati di addestramento? Il modo migliore per andare dovrebbe avere solo zeri per tutti i componenti del vettore razza?
rettile

2
In effetti, l'approccio opposto (noto come discretizzazione dei dati) è di solito la scelta migliore per i metodi gerarchici (come gli algoritmi dell'albero delle decisioni). La discretizzazione dei dati è anche una tecnica di pre-elaborazione dei dati (come menzionato nell'altra risposta).
rvcoutinho,

2

Dovresti dare un'occhiata alla pre-elaborazione dei dati . È precedente a qualsiasi tecnica di apprendimento automatico. Ecco una buona introduzione (disponibile su Google).

Per quanto riguarda le tecniche, ci sono molti approcci diversi . Probabilmente puoi usarne la maggior parte dopo aver pre-elaborato i tuoi dati. Dovresti provarli e scegliere quello più adatto alle tue esigenze.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.