Ho cercato di utilizzare un inpust categoriale in un albero di regressione (o Regressore foresta casuale) ma sklearn continua a restituire errori e richiede input numerici.Alberi di regressione o Regressore foresta casuale con input categoriali
import sklearn as sk
MODEL = sk.ensemble.RandomForestRegressor(n_estimators=100)
MODEL.fit([('a',1,2),('b',2,3),('a',3,2),('b',1,3)], [1,2.5,3,4]) # does not work
MODEL.fit([(1,1,2),(2,2,3),(1,3,2),(2,1,3)], [1,2.5,3,4]) #works
MODEL = sk.tree.DecisionTreeRegressor()
MODEL.fit([('a',1,2),('b',2,3),('a',3,2),('b',1,3)], [1,2.5,3,4]) # does not work
MODEL.fit([(1,1,2),(2,2,3),(1,3,2),(2,1,3)], [1,2.5,3,4]) #works
A mio avviso, gli input categoriali dovrebbero essere possibili in questi metodi senza alcuna conversione (ad esempio la sostituzione WOE).
Qualcun altro ha avuto questa difficoltà?
grazie!
Grazie per quello. Non penso che risolva il problema; le 'etichette numeriche' creano un'ipotesi di una progressione lineare che molto probabilmente non è vera a ciò che stai cercando di prevedere. Immagina un nodo di un albero decisionale e quando decidi il prossimo split cut-off usando per esempio '<2 and > = 2' non ha lo stesso significato di "if in ('a', 'c')". – jpsfer
Ho letto male la tua domanda. Ho appena visto che vuoi trattare tutto come categorico. Aggiornerò l'esempio di conseguenza ... – Matt
Molte grazie Matt! – jpsfer