5

Sto provando a mettere insieme un modello di regressione lineare ma alcune delle mie funzionalità non sono numeriche, ad es. "Colore auto" mentre altri sono ad es. "Cilindrata". In casi non numerici non sono sicuro su come rappresentarlo quando si aggiunge una funzione di input. L'unico modo che potrei pensare di fare questo sarebbe quello di rappresentare ogni colore con un valore diverso, ad es. (rosso = 1, blu = 2, verde = 3 ...) tuttavia questo non sembra accettabile in quanto ciò implica che il verde è "migliore" del rosso.regressione lineare usando le categorie come caratteristiche

Qualcuno può aiutare ... Sto implementando questo in Java quindi mi piacerebbe un algoritmi espressi in questa lingua o essere indipendenti dalla lingua.

+0

Finora ... Ho usato solo funzioni che non erano categoriche. – JLove

risposta

9

Un modo per farlo è quello di utilizzare manichino codifica un'altra tecnica è codifica effetto.

Si prega di fare riferimento a questo articolo per ulteriori dettagli, penso che l'autore ha spiegato meglio di quello che posso fare qui.

Coding Categorical Variables in Regression Models: Dummy and Effect Coding by Resmi Gupta

Credo che questa soluzione sarebbe caduta nella sua lingua categoria indipendente;)

per codificare il colore macchina (sto assumendo colore vettura può assumere solo 3 valori: rosso, blu, verde)

è possibile codificare come segue:

Color Dummy_Var_One Dummy_Var_Two 

Red  1    0 
Blue  0    1 
Green  0    0 

Nella tabella sopra Green diventerà lev di riferimento EL. Nel tuo caso se il tuo colore assume i valori n dovrai includere le variabili dummy n-1.

Un'implementazione in Java può essere trovato nel Weka filtro NominalToBinary, anche se questo creerà n variabili per n categorie.

+0

Risposta fantastica ... applausi – JLove

+0

Per favore ho bisogno di sapere cosa succede se uso le variabili dummy ..IS_RED, IS_GREEN e IS_BLUE ... questo dà risultati più indipendenti o non c'è differenza. –