Come gestire un SVM con attributi categorici


18

Ho uno spazio di 35 dimensioni (attributi). Il mio problema analitico è una semplice classificazione.

Di 35 dimensioni, oltre 25 sono categoriche e ogni attributo accetta più di 50+ tipi di valori.

In quello scenario, anche l'introduzione di una variabile fittizia non funzionerà per me.

Come posso eseguire un SVM su uno spazio che ha molti attributi categorici?

Risposte:


22
  1. Se sei sicuro che l'attributo categorico sia effettivamente ordinale, allora trattalo come un attributo numerico.
  2. In caso contrario, utilizzare un trucco di codifica per trasformarlo in attributo numerico. Secondo il suggerimento dell'autore di libsvm, si può semplicemente usare la codifica 1-of-K. Ad esempio, supponiamo che un attributo di categoria monodimensionale prenda valore da . Basta trasformarlo in numeri tridimensionali in modo tale che , , . Naturalmente, ciò comporterà dimensioni significativamente aggiuntive nel tuo problema, ma penso che non sia un problema serio per il moderno risolutore SVM (indipendentemente dal tipo lineare o dal tipo di kernel che adotti).{UN,B,C}UN=(1,0,0)B=(0,1,0)C=(0,0,1)

+1 Questo è quello che stavo per dire anche! A parte questo, aggiungerei anche che il partizionamento ricorsivo viene talvolta usato per identificare dove tagliare meglio le funzionalità a valore continuo, per dividerle in bin.
Kyle.

Interessante! Il "partizionamento ricorsivo" mi suona un albero (binario). Qualche differenza tra queste due idee? Inoltre, SVM è già in grado di gestire funzionalità continue, perché dovremmo trasformarlo in bin (di nuovo, dati categorici)?
pengsun.thu,

3
La creazione di variabili fittizie k-1 non è sufficiente per una variabile categoriale di livello ak? es. A = (1,0,0), B = (0,1,0) qui, saltando (0,0,1)?
Outlier

domanda di follow-up: non è necessario un ridimensionamento aggiuntivo dei dati 0-1 manichini?
AZhao
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.