R дерево решений с использованием всех переменных

Я хотел бы выполнить анализ дерева решений. Я хочу, чтобы дерево решений использовало все переменные в модели.

Мне также нужно построить дерево решений. Как я могу сделать это в R?

Это образец моего набора данных

> head(d)
  TargetGroup2000 TargetGroup2012 SmokingGroup_Kai PA_Score wheeze3 asthma3 tres3
1               2               2                4        2       0       0     0
2               2               2                4        3       1       0     0
3               2               2                5        1       0       0     0
4               2               2                4        2       1       0     0
5               2               3                3        1       0       0     0
6               2               3                3        2       0       0     0
> 

Я хотел бы использовать формулу

myFormula <- wheeze3 ~ TargetGroup2000 + TargetGroup2012 + SmokingGroup_Kai + PA_Score

Обратите внимание, что все переменные являются категориальными.

РЕДАКТИРОВАТЬ: Моя проблема заключается в том, что некоторые переменные не отображаются в дереве окончательного решения. Глубина дерева должна определяться штрафным параметром альфа. Я не знаю, как установить это наказание для того, чтобы все переменные появились в моей модели.
Другими словами, я хотел бы модель, которая минимизирует ошибки обучения.

3 ответа

Как упоминалось выше, если вы хотите запустить дерево для всех переменных, вы должны записать его как

ctree(wheeze3 ~ ., d)

Упомянутое вами наказание находится на ctree_control(), Вы можете установить P-значение там и минимальный размер разделения и размера сегмента. Таким образом, чтобы максимизировать вероятность того, что все переменные будут включены, вы должны сделать что-то вроде этого:

ctree(wheeze3 ~ ., d, controls = ctree_control(mincriterion = 0.85, minsplit = 0, minbucket = 0))

Проблема в том, что вы рискуете перегрузиться.

Последнее, что вам нужно понять, это то, что причина, по которой вы можете не видеть все переменные в выходных данных дерева, заключается в том, что они не оказывают существенного влияния на переменную зависимых элементов. В отличие от линейной или логистической регрессии, которая покажет все переменные и даст вам P-значение, чтобы определить, являются ли они значимыми или нет, дерево решений не возвращает ненасыщенные переменные, т. Е. Не разделяется на них.

Чтобы лучше понять, как работает ctree, посмотрите здесь: https://stats.stackexchange.com/questions/12140/conditional-inference-trees-vs-traditional-decision-trees

Самый простой способ - использовать пакет rpart, который является частью ядра R.

library(rpart) 
model <- rpart( wheeze3 ~ ., data=d ) 

summary(model)
plot(model)
text(model)

. в формуле аргумент означает использование всех остальных переменных в качестве независимых переменных.

          plot(ctree(myFormula~., data=sta))
Другие вопросы по тегам