Come scegliere il numero di divisioni in rpart ()?


9

Ho usato rpart.controlper minsplit=2e ho ottenuto i seguenti risultati dalla rpart()funzione. Per evitare un overfitting dei dati, devo usare le split 3 o le split 7? Non dovrei usare split 7? Per favore mi faccia sapere.

Variabili effettivamente utilizzate nella costruzione di alberi:

[1] ct_a ct_b usr_a

Root node error: 23205/60 = 386.75

n= 60        

    CP nsplit rel error  xerror     xstd
1 0.615208      0  1.000000 1.05013 0.189409
2 0.181446      1  0.384792 0.54650 0.084423
3 0.044878      2  0.203346 0.31439 0.063681
4 0.027653      3  0.158468 0.27281 0.060605
5 0.025035      4  0.130815 0.30120 0.058992
6 0.022685      5  0.105780 0.29649 0.059138
7 0.013603      6  0.083095 0.21761 0.045295
8 0.010607      7  0.069492 0.21076 0.042196
9 0.010000      8  0.058885 0.21076 0.042196

1
Ho risposto a questo nel follow-up che hai postato alla precedente Q. Detto questo, non ce n'era bisogno. Ho detto che non dovresti modificare le Q per il follow-up per riferimento futuro !
Gavin Simpson,

1
Per evitare di cercare la domanda correlata in futuro, ecco il link al precedente Q: stats.stackexchange.com/questions/13446/… .
chl

Risposte:


10

La convenzione prevede l'uso dell'albero migliore (errore relativo di convalida incrociata più basso) o dell'albero più piccolo (più semplice) all'interno di un errore standard dell'albero migliore. L'albero migliore è nella riga 8 (7 divisioni), ma l'albero nella riga 7 (6 suddivisioni) svolge effettivamente lo stesso lavoro ( xerrorper l'albero nella riga 7 = 0,21761, che è all'interno (più piccolo di) xerrordell'albero migliore più uno standard errore, xstd(0,21076 + 0,042196) = 0,252956) ed è più semplice, quindi la regola di errore standard 1 lo selezionerebbe.

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.