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