Suponha que eu esteja trabalhando em algum problema de classificação. (A detecção de fraude e o spam de comentários são dois problemas nos quais estou trabalhando agora, mas estou curioso sobre qualquer tarefa de classificação em geral.)
Como sei qual classificador devo usar?
- Árvore de decisão
- SVM
- Bayesiano
- Rede neural
- K-vizinhos mais próximos
- Q-learning
- Algoritmo genético
- Processos de decisão de Markov
- Redes neurais convolucionais
- Regressão linear ou regressão logística
- Impulsionar, ensacamento, ensambling
- Escalada aleatória ou recozimento simulado
- ...
Em quais casos um deles é a primeira escolha "natural" e quais são os princípios para sua escolha?
Exemplos do tipo de respostas que estou procurando (do livro Introdução à recuperação de informações de Manning et al. ):
uma. Se seus dados estiverem rotulados, mas você tiver apenas uma quantidade limitada, use um classificador com alto viés (por exemplo, Naive Bayes) .
Suponho que isso ocorre porque um classificador de viés mais alto terá menor variação, o que é bom por causa da pequena quantidade de dados.
b. Se você tem uma tonelada de dados, o classificador não importa muito, então você provavelmente deve escolher um classificador com boa escalabilidade.
Quais são as outras diretrizes? Até respostas como "se você tiver que explicar seu modelo para alguém da alta gerência, talvez deva usar uma árvore de decisão, pois as regras de decisão são bastante transparentes" são boas. Eu me importo menos com questões de implementação / biblioteca, no entanto.
Além disso, para uma pergunta um pouco separada, além dos classificadores bayesianos padrão, existem métodos 'avançados' para detecção de spam de comentários (em oposição ao spam de email)?