¿Cómo elegir el número de divisiones en rpart ()?

9

He utilizado rpart.controlpara minsplit=2, y obtuvo los siguientes resultados de rpart()la función. Para evitar sobreajustar los datos, ¿necesito usar splits 3 o splits 7? ¿No debería usar splits 7? Por favor hagamelo saber.

Variables realmente utilizadas en la construcción de árboles:

[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
samarasa
fuente
1
Respondí esto en el seguimiento que publicaste en la pregunta anterior. Dado eso, no había necesidad de esto. ¡Mencioné que no debería editar las Q para hacer un seguimiento para futuras referencias !
Gavin Simpson
1
Para evitar buscar la pregunta relacionada en el futuro, aquí está el enlace a la P anterior: stats.stackexchange.com/questions/13446/… .
chl

Respuestas:

10

La convención es usar el mejor árbol (error relativo de validación cruzada más bajo) o el árbol más pequeño (más simple) dentro de un error estándar del mejor árbol. El mejor árbol está en la fila 8 (7 divisiones), pero el árbol en la fila 7 (6 divisiones) realiza efectivamente el mismo trabajo ( xerrorpara el árbol en la fila 7 = 0.21761, que está dentro (más pequeño que) xerrordel mejor árbol más un estándar error, xstd(0.21076 + 0.042196) = 0.252956) y es más simple, por lo tanto, la regla de error estándar 1 lo seleccionaría.

Gavin Simpson
fuente