В подпрограмме rpart () для создания моделей CART вы указываете параметр сложности, к которому вы хотите удалить свое дерево. Я видел две разные рекомендации по выбору параметра сложности:
Выберите параметр сложности, связанный с минимально возможной перекрестной проверкой ошибки. Этот метод рекомендуется Quick-R и HSAUR.
Выберите параметр наибольшей сложности, оценочная перекрестная проверка которого все еще находится в пределах SE минимально возможной перекрестной проверки. Это моя интерпретация документации пакета, которая гласит: «Хороший выбор cp для обрезки часто является крайним левым значением, для которого среднее значение лежит ниже горизонтальной линии» со ссылкой на этот график .
Два варианта cp создают совершенно разные деревья в моем наборе данных.
Кажется, что первый метод всегда будет создавать более сложное, потенциально переоснащенное дерево. Есть ли другие преимущества, недостатки, рекомендации в литературе и т. Д., Которые я должен учитывать при принятии решения, какой метод использовать? Я могу предоставить больше информации о моей конкретной проблеме моделирования, если это будет полезно, но я пытаюсь сделать этот вопрос достаточно широким, чтобы иметь отношение к другим.
party
пакет, в котором используются тесты значимости (обычно это не то, что я рекомендую, но здесь это кажется уместным). Однако, как всегда, лучший тест - это полезность и смысл; это особенно верно, если вы в основном заинтересованы в объяснении.Ответы:
На практике я видел оба подхода, и я думаю, что в целом ваши результаты вряд ли будут сильно отличаться.
При этом, Хасти и др. Рекомендуют правило «одной стандартной ошибки» в Элементах Статистического Обучения , и я склонен доверять их суждениям (Раздел 7.10, стр. 244 в моей версии). Соответствующая цитата:
Ваша интуиция о том, почему следует следовать единому стандартному правилу ошибок, верна - вы должны сделать это, чтобы избежать выбора модели, которая соответствует данным.
источник
Сначала вы должны использовать аргументы
minsplit=0
иcp=0
(параметр сложности), затем использовать функцииplotcp(T.max)
иprintcp(T.max)
выбрать значение,cp
соответствующее минимальной относительной ошибке, и обрезать дерево с помощью функции.prune.rpart(T.max, cp=....)
Это должно дать вам оптимальное дерево классификации, поскольку они имеют тенденцию быть чрезмерно оптимистичными.
источник