Il pacchetto randomForest di R non può gestire il fattore con più di 32 livelli. Quando riceve più di 32 livelli, emette un messaggio di errore:
Impossibile gestire i predittori categorici con più di 32 categorie.
Ma i dati che ho hanno diversi fattori. Alcuni di essi hanno più di 1000 livelli e altri ne hanno 100+. Ha persino lo "stato" degli Stati Uniti che è 52.
Quindi, ecco la mia domanda.
Perché esiste una tale limitazione? randomForest si rifiuta di correre anche per il semplice caso.
> d <- data.frame(x=factor(1:50), y=1:50) > randomForest(y ~ x, data=d) Error in randomForest.default(m, y, ...) : Can not handle categorical predictors with more than 32 categories.
Se è semplicemente dovuto alla limitazione della memoria, come può scikit learning randomForeestRegressor casuale eseguire con più di 32 livelli?
Qual è il modo migliore per gestire questo problema? Supponiamo che io abbia X1, X2, ..., X50 variabili indipendenti e Y sia variabile dipendente. E supponiamo che X1, X2 e X3 abbiano più di 32 livelli. Cosa dovrei fare?
Quello a cui sto pensando è l'esecuzione di un algoritmo di clustering per ciascuno di X1, X2 e X3 in cui la distanza è definita come differenza in Y. Eseguirò tre cluster in quanto vi sono tre variabili problematiche. E in ogni cluster, vorrei poter trovare livelli simili. E li unirò.
Come suona?