Capisco che random_state
sia utilizzato in vari algoritmi di sklearn per rompere il legame tra diversi predittori (alberi) con lo stesso valore metrico (ad esempio, per esempio in GradientBoosting
). Ma la documentazione non chiarisce o dettagli su questo. Mi piaceScelta di random_state per gli algoritmi di sklearn
1) dove altro sono usati questi semi per la generazione di numeri casuali? Per esempio, per RandomForestClassifier
, il numero casuale può essere usato per trovare un insieme di caratteristiche casuali per costruire un predittore. Gli algoritmi che usano il sottocampionamento, possono usare numeri casuali per ottenere diversi sottocampioni. Può/Lo stesso seme (random_state
) ha un ruolo in più generazioni di numeri casuali?
Quello che mi preoccupa principalmente è
2) quanto di vasta portata è l'effetto di questa variabile random_state. ? Il valore può fare una grande differenza nella previsione (classificazione o regressione). In caso affermativo, che tipo di serie di dati dovrei avere di più? O è più sulla stabilità che sulla qualità dei risultati?
3) Se può fare una grande differenza, il modo migliore per scegliere lo stato random_? È difficile da fare su GridSearch, senza un'intuizione. Specialmente se il set di dati è tale che un CV può richiedere un'ora.
4) Se il motivo è quello di avere solo costante risultato/valutazione dei miei modelli e punteggi di validazione trasversali attraverso percorsi ripetuti, ce l'ha lo stesso effetto se ho impostato random.seed(X)
prima di usare qualsiasi degli algoritmi (e utilizzare random_state
come Nessuna).
5) Dire che sto usando un valore random_state
su un classificatore GradientBoosted, e sono cross convalidato per trovare la bontà del mio modello (punteggio sul set di convalida ogni volta). Una volta soddisfatto, formerò il mio modello sull'intero set di allenamento prima di applicarlo sul set di test. Ora, il set completo di allenamento ha più istanze rispetto ai set di allenamento più piccoli nella convalida incrociata. Pertanto, il valore random_state
può ora comportare un comportamento completamente diverso (scelta di caratteristiche e singoli predittori) rispetto a ciò che stava accadendo all'interno del ciclo cv. Allo stesso modo, cose come min samples leaf etc possono anche risultare in un modello inferiore ora che le impostazioni sono w.r.t il numero di istanze in CV mentre il numero effettivo di istanze è più. È una comprensione corretta? Qual è l'approccio da salvaguardare contro questo?
Grazie per la risposta Tobias. Ascoltiamo altre persone/esperti e poi risponderò. – Run2