Os cinco principais classificadores para experimentar primeiro


25

Além das características óbvias do classificador, como

  • custo computacional,
  • tipos de dados esperados de recursos / etiquetas e
  • adequação a determinados tamanhos e dimensões de conjuntos de dados,

Quais são os cinco principais classificadores (ou 10, 20?) para experimentar primeiro um novo conjunto de dados sobre o qual ainda não se sabe muito (por exemplo, semântica e correlação de recursos individuais)? Normalmente, eu tento Naive Bayes, Vizinho Mais Próximo, Árvore de Decisão e SVM - embora não tenha bons motivos para essa seleção além de conhecê-los e principalmente entender como eles funcionam.

Acho que se deve escolher classificadores que cubram as abordagens gerais de classificação mais importantes . Qual seleção você recomendaria, de acordo com esse critério ou por qualquer outro motivo?


ATUALIZAÇÃO: Uma formulação alternativa para essa pergunta poderia ser: "Quais abordagens gerais de classificação existem e quais métodos específicos cobrem os mais importantes / populares / promissores?"


Eu acho que isso é uma duplicata de ( stats.stackexchange.com/questions/3458/… ). O único valor adicional da pergunta aqui pode ser "critérios para selecionar classificadores" (o que tornaria a pergunta muito genérica). Se for uma duplicata, vote para fechar, ou então vote no cw;)
steffen

@ steffen: Sua pergunta referenciada é útil, porém, acho que não é uma duplicata. Na verdade, minha pergunta é bastante genérica. Não estou procurando uma solução para um problema específico, mas por razões gerais para usar quais alunos - atualizarei minha pergunta de acordo.
Oben Sonne

Respostas:


21

Random Forest

Rápida, robusta, boa precisão, na maioria dos casos, nada para sintonizar, não requer normalização, imune à colinearidade, gera uma aproximação de erro bastante boa e classificação de importância útil como um efeito colateral do treinamento, trivialmente paralelo, prediz em um piscar de olhos.

Desvantagens: métodos mais lentos que triviais, como kNN ou NB, funcionam melhor com classes iguais, pior precisão que o SVM para problemas que exigem desesperadamente truques do kernel, é uma caixa preta dura, não faz café.


11
@mbq (+1) Sobre o desequilíbrio de classe, ainda podemos contar com amostragem estratificada durante o ensacamento.
chl

3
@mbq, não faz café? Isso é um rompimento de negócios ali.
cardeal

Obrigado pela dica para Random Forests . Mas você tentaria apenas eles? E se você não estiver satisfeito com os resultados? Qual classificador você tentaria mais? Ou, o que você responderia se alguém perguntasse: "Por que você não tentou outros métodos?"
Oben Sonne

@ Oben Bem, eu entendi que você está fazendo uma espécie de pool de um classificador por resposta.

@mbq: Na verdade não, mas acaba sendo uma piscina. Provavelmente não me deixei claro o suficiente na pergunta. Na verdade, eu queria saber qual conjunto de classificadores deve-se tentar primeiro, para cobrir diferentes métodos gerais de classificação (com diferentes pontos fortes e fracos). Eu sempre me pergunto se não devo tentar mais classificadores. Saber que os que eu tentei já representam as abordagens mais típicas / promissoras ajudaria aqui. Mas para isso eu preciso saber para qual conjunto de classificadores isso é verdade. (Eu estou longe de ser um especialista em estatísticas, então deixe-me saber se minha mente está um pouco torcido aqui)
Oben Sonne

7

Classificador de processo Gaussiano (não usando a aproximação de Laplace), preferencialmente com marginalização ao invés de otimização dos hiperparâmetros. Por quê?

  1. porque eles dão uma classificação probabilística
  2. você pode usar uma função do kernel que permite operar diretamente em dados não vetoriais e / ou incorporar conhecimento especializado
  3. eles lidam com a incerteza ao ajustar o modelo corretamente, e você pode propagar essa incerteza até o processo de tomada de decisão
  4. desempenho preditivo geralmente muito bom.

Desvantagens

  1. lento
  2. requer muita memória
  3. impraticável para problemas de grande escala.

A primeira escolha, porém, seria regressão logística regularizada ou regressão de crista [sem seleção de recurso] - para a maioria dos problemas, algoritmos muito simples funcionam muito bem e são mais difíceis de errar (na prática, as diferenças de desempenho entre algoritmos são menores que as diferenças de desempenho entre o operador que os conduz).


1

Sozinho, quando você está se aproximando de um novo conjunto de dados, deve começar a observar todo o problema. Primeiro, obtenha uma distribuição para recursos categóricos e desvios médios e padrão para cada recurso contínuo. Então:

  • Excluir recursos com mais de X% de valores ausentes;
  • Exclua recursos categóricos quando um valor específico atingir mais de 90 a 95% da frequência relativa;
  • Exclua recursos contínuos com CV = std / mean <0.1;
  • Obtenha uma classificação de parâmetros, por exemplo, ANOVA para contínua e Qui-quadrado para categórica;
  • Obtenha um subconjunto significativo de recursos;

Normalmente, divido as técnicas de classificação em 2 conjuntos: técnica de caixa branca e caixa preta. Se você precisar saber 'como o classificador funciona', deverá escolher no primeiro conjunto, por exemplo, árvores de decisão ou classificadores baseados em regras.

Se você precisar classificar novos registros sem criar um modelo, deve dar uma olhada no aluno ansioso, por exemplo, KNN.

Depois disso, acho melhor ter um limite entre precisão e velocidade: a Rede Neural é um pouco mais lenta que o SVM.

Esta é a minha cinco principais técnicas de classificação:

  1. Árvore de Decisão;
  2. Classificadores baseados em regras;
  3. SMO (SVM);
  4. Baías ingénuas;
  5. Redes neurais.

4
-1 Fluxo de trabalho absolutamente incorreto para grandes p pequenos n, o sobreajuste do FS é garantido.

11
O kNN não é um aluno preguiçoso, e não um aluno ansioso (como você realmente não faz nada até precisar fazer quando um padrão de classificação aparece)? Qualquer pré-processamento que você faça antes de aplicar o classificador provavelmente terá um efeito maior no desempenho do que a diferença entre os classificadores; a seleção de recursos é especialmente difícil (facilmente leva ao ajuste excessivo), e métodos como o SVM com regularização costumam ter um desempenho melhor sem a seleção de recursos. Eu certamente não recomendaria redes neurais, muitas armadilhas potenciais.
Dikran Marsupial
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.