Выбор параметра сложности в CART

16

В подпрограмме rpart () для создания моделей CART вы указываете параметр сложности, к которому вы хотите удалить свое дерево. Я видел две разные рекомендации по выбору параметра сложности:

  1. Выберите параметр сложности, связанный с минимально возможной перекрестной проверкой ошибки. Этот метод рекомендуется Quick-R и HSAUR.

  2. Выберите параметр наибольшей сложности, оценочная перекрестная проверка которого все еще находится в пределах SE минимально возможной перекрестной проверки. Это моя интерпретация документации пакета, которая гласит: «Хороший выбор cp для обрезки часто является крайним левым значением, для которого среднее значение лежит ниже горизонтальной линии» со ссылкой на этот график .

Два варианта cp создают совершенно разные деревья в моем наборе данных.

Кажется, что первый метод всегда будет создавать более сложное, потенциально переоснащенное дерево. Есть ли другие преимущества, недостатки, рекомендации в литературе и т. Д., Которые я должен учитывать при принятии решения, какой метод использовать? Я могу предоставить больше информации о моей конкретной проблеме моделирования, если это будет полезно, но я пытаюсь сделать этот вопрос достаточно широким, чтобы иметь отношение к другим.

Принимание
источник
Что представляет собой горизонтальная линия на графике?
Богдановец
Я считаю, что это представляет собой 1 SE выше минимально возможной перекрестной проверки ошибки.
половина миновать
Если у вас достаточно данных, вы можете попытаться разделить их на обучающие и тестовые данные даже для деревьев. Это может быть особенно полезно, если вы в основном заинтересованы в прогнозировании, поскольку набор тестовых данных даст хорошую оценку этого. Другим выбором является partyпакет, в котором используются тесты значимости (обычно это не то, что я рекомендую, но здесь это кажется уместным). Однако, как всегда, лучший тест - это полезность и смысл; это особенно верно, если вы в основном заинтересованы в объяснении.
Питер Флом - Восстановить Монику
Мои извинения за медленный ответ. Чтобы уточнить, я подумал, что, используя перекрестную проверку для вычисления ошибки при разных размерах дерева, я уже эффективно разделил данные многократно на обучающие и тестовые наборы. Будет ли в этом случае выполнение другого разделения обучения / теста избыточным? Я вас неправильно понимаю?
половина пройдет
Разделение данных в поезде / тесте и перекрестная проверка параметра cp с использованием только данных по поездам создаст реалистичный прогнозный тест (в котором вы не можете использовать будущие данные для оценки cp). Таким образом, первое резюме будет для cp, ошибка прогноза для всей модели (включая предполагаемый cp).
Роберт Кубрик

Ответы:

6

На практике я видел оба подхода, и я думаю, что в целом ваши результаты вряд ли будут сильно отличаться.

При этом, Хасти и др. Рекомендуют правило «одной стандартной ошибки» в Элементах Статистического Обучения , и я склонен доверять их суждениям (Раздел 7.10, стр. 244 в моей версии). Соответствующая цитата:

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

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

цацка
источник
1

Сначала вы должны использовать аргументы minsplit=0и cp=0(параметр сложности), затем использовать функции plotcp(T.max)и printcp(T.max)выбрать значение, cpсоответствующее минимальной относительной ошибке, и обрезать дерево с помощью функции.prune.rpart(T.max, cp=....)

Это должно дать вам оптимальное дерево классификации, поскольку они имеют тенденцию быть чрезмерно оптимистичными.

Айман Хиджази
источник