Quais são as vantagens dos diferentes algoritmos de classificação?
Aqui estão algumas diretrizes gerais I'encontrei ao longo dos anos.
Quão grande é o seu conjunto de treinamento?
Se o seu conjunto de treinamento é pequeno, os classificadores de desvio alto/baixo (por exemplo, Naive Bayes) têm uma vantagem sobre os classificadores de desvio baixo/alto (por exemplo, kNN ou regressão logística), uma vez que este último irá se ajustar em excesso. Mas os classificadores de baixa polarização/alta variância começam a ganhar à medida que seu conjunto de treinamento cresce (eles têm menor erro assimptótico), uma vez que os classificadores de alta polarização são' não são poderosos o suficiente para fornecer modelos precisos.
Você também pode pensar nisto como um modelo generativo vs. distinção discriminatória de modelos.
Vantagens de alguns algoritmos particulares
Vantagens de Naive Bayes: Super simples, você'está apenas fazendo um monte de contagens. Se a suposição de independência condicional NB realmente se mantém, um classificador Naive Bayes convergirá mais rapidamente do que modelos discriminatórios como a regressão logística, então você precisa de menos dados de treinamento. E mesmo que a suposição de NB não se confirme, um classificador NB ainda tem um desempenho surpreendente na prática. Uma boa aposta se você quer fazer algum tipo de aprendizagem semi-supervisionada, ou quer algo embaraçosamente simples que tenha um bom desempenho.
Vantagens da Regressão Logística: Muitas maneiras de regularizar o seu modelo, e você não'não tem que se preocupar tanto com as suas características sendo correlacionadas, como você faz em Naive Bayes. Você também tem uma boa interpretação probabilística, ao contrário de árvores de decisão ou SVMs, e você pode facilmente atualizar seu modelo para receber novos dados (usando um método de descida de gradiente online), novamente ao contrário de árvores de decisão ou SVMs. Use-o se você quiser uma estrutura probabilística (por exemplo, para ajustar facilmente os limites de classificação, para dizer quando você'está inseguro, ou para obter intervalos de confiança) ou se você espera receber mais dados de treinamento no futuro que você quer ser capaz de incorporar rapidamente ao seu modelo.
Vantagens das Árvores de Decisão: Fácil de interpretar e explicar (para algumas pessoas -- I'não tenho certeza se caio neste acampamento). Não-paramétrico, então você não'não tem que se preocupar com outliers ou se os dados são linearmente separáveis (por exemplo, árvores de decisão facilmente cuidam de casos onde você tem classe A na parte baixa de alguma característica x, classe B na parte média da característica x, e A novamente na parte alta). Sua principal desvantagem é que eles se superam facilmente, mas isso's onde métodos de conjunto como florestas aleatórias (ou árvores impulsionadas) entram. Além disso, as florestas aleatórias são frequentemente as vencedoras por muitos problemas de classificação (geralmente um pouco à frente das SVMs, acredito), elas'são rápidas e escaláveis, e você não'não precisa se preocupar em afinar um monte de parâmetros como você faz com as SVMs, então elas parecem ser bastante populares hoje em dia.
Vantagens das SVMs: Alta precisão, boas garantias teóricas em relação ao ajuste excessivo, e com um kernel apropriado eles podem funcionar bem mesmo que seus dados sejam't linearmente separáveis no espaço do recurso base. Especialmente popular em problemas de classificação de texto onde os espaços muito altos são a norma. No entanto, é um pouco chato e de memória intensiva para correr e afinar, então eu acho que florestas aleatórias estão começando a roubar a coroa.
Para voltar à questão particular da regressão logística vs. árvores de decisão (que I'assumirá ser uma questão de regressão logística vs. florestas aleatórias) e resumir um pouco: ambas são rápidas e escaláveis, florestas aleatórias tendem a bater a regressão logística em termos de precisão, mas a regressão logística pode ser atualizada online e lhe dá probabilidades úteis. E já que você're na Square (não sei bem o que é um cientista de inferência, além da personificação da diversão) e possivelmente trabalhando na detecção de fraudes: ter probabilidades associadas a cada classificação pode ser útil se você quiser ajustar rapidamente os limites para mudar as taxas de falsos positivos/negativos, e independentemente do algoritmo que você escolher, se suas classes estiverem fortemente desequilibradas (como muitas vezes acontece com fraudes), você provavelmente deveria fazer uma nova amostragem das classes ou ajustar suas métricas de erro para tornar as classes mais iguais.
But...
Recall, no entanto, que melhores dados muitas vezes batem melhores algoritmos, e projetar bons recursos vai longe. E se você tem um conjunto de dados enorme, sua escolha de algoritmo de classificação pode não importar tanto em termos de desempenho de classificação (então escolha seu algoritmo baseado na velocidade ou facilidade de uso em seu lugar).
E se você realmente se importa com a precisão, você deve definitivamente tentar um monte de classificadores diferentes e selecionar o melhor pela validação cruzada. Ou, para tirar uma lição do Netflix Prize e Middle Earth, basta usar um método de conjunto para escolher todos eles!
Artigos semelhantes
- Quais são os 10 algoritmos que se deve saber para resolver a maioria dos problemas de algoritmos?
- Porque é que a CNN é utilizada para classificação de imagens, e porque não outros algoritmos?
- Que filmes da Disney têm a classificação R, e porque receberam a classificação R?
- Quais são alguns dos melhores algoritmos?