Как выбрать количество сплитов в rpart ()?

9

Я использовал rpart.controlдля minsplit=2, и получил следующие результаты от rpart()функции. Чтобы избежать перегрузки данных, нужно ли использовать разделение 3 или разделение 7? Разве я не должен использовать сплит 7? Пожалуйста, дайте мне знать.

Переменные, фактически используемые в построении дерева:

[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
источник
1
Я ответил на это в последующем сообщении, которое вы опубликовали в предыдущем вопросе. Учитывая это, в этом не было необходимости. Я упомянул, что вы не должны редактировать Q для последующего использования !
Гэвин Симпсон
1
Чтобы не искать связанный вопрос в будущем, вот ссылка на предыдущий вопрос: stats.stackexchange.com/questions/13446/… .
хл

Ответы:

10

Соглашение состоит в том, чтобы использовать лучшее дерево (наименьшая относительная ошибка перекрестной проверки) или наименьшее (самое простое) дерево в пределах одной стандартной ошибки наилучшего дерева. Лучшее дерево находится в строке 8 (7 разбиений), но дерево в строке 7 (6 разбиений) эффективно выполняет ту же работу ( xerrorдля дерева в строке 7 = 0,21761, которое находится в пределах (меньше) xerrorлучшего дерева плюс один стандарт error xstd,, (0.21076 + 0.042196) = 0.252956) и является более простым, поэтому стандартное правило ошибки 1 выберет его.

Гэвин Симпсон
источник