Различные алгоритмы дерева решений со сравнением сложности или производительности - PullRequest
37 голосов
/ 02 апреля 2012

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

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

  • Производительность
  • Сложность
  • Ошибки при принятии решений
  • и другие.

1 Ответ

80 голосов
/ 03 апреля 2012

Реализации дерева решений отличаются в основном по этим осям:

  • критерий расщепления (т. Е. Как вычисляется «дисперсия»)

  • независимо от того, строит ли она модели для регрессии (непрерывные переменные, например, оценка), а также классификация (дискретные переменные, например, метка класса)

  • методика устранения / уменьшения переоснащение

  • может ли он обрабатывать неполные данные

Основные реализации дерева решений:

  • ID3 , или Итеративный дихотомайзер, был первой из трех реализаций дерева решений, разработанных Россом Куинланом (Quinlan, JR 1986. Индукциядеревьев решений. Mach. Learn. 1, 1 (Mar. 1986), 81-106.)

  • CART или Деревья классификации и регрессии часто используется как общая аббревиатура для термина «Дерево решений», хотя, по-видимому, он имеет более конкретное значение.В целом реализация CART очень похожа на C4.5;единственное заметное отличие состоит в том, что CART создает дерево на основе числового критерия разделения, рекурсивно применяемого к данным, тогда как C4.5 включает в себя промежуточный этап построения набора правил s.

  • C4.5 , следующая итерация Квинлана.Новые функции (по сравнению с ID3): (i) принимает как непрерывные, так и дискретные функции;(ii) обрабатывает неполные точки данных;(iii) решает проблему чрезмерной подгонки с помощью (очень умной) восходящей техники, обычно известной как «обрезка»;и (iv) к различным весам могут быть применены признаки, которые составляют данные обучения.Из них первые три очень важны - и я бы предположил, что в любой выбранной вами реализации DT есть все три.Четвертый (дифференциальное взвешивание) гораздо менее важен

  • C5.0 , самая последняя итерация Квинлана.Эта реализация защищена патентом и, вероятно, в результате редко применяется (за пределами коммерческих пакетов программного обеспечения).Я никогда не кодировал реализацию C5.0 самостоятельно (я никогда не видел исходный код), поэтому я не могу предложить информированное сравнение C5.0 с C4.5.Я всегда скептически относился к улучшениям, заявленным его изобретателем (Россом Куинланом) - например, он утверждает, что он «на несколько порядков» быстрее, чем C4.5.Другие утверждения также широки («значительно более эффективен для памяти») и так далее.Я просто укажу вам исследования , в которых сообщается о результате сравнения двух техник, и вы можете сами решить.

  • CHAID (автоматический детектор взаимодействия хи-квадрат) фактически предшествует первоначальной реализации ID3 примерно на шесть лет (опубликовано в докторской диссертации Гордона Касса в 1980 году).Я немного знаю об этой технике. Платформа R имеет пакет под названием CHAID , который включает отличную документацию

  • MARS (мультиадаптивная регрессиясплайны) на самом деле термин, зарегистрированный под маркой оригинального изобретателя MARS, Salford Systems.В результате клоны MARS в библиотеках, не продаваемых Salford, называются как-то иначе, чем MARS - например, в R соответствующая функция - polymars в библиотеке poly-spline.Matlab и Statistica также имеют реализации с функциональностью MARS

Я бы порекомендовал CART или C4.5 (хотя, опять же, у меня нет прямого опыта с C5.0 или с CHAID, хотя язнакомы с их набором функций).

C4.5 - вариант дерева решений, реализованный в Orange ;CART - это разновидность sklearn - обе отличные реализации в превосходных библиотеках ML.

C4.5 является важным шагом за пределы ID3 - как с точки зрения диапазона (C4.5 имеет гораздо более широкий спектр вариантов использования, поскольку он может обрабатывать непрерывные переменные в обучающих данных), так и с точки зрения качества модели .

Пожалуй, наиболее значительным заявленным улучшением C5.0 по сравнению с C4.5 является поддержка повышенных деревьев .Поддержка ансамбля для DT - расширенных деревьев и случайных лесов - была включена в реализацию DT в Orange;здесь поддержка ансамбля была добавлена ​​в алгоритм C4.5.Склеарн также имеет ряд случайных лесов и методов повышения.

...