Jak wybrać liczbę podziałów w rpart ()?

9

Użyłem rpart.controldo minsplit=2i dostał następujące wyniki z rpart()funkcji. Czy muszę unikać podziału 3 lub 7, aby uniknąć przeładowania danych? Czy nie powinienem używać splitów 7? Proszę daj mi znać.

Zmienne faktycznie używane w konstrukcji drzewa:

[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
źródło
1
Odpowiedziałem na to w kontynuacji przesłanej do poprzedniego Q. Biorąc pod uwagę, że nie było takiej potrzeby. Wspomniałem, że nie powinieneś edytować Q-ów, aby móc je wykorzystać w przyszłości !
Gavin Simpson,
1
Aby uniknąć wyszukiwania powiązanych pytań w przyszłości, oto link do poprzedniego pytania: stats.stackexchange.com/questions/13446/… .
chl

Odpowiedzi:

10

Konwencja polega na użyciu najlepszego drzewa (najniższy błąd względny weryfikacji krzyżowej) lub najmniejszego (najprostszego) drzewa w ramach jednego standardowego błędu najlepszego drzewa. Najlepsze drzewo znajduje się w rzędzie 8 (7 podziałów), ale drzewo w rzędzie 7 (6 podziałów) wykonuje skutecznie tę samą pracę ( xerrordla drzewa w rzędzie 7 = 0,21761, czyli w obrębie (mniejszego niż) xerrornajlepszego drzewa plus jeden standard błąd, xstd(0,21076 + 0,042196) = 0,252956) i jest prostszy, dlatego wybrałaby go 1 standardowa reguła błędu.

Gavin Simpson
źródło