Я использую набор данных около 54 тыс. Записей и 5 классов (поп), из которых один класс незначителен. Я использую пакет каретку и следующий запустить rpart:rpart не расщепляет очевидные узлы
model <- train(pop ~ pe + chl_small, method = "rpart", data = training)
и я получаю следующее дерево:
n= 54259
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 54259 38614 pico (0.0014 0.18 0.29 0.25 0.28)
2) pe< 5004 39537 23961 pico (0 0.22 0.39 2.5e-05 0.38)
4) chl_small< 32070.5 16948 2900 pico (0 0.00012 0.83 5.9e-05 0.17) *
5) chl_small>=32070.5 22589 10281 ultra (0 0.39 0.068 0 0.54) *
3) pe>=5004 14722 1113 synecho (0.0052 0.052 0.0047 0.92 0.013) *
Очевидно, что узел 5 должен быть дальнейший раскол, но rpart не делает Это. Я пробовал использовать cp = .001
до cp =.1
, а также minbucket = 1000
в качестве дополнительных параметров, но никаких улучшений.
Цените любую помощь по этому вопросу.
Почему вы говорите, что узел 5 должен быть разделен? Если распределение классов внутри узла не связано с предсказателями, то от его разделения не будет выигрыша. –
Кроме того, если вы хотите заставить rpart разбиваться по возможности, установите 'cp = -1' (или любое отрицательное число). –