Можно ли сделать модели CART надежными?

14

Коллега в моем офисе сказал мне сегодня: «Модели деревьев не хороши, потому что их ловят экстремальные наблюдения».

Поиск здесь привел к этой теме, которая в основном поддерживает претензию.

Что приводит меня к вопросу - в какой ситуации модель CART может быть надежной и как это показано?

Таль Галили
источник

Ответы:

15

Нет, не в их нынешних формах. Проблема в том, что выпуклые функции потерь нельзя сделать устойчивыми к загрязнению выбросами (это общеизвестный факт с 70-х годов, но он периодически переоткрывается, см., Например, эту статью о недавнем таком повторном открытии):

http://www.cs.columbia.edu/~rocco/Public/mlj9.pdf

Теперь, в случае деревьев регрессии, можно использовать тот факт, что CART использует маргиналы (или, альтернативно, одномерные проекции): можно вспомнить версию CART, в которой критерий sd заменен более надежным аналогом (MAD или еще лучше, Qn оценщик).

Редактировать:

Недавно я наткнулся на более старую статью, реализующую предложенный выше подход (использующий надежный метод оценки масштаба вместо MAD). Это придаст устойчивость "y" выбросам CART / RF (но не выбросам, расположенным в области проектирования, что повлияет на оценки гиперпараметров модели). См.

Galimberti, G., Pillati, M. & Soffritti, G. (2007). Робастные деревья регрессии на основе М-оценок. Statistica, LXVII, 173–190.

user603
источник
Спасибо, квак. Эта статья, кажется, говорит о методах повышения. Имеют ли они результаты для простого случая классификатора модели CART? (на первый взгляд это звучит так, но я не изучил статью достаточно, чтобы действительно знать)
Tal Galili
Результат, который они представляют, справедлив для любой выпуклой функции потерь и был первоначально обсужден Тьюки. Подводя итог, можно сказать, что мера разброса (Джини или энтропия), используемая для количественной оценки качества узла, чувствительна к загрязнению выбросами (т. Е. Наблюдениям, которые в наборе данных помечены неправильно). Эта проблема затрагивает как здание, так и этап обрезки. Загрязнение набора данных путем наблюдения с ошибочно вмененной меткой обычно приводит к тому, что результирующее дерево становится слишком сложным (вы можете проверить это довольно легко самостоятельно).
user603
Спасибо, Квак! И нет ли надежной функции потерь?
Тал Галили
1
нет выпуклой функции потерь. См. Эту статью «Быстрый алгоритм оценки минимального ковариационного определителя» для примера того, что можно сделать с помощью невыпуклых функций потерь (хотя статья не имеет отношения к классификации, ее стоит прочитать).
user603
2
@Tal CART - это эквивалент повышения «сводного классификатора» (критерия, который находится в каждом узле дерева, как некоторый атрибут, теряющий что-то, или какое-то значение атрибута в наборе чего-либо).
6

Вы можете рассмотреть возможность использования мешков Бреймана или случайных лесов . Одним хорошим примером является Брейман «Предсказатели мешков» (1996). Также резюмируется в «Деревьях классификации и регрессии, расслоении и повышении» Клифтона Саттона в « Справочнике статистики».

Вы также можете увидеть обсуждение Энди Лиу и Мэтью Винером R News пакета randomForest.

Шейн
источник
2
Не испортить вечеринку, но как случайный лес должен обеспечивать устойчивость к загрязнению выбросами - загадка.
user603
3
@kwak Тем не менее, это хороший ответ; Деревья в РФ не видят всего множества, поэтому многие из них не будут загрязнены. Еще лучше - отслеживание того, какие листья делают OOB, позволяет использовать землю для поиска ошибочно маркированных объектов и их устранения. (Насколько я сейчас помню, это упоминается в статье Бреймана о РФ).
4
Проблема в том, что выбросы заставят некоторое «плохое» (то есть загрязненное) дерево выглядеть лучше, чем хорошее (незагрязненное). Это называется маскирующим эффектом и его легко воспроизвести с помощью смоделированных данных. Проблема возникает потому, что критерий, который вы используете для оценки деревьев, сам по себе не является устойчивым к выбросам. Я знаю, что я начинаю звучать как фундаменталистский мулла, но если каждый инструмент, который вы используете, не сделан надежным, ваша процедура может показаться чувствительной (на том или ином уровне) к выбросам (и, следовательно, не устойчивой).
user603
3

Если вы посмотрите на пакет «gbm» в R (обобщенное повышение градиента), то для «повышения» используются функции потерь, которые не обязательно означают среднеквадратическую ошибку. Это проявляется в аргументе 'distribution' для функции 'gbm ()'. Таким образом, разработка дерева посредством бустинга будет устойчива к выбросам, подобно тому, как работают М-оценки.

Вы можете начать здесь .

Другой подход заключается в построении дерева обычным способом (разделы на основе SSE), но обрезка дерева с использованием перекрестной проверки с надежной мерой соответствия. Я думаю, что xpred в rpart даст перекрестно проверенные предикторы (для множества различных древовидных сложностей), которые вы затем можете применить к своей собственной мере ошибки, такой как среднее абсолютное значение.

AlaskaRon
источник