Предположим, что я работаю над некоторой проблемой классификации. (Обнаружение мошенничества и спам комментариев - это две проблемы, над которыми я работаю прямо сейчас, но мне интересно узнать о какой-либо задаче классификации вообще.)
Как узнать, какой классификатор я должен использовать?
- Дерево решений
- SVM
- байесовский
- Нейронная сеть
- K-ближайших соседей
- Q-обучения
- Генетический алгоритм
- Марковские процессы принятия решений
- Сверточные нейронные сети
- Линейная регрессия или логистическая регрессия
- Усиление, упаковывание в мешки, эякуляция
- Случайное восхождение на холм или имитированный отжиг
- ...
В каких случаях один из них является "естественным" первым выбором и каковы принципы выбора этого?
Примеры типа ответов, которые я ищу (от Manning et al. Введение в информационный поиск):
а. Если ваши данные помечены, но у вас ограниченная сумма, вы должны использовать классификатор с большим уклоном (например, Naive Bayes).
Я предполагаю, что это связано с тем, что классификатор с более высоким уровнем смещения будет иметь более низкую дисперсию, что хорошо из-за небольшого объема данных.
б. Если у вас тонна данных, то классификатор не имеет особого значения, поэтому вам, вероятно, следует просто выбрать классификатор с хорошей масштабируемостью.
-
Каковы другие рекомендации? Даже такие ответы, как "если вам придется объяснить свою модель какому-то высшему руководству, тогда, возможно, вам следует использовать дерево решений, так как правила принятия решений достаточно прозрачны" - это хорошо. Тем не менее, я забочусь о проблемах с реализацией/библиотекой.
-
Кроме того, для некоторого отдельного вопроса, помимо стандартных байесовских классификаторов, существуют ли стандартные "современные" методы для обнаружения спама комментариев (в отличие от спама электронной почты)?