Результат rpart только с 1 корнем

Как и в моем наборе данных, у Leakage есть два значения 1,0. Всего около 300 строк с 1, а дополнительные в 569378 строк с 1. Это будет причиной того, что я только что получил 1 корень в результате rpart.

Как я могу решить это?

fm.pipe printcp(CART.fit)

Regression tree:
rpart(formula = fm.pipe, data = Data)

Variables actually used in tree construction:
character(0)

Root node error: 299.84/569378 = 0.00052661

n= 569378 

         CP nsplit rel error xerror xstd
1 0.0033246      0         1      0    0

Ответы на вопрос(3)

Там не может быть способ "решать" это, если независимые переменные не предоставляют достаточно информации для роста дерева. Смотрите, например, справку для rpart.control: "Любое разделение, которое не уменьшает общее несоответствие с коэффициентом cp, не предпринимается ». Вы можете попробовать ослабить параметры управления, но тамнет никакой гарантии, что дерево вырастет за пределы корня.

CART.fit 

Я не уверен, что понимаю вашу проблему с длиной строки, но здесьЧто обычно означает эта ошибка:

rpart использует ограничения для построения дерева решений. Вот's значения по умолчанию, отдокументы:

rpart.control(minsplit = 20, minbucket = round(minsplit/3), cp = 0.01, 
      maxcompete = 4, maxsurrogate = 5, usesurrogate = 2, xval = 10,
      surrogatestyle = 0, maxdepth = 30, ...)

Вы должны уменьшить эти ограничения. Как сказал @JeanVAdams, начните с минимума:

rpart(formula=fm.pipe, data=Data, 
      control=rpart.control(minsplit=1, minbucket=1, cp=0.001))

Ваш первый результат, вероятно, будет иметь слишком много узлов, поэтому вам придется медленно наращивать эти ограничения, пока вы не получите дерево приличного размера.

Если ты'все еще смущен, здесьспример:

Позволять'Например, вы просматриваете данные о продуктовом магазине и хотите увидеть дерево самых популярных часов для покупок. Там'только 24 часа, верно? Так что'Только 24 возможности для независимой переменной. Rpart имеет условие, которое говорит:

Должно быть как минимум 20 вещей в узле, чтобы я мог разделить его. "

Это означает, что ваш узел можетдаже не раскололся Даже если у вас 15 миллиардов строк,Есть только 24 возможных способа разделить его. Это'Сложнее, чем это, вероятно, но это хорошее место для начала.

Я на самом деле смотрел на эту проблему (покупателей по часам), и мне пришлось оставить свои ограничения на самом низком уровне, чтобы получить дерево вообще:

rpart(formula=fm.pipe, data=Data, control=rpart.control(minsplit=1, minbucket=1, cp=0.001))

Мой набор данных содержит только 14 строк. Попробуйте использовать следующий код:

dtm

Ваш ответ на вопрос