Scelta del parametro di complessità in CART


16

Nella routine rpart () per creare modelli CART, si specifica il parametro di complessità su cui si desidera eliminare l'albero. Ho visto due diversi consigli per la scelta del parametro complessità:

  1. Scegliere il parametro di complessità associato all'errore minimo possibile con convalida incrociata. Questo metodo è raccomandato da Quick-R e HSAUR.

  2. Scegliere il parametro di maggiore complessità il cui errore di convalida incrociata stimato è ancora all'interno di una SE dell'errore di convalida incrociata minimo possibile. Questa è la mia interpretazione della documentazione del pacchetto, che dice: "Una buona scelta di cp per la potatura è spesso il valore più a sinistra per cui la media si trova sotto la linea orizzontale" in riferimento a questo diagramma .

Le due scelte di cp producono alberi abbastanza diversi nel mio set di dati.

Sembra che il primo metodo produrrà sempre un albero più complesso, potenzialmente sovradimensionato. Ci sono altri vantaggi, svantaggi, raccomandazioni in letteratura, ecc. Che dovrei prendere in considerazione quando decido quale metodo usare? Posso fornire ulteriori informazioni sul mio particolare problema di modellazione se ciò fosse utile, ma sto cercando di mantenere questa domanda abbastanza ampia da essere rilevante per gli altri.


Cosa rappresenta la linea orizzontale nella trama?
Bogdanovist,

Credo che rappresenti 1 SE al di sopra del minimo possibile errore convalidato incrociato.
passaggio

Se disponi di dati sufficienti, puoi provare a separarli in un set di dati di training e test, anche per gli alberi. Ciò può essere particolarmente utile se sei principalmente interessato alla previsione, poiché il set di dati del test fornirà una buona stima di ciò. Un'altra scelta è il partypacchetto che utilizza test di significatività (di solito non è qualcosa che raccomando, ma sembra rilevante qui). Come sempre, tuttavia, il test migliore è utilità e senso; questo è particolarmente vero se sei interessato principalmente alla spiegazione.
Peter Flom - Ripristina Monica

Mi scuso per la risposta lenta. Per chiarire, ho pensato che, utilizzando la convalida incrociata per calcolare l'errore a diverse dimensioni dell'albero, avevo già diviso efficacemente i dati ripetutamente in training e set di test. In tal caso, l'esecuzione di un'altra divisione di allenamento / test sarebbe ridondante? Ti sto fraintendendo?
passaggio

La suddivisione dei dati in treno / test e la convalida incrociata del parametro cp utilizzando solo i dati del treno riprodurrà un test di previsione realistico (in cui non è possibile utilizzare i dati futuri per stimare cp). Quindi il primo CV sarà per cp, l'errore di previsione per il modello complessivo (incluso il cp stimato).
Robert Kubrick,

Risposte:


6

In pratica ho visto entrambi gli approcci adottati e penso che in generale i tuoi risultati non dovrebbero differire molto in entrambi i modi.

Detto questo, Hastie et al. Raccomandano la regola dell '"errore unico" negli Elementi di apprendimento statistico e tendo a fidarmi del loro giudizio (Sezione 7.10, pag. 244 nella mia versione). La citazione pertinente è:

Spesso viene utilizzata una regola di "errore uno standard" con la convalida incrociata, in cui scegliamo il modello più parsimonioso il cui errore non è più di un errore standard sopra l'errore del modello migliore. "

La tua intuizione sul motivo per cui uno dovrebbe seguire la regola dell'errore a uno standard è corretta: lo faresti per evitare di selezionare un modello che si addice ai dati.


1

Dovresti prima iniziare usando gli argomenti minsplit=0e cp=0(parametro di complessità) quindi usare le funzioni plotcp(T.max)e printcp(T.max)scegliere il valore cpcorrispondente all'errore relativo minimo e potare l'albero dalla funzioneprune.rpart(T.max, cp=....)

Questo dovrebbe darti l'albero di classificazione ottimale in quanto tendono ad essere troppo ottimisti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.