In RandomForestClassifier
il valore predefinito per max_features
è sqrt(n_features)
e in RandomForestRegressor
è n_features
, un motivo specifico per quello?Perché il valore predefinito per max_features in RandomForestClassifier è diverso da quello in RandomForestRegressor?
5
A
risposta
6
Questa è un'euristica basata su risultati empirici. In media, sembra essere una scelta migliore, come impostazione predefinita, per impostare max_features = sqrt (n_features) per la classificazione e max_features = n_features per la regressione.
Questa euristica deriva da questo documento: http://orbi.ulg.ac.be/bitstream/2268/9357/1/geurts-mlj-advance.pdf
In ogni caso, è naturalmente sempre una migliore idea di cross-convalidare questo parametro.
0
Nota che potrebbe essere necessario impostare:
max_features = 'sqrt'
Invece del suggerita:
max_features=sqrt(n_features)
a seconda della versione in esecuzione.
Grazie per il riferimento! Se sto usando la foresta casuale con max_features = n_features e bootstrap = False, sarebbe corretto dire che essenzialmente si comporta come un singolo albero decisionale (solo con un sacco di overhead di calcolo) – d1337
Sì, in quel caso tutti gli alberi sono il stesso (modulo alcuni legami che possono accadere quando si cercano le migliori divisioni). –
Se max_features = n_features, il metodo subspace casuale non viene nemmeno utilizzato? –