Лучшие пять классификаторов, чтобы попробовать сначала


25

Помимо очевидных характеристик классификатора, таких как

  • вычислительные затраты,
  • ожидаемые типы данных функций / меток и
  • пригодность для определенных размеров и размеров наборов данных,

Какие пять (или 10, 20?) классификаторов лучше всего опробовать на новом наборе данных, о котором еще мало что известно (например, семантика и корреляция отдельных функций)? Обычно я пробую Наивный Байес, Ближайший сосед, Дерево решений и SVM - хотя у меня нет веских оснований для этого выбора, кроме как я их знаю и в основном понимаю, как они работают.

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


ОБНОВЛЕНИЕ: альтернативной формулировкой этого вопроса может быть: «Какие общие подходы к классификации существуют и какие конкретные методы охватывают наиболее важные / популярные / перспективные?»


Я думаю, что это дубликат ( stats.stackexchange.com/questions/3458/… ). Единственной дополнительной ценностью вопроса здесь могут быть «критерии выбора классификаторов» (что сделало бы вопрос очень общим). Если это дубликат, проголосуйте за закрытие, иначе проголосуйте за cw;)
steffen

@steffen: Ваш упомянутый вопрос полезен, хотя, я думаю, это не дубликат. На самом деле мой вопрос довольно общий. Я не ищу решения для конкретной проблемы, но по общим причинам, почему использовать, какие учащиеся - я обновлю свой вопрос соответственно.
Обен Сонн

Ответы:


21

Случайный Лес

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

Недостатки: медленнее, чем тривиальные методы, такие как kNN или NB, лучше всего работает с равными классами, худшая точность, чем у SVM, для задач, которые отчаянно требуют трюка с ядром, сложный черный ящик, не делает кофе.


1
@mbq (+1) Что касается дисбаланса классов, мы все еще можем полагаться на стратифицированную выборку во время упаковки в пакеты.
хл

3
@mbq, не делает кофе? Это сделка прямо здесь.
кардинал

Спасибо за подсказку к случайным лесам . Но ты бы попробовал только их? Что делать, если вы не довольны результатами? Какой классификатор вы бы попробовали еще? Или, что бы вы ответили, если бы кто-то спросил: «Почему вы не попробовали другие методы?»
Обен Сонне

@Oben Ну, я поняла, что вы делаете своего рода пул с одним классификатором за ответ.

@mbq: Не совсем, но получается такой пул. Возможно, я не достаточно ясно выразился в этом вопросе. На самом деле я хотел знать, какой набор классификаторов следует попробовать в первую очередь, чтобы охватить разные общие методы классификации (с разными сильными и слабыми сторонами). Я всегда спрашиваю себя, не стоит ли мне попробовать больше классификаторов. Знание того, что те, которые я попробовал, уже представляют наиболее типичные / многообещающие подходы, помогло бы здесь. Но для этого мне нужно знать, для какого набора классификаторов это верно. (Я далеко не эксперт по статистике, поэтому дайте мне знать, если мой ум здесь немного искажен)
Oben Sonne

7

Классификатор гауссовских процессов (без использования приближения Лапласа), предпочтительно с маргинализацией, а не с оптимизацией гиперпараметров. Зачем?

  1. потому что они дают вероятностную классификацию
  2. Вы можете использовать функцию ядра, которая позволяет вам работать непосредственно с не векторными данными и / или включать экспертные знания
  3. они имеют дело с неопределенностью при правильном подборе модели, и вы можете распространить эту неопределенность на весь процесс принятия решений
  4. в целом очень хорошие прогностические показатели.

Downsides

  1. медленный
  2. требует много памяти
  3. непрактично для крупномасштабных проблем.

Хотя первым выбором будет регуляризованная логистическая регрессия или регрессия гребня [без выбора признаков] - для большинства задач очень простые алгоритмы работают довольно хорошо и их труднее ошибиться (на практике различия в производительности между алгоритмами меньше, чем различия в производительности между оператором за рулем).


1

Самостоятельно, когда вы приближаетесь к новому набору данных, вы должны начать следить за всей проблемой. Прежде всего, получите распределение по категориальным признакам, средним и стандартным отклонениям для каждого непрерывного признака. Затем:

  • Удалить объекты с более чем X% пропущенных значений;
  • Удалите категорические признаки, когда конкретное значение достигает 90-95% относительной частоты;
  • Удалить непрерывные объекты с CV = STD / среднее <0,1;
  • Получите ранжирование параметров, например, ANOVA для непрерывного и хи-квадрат для категориального;
  • Получить значительный набор функций;

Затем я обычно делю методы классификации на 2 набора: метод белого ящика и метод черного ящика. Если вам нужно знать, «как работает классификатор», вы должны выбрать в первом наборе, например, деревья решений или классификаторы на основе правил.

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

После этого я думаю, что лучше иметь порог между точностью и скоростью: нейронная сеть немного медленнее, чем SVM.

Это моя пятерка лучших техник классификации:

  1. Древо решений;
  2. Классификаторы на основе правил;
  3. СМО (СВМ);
  4. Наивный байесовский;
  5. Нейронные сети.

4
-1 Абсолютно неверный рабочий процесс для больших p small n, переоснащение FS гарантировано.

1
не является ли KNN ленивым учеником, а не страстным (так как вы на самом деле ничего не делаете, пока вам действительно не нужно, когда приходит образец для классификации)? Любая предварительная обработка, которую вы выполняете перед применением классификатора, скорее всего, окажет большее влияние на производительность, чем разница между классификаторами; Выбор функций особенно сложен (легко приводит к переоснащению), и такие методы, как SVM с регуляризацией, обычно работают лучше без выбора функций. Я, конечно, не рекомендовал бы нейронные сети, слишком много потенциальных ловушек.
Дикран Marsupial
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.