Quali sono i motivi teorici per non gestire i valori mancanti? Macchine a gradiente, gli alberi di regressione gestiscono i valori mancanti. Perché Random Forest non lo fa?
Quali sono i motivi teorici per non gestire i valori mancanti? Macchine a gradiente, gli alberi di regressione gestiscono i valori mancanti. Perché Random Forest non lo fa?
Risposte:
Gradient Boosting Trees utilizza alberi CART (in una configurazione standard, come è stato proposto dai suoi autori). Gli alberi CART sono utilizzati anche nelle foreste casuali. Quello che @ user777 ha detto è vero, che gli alberi RF gestiscono i valori mancanti sia per imputazione con media, sia per media / modalità approssimativa, sia per media / modalità basata sulle prossimità. Questi metodi sono stati proposti da Breiman e Cutler e sono utilizzati per RF. Questo è un riferimento degli autori Valori mancanti nel set di addestramento .
Tuttavia, è possibile creare un GBM o RF con altri tipi di alberi decisionali. Il solito sostituto di CART è C4.5 proposto da Quinlan. In C4.5 i valori mancanti non vengono sostituiti nel set di dati. Invece, la funzione di impurità calcolata tiene conto dei valori mancanti penalizzando il punteggio di impurità con la razione di valori mancanti. Nel test impostare la valutazione in un nodo che ha un test con valore mancante, la previsione viene creata per ciascun nodo figlio e aggregata successivamente (mediante ponderazione).
Ora, in molte implementazioni viene utilizzato C4.5 anziché CART. Il motivo principale è quello di evitare calcoli costosi (CART ha approcci statistici più rigorosi, che richiedono più calcoli), i risultati sembrano essere simili, gli alberi dei risultati sono spesso più piccoli (poiché CART è binario e C4.5 no). So che Weka usa questo approccio. Non conosco altre biblioteche, ma mi aspetto che non sia una situazione singolare. In tal caso con l'implementazione di GBM, questa sarebbe una risposta.
"Quali sono [i] motivi teorici [per cui RF] non gestisce i valori mancanti? Le macchine per aumentare la pendenza, gli alberi di regressione gestiscono i valori mancanti. Perché Random Forest non lo fa?"
RF fa valori di handle mancanti, non solo nello stesso modo in cui CART e altri algoritmi albero decisionale simili fanno. L'utente777 descrive correttamente i due metodi utilizzati da RF per gestire i dati mancanti (imputazione mediana e / o misura basata sulla prossimità), mentre Frank Harrell descrive correttamente come vengono gestiti i valori mancanti in CART (suddivisioni surrogate). Per ulteriori informazioni, consultare i collegamenti sulla gestione dei dati mancanti per CART (o è cugino FOSS: RPART ) e RF .
Una risposta alla tua vera domanda è chiaramente descritta, IMHO, nel documento di Ishwaran et al 2008 intitolato Random Survival Forests . Forniscono la seguente spiegazione plausibile del perché RF non gestisce i dati mancanti allo stesso modo del classificatore CART o di simili classificatori ad albero delle singole decisioni:
"Sebbene la divisione surrogata funzioni bene per gli alberi, il metodo potrebbe non essere adatto per le foreste. La velocità è un problema. Trovare una divisione surrogata è intensivo dal punto di vista computazionale e può diventare impossibile quando si coltiva un gran numero di alberi, specialmente per alberi completamente saturi utilizzati da foreste. Inoltre, le divisioni surrogate potrebbero non essere significative in un paradigma di foresta: RF seleziona casualmente le variabili quando si divide un nodo e, come tale, le variabili all'interno di un nodo possono non essere correlate e potrebbe non esistere una ragionevole divisione surrogata. Un'altra preoccupazione è che la divisione surrogata altera l'interpretazione di una variabile, che influenza misure come [Importanza variabile].
Per questi motivi, per RF è necessaria una strategia diversa. "
A parte questo, ma per me, questo mette in discussione coloro che sostengono che RF utilizza un insieme di modelli CART. Ho visto questa affermazione fatta in molti articoli, ma non ho mai visto tali affermazioni provenienti da qualsiasi testo autorevole su RF. Per uno, gli alberi in una RF sono coltivati senza potatura , che di solito non è l'approccio standard quando si costruisce un modello CART. Un altro motivo potrebbe essere quello a cui alludi nella tua domanda: CART e altri gruppi di alberi decisionali gestiscono valori mancanti, mentre la RF [originale] non lo fa, almeno non internamente come CART.
Tenendo presenti queste avvertenze, penso che si possa dire che RF utilizza un insieme di alberi decisionali simili al CART (ovvero un gruppo di alberi non potati, cresciuti nella massima misura, senza la capacità di gestire i dati mancanti attraverso la divisione surrogata). Forse questa è una di quelle puntuali differenze semantiche, ma penso che valga la pena notare.
EDIT : Sulla mia nota a margine, che non è correlata alla vera domanda posta, ho affermato che "non ho mai visto tali dichiarazioni provenienti da alcun testo autorevole su RF". Risulta che Breiman DID afferma specificamente che gli alberi decisionali CART sono utilizzati nell'algoritmo RF originale:
"La foresta casuale più semplice con caratteristiche casuali si forma selezionando in modo casuale, su ciascun nodo, un piccolo gruppo di variabili di input su cui dividere. Fai crescere l'albero usando la metodologia CART alla massima dimensione e non potare." [La mia enfasi]
Fonte: p.9 delle foreste casuali. Breiman (2001)
Tuttavia, rimango ancora (anche se più precariamente) sul concetto che si tratta di alberi decisionali simili al CART in quanto sono cresciuti senza potatura, mentre un CART normalmente non viene mai eseguito in questa configurazione poiché quasi sicuramente si adatta ai tuoi dati ( da qui la potatura in primo luogo).
La foresta casuale gestisce i dati mancanti e ci sono due modi distinti per farlo:
1) Senza imputazione di dati mancanti, ma fornendo inferenza. 2) Immissione dei dati. I dati imputati vengono quindi utilizzati per l'inferenza.
Entrambi i metodi sono implementati nel mio pacchetto R randomForestSRC (scritto con Udaya Kogalur). Innanzitutto, è importante ricordare che, poiché le foreste casuali impiegano la selezione casuale delle caratteristiche, i metodi di dati mancanti tradizionali utilizzati dai singoli alberi (CART e simili) non si applicano. Questo punto è stato sottolineato in Ishwaran et al. (2008), "Random Survival Forests", Annals of Applied Statistics , 2 , 3 , e ben articolato da uno dei commentatori.
Il metodo (1) è un metodo "imputazione al volo" (OTFI). Prima di dividere un nodo, i dati mancanti per una variabile sono imputati tracciando casualmente valori da dati in-bag non mancanti. Lo scopo di questi dati imputati è quello di rendere possibile l'assegnazione di casi a nodi secondari nel caso in cui il nodo sia diviso su una variabile con dati mancanti. I dati imputati non vengono tuttavia utilizzati per calcolare la statistica divisa che utilizza solo dati non mancanti. A seguito di una divisione del nodo, i dati imputati vengono ripristinati come mancanti e il processo viene ripetuto fino al raggiungimento dei nodi terminali. OTFI preserva l'integrità dei dati out-of-bag e quindi i valori delle prestazioni come l'importanza variabile (VIMP) rimangono imparziali. L'algoritmo OTFI è stato descritto in Ishwaran et al (2008) e implementato nel pacchetto ritirato randomSurvivalForest,
Il metodo (2) è implementato usando la funzione "impute" in randomForestSRC. Sono disponibili metodi di suddivisione non supervisionati, randomizzati e multivariati per imputare i dati. Ad esempio, la suddivisione multivariata generalizza il metodo di imputazione missForest di grande successo ( Stekhoven & Bühlmann (2012), "MissForest: imputazione non parametrica di valori mancanti per dati di tipo misto", Bioinformatica , 28 , 1 ). Chiamare la funzione impute con dati mancanti restituirà un frame di dati imputato che può essere adattato usando la funzione foresta primaria "rfsrc".
Un confronto dettagliato dei diversi algoritmi di dati mancanti di foresta implementati usando "impute" è stato descritto in un recente documento con Fei Tang "Algoritmi di dati casuali di dati mancanti di foresta", 2017 . Consiglio di consultare i file di aiuto di "rfsrc" e "impute" da randomForestSRC per maggiori dettagli su imputazione e OTFI.
Il partizionamento ricorsivo utilizza suddivisioni surrogate basate su predittori non mancanti che sono correlati con il predittore che possiede il valore mancante per un'osservazione. In teoria sembrerebbe possibile implementare foreste casuali che usano la stessa idea. Non so se qualche software forestale casuale lo abbia fatto.
Random Forest ha due metodi per gestire i valori mancanti, secondo Leo Breiman e Adele Cutler, che lo hanno inventato.
Il primo è veloce e sporco: riempie semplicemente il valore mediano per le variabili continue o il valore mancante più comune per classe .
Il secondo metodo riempie i valori mancanti, quindi esegue RF, quindi per valori continui mancanti, RF calcola la media ponderata in prossimità dei valori mancanti. Quindi questo processo viene ripetuto più volte. Quindi il modello viene addestrato un'ultima volta utilizzando il set di dati imputati RF.
Invece di usare valori mediani, ecc., Consiglio vivamente di guardare il pacchetto missRanger (attualmente in sviluppo su Github) o il pacchetto R missForest). Entrambi questi pacchetti usano foreste casuali per imputare prima i tuoi dati usando un metodo simile all'imputazione multipla tramite equazioni concatenate (MICE). Questo sarebbe il metodo di imputazione appropriato da usare in quanto corrisponde strettamente al modello di analisi reale. È quindi possibile utilizzare tutti i dati senza doversi preoccupare di eliminare singole righe a causa di osservazioni mancanti. Inoltre, i valori imputati saranno molto più realistici rispetto alla semplice selezione di mediane o modalità.
È possibile utilizzare solo un set di dati imputati compilato per le analisi, ma il modo migliore per incorporare l'incertezza sui valori mancanti è eseguire più esecuzioni di questi metodi di imputazione e quindi stimare il modello su ciascuno dei set di dati risultanti (ad esempio, più imputazione) e quindi combinare le stime usando le regole di Rubin (vedi pacchetto R mitociti).
Per CART, è possibile applicare l'approccio missing-in-attributi (MIA). Cioè, per i predittori categorici, il codice mancante come categoria separata. Per i predittori numerici, crei due nuove variabili per ogni variabile con mancanze: una in cui codifichi mancanze come -Inf e una in cui codifichi mancanze come + Inf. Quindi si applica una funzione foresta casuale come al solito ai dati.
Vantaggi della MIA: 1) Computazionalmente economico, 2) non produce più set di dati e quindi modelli, come fa l'imputazione multipla (la letteratura sull'imputazione dei dati mancanti concorda generalmente che un set di dati imputato non è sufficiente), 3) non richiede scegliere un metodo statistico e / o un modello per imputare i dati.
Le funzioni ctree()
e cforest()
dal pacchetto partykit consentono l'applicazione di MIA passando ctree_control(MIA = TRUE)
ai loro control
argomenti.
Il programma RuleFit di Jerome Friedman sembra utilizzare MIA per gestire i mancati, vedere https://statweb.stanford.edu/~jhf/r-rulefit/rulefit3/RuleFit_help.html#xmiss .
Una descrizione dell'approccio MIA è disponibile in Twala et al. (2008):
Twala, BETH, Jones, MC e Hand, DJ (2008). Buoni metodi per far fronte ai dati mancanti negli alberi delle decisioni. Pattern Recognition Letters, 29 (7), 950-956.
party
pacchetto R. Un articolo sul blog qui: exegetic.biz/blog/2013/05/…