2011-12-21 14 views

risposta

15

I metodi dell'albero non funzionano, perché il numero di divisioni possibili aumenta in modo esponenziale con il numero di livelli. Tuttavia, con le parole questo viene tipicamente affrontato creando variabili indicatore per ogni parola (della descrizione, ecc.) - in questo modo le divisioni possono usare una parola alla volta (sì/no) invece di selezionare tutte le combinazioni possibili. In generale puoi sempre espandere i livelli in indicatori (e alcuni modelli lo fanno implicitamente, come glm). Lo stesso è vero in ML per la gestione del testo con altri metodi come SVM ecc. Quindi la risposta potrebbe essere che è necessario pensare alla struttura dei dati di input, non tanto ai metodi. In alternativa, se hai qualche tipo di ordine sui livelli, puoi linearizzarlo (quindi ci sono solo c-1 divisioni).

3

Non c'è niente di sbagliato in teoria con l'uso del metodo randomForest su variabili di classe che hanno più di 32 classi - è computazionalmente costoso, ma non impossibile da gestire un numero qualsiasi di classi che usano la metodologia randomForest. Il normale pacchetto R randomForest imposta 32 come numero massimo di classi per una determinata variabile di classe e quindi impedisce all'utente di eseguire randomForest su qualsiasi cosa con> 32 classi per qualsiasi variabile di classe.

Linearizzare la variabile è un ottimo suggerimento: ho utilizzato il metodo per classificare le classi, quindi suddividendole uniformemente in 32 meta-classi. Quindi se ci sono 64 classi distinte, la meta-classe 1 consiste in tutte le cose in classe 1 e 2, ecc. L'unico problema qui è capire un modo ragionevole di fare la classifica - e se stai lavorando con, diciamo, le parole è molto difficile sapere come ogni parola dovrebbe essere classificata contro ogni altra parola.

Un modo per aggirare questo è fare n diversi set di predizione, in cui ogni set contiene tutte le istanze con un particolare sottoinsieme di 31 delle classi in ogni variabile di classe con più di 32 classi. È possibile effettuare una previsione utilizzando tutti i set, quindi utilizzando le misure di importanza variabile fornite con il pacchetto, trovare l'implementazione in cui le classi utilizzate erano più predittive. Una volta scoperte le 31 classi più predittive, implementa una nuova versione di RF utilizzando tutti i dati che designano le classi più predittive da 1 a 31, e tutto il resto in una classe "altra", offrendo il massimo di 32 classi per variabile categoriale ma, auspicabilmente, preservando gran parte del potere predittivo.

Buona fortuna!

5

In generale, il pacchetto migliore che ho trovato per le situazioni in cui vi sono molti livelli di fattore è l'utilizzo del pacchetto gbm.

Può gestire fino a 1024 livelli di fattore.

Se ci sono più di 1024 livelli, di solito cambio i dati mantenendo i 1023 livelli di fattore che si verificano più frequentemente e quindi codifico i livelli rimanenti come un livello.

Problemi correlati