Por que os classificadores bayesianos ingênuos têm um desempenho tão bom?


38

Os classificadores Naive Bayes são uma escolha popular para problemas de classificação. Existem muitas razões para isso, incluindo:

  • "Zeitgeist" - amplo conhecimento após o sucesso dos filtros de spam, cerca de dez anos atrás
  • Fácil de escrever
  • O modelo do classificador é rápido de construir
  • O modelo pode ser modificado com novos dados de treinamento sem precisar reconstruir o modelo

No entanto, eles são "ingênuos" - isto é, assumem que os recursos são independentes - isso contrasta com outros classificadores, como os classificadores Maximum Entropy (que são lentos na computação).

Normalmente, a suposição de independência não pode ser assumida e, em muitos casos (incluindo a maioria?), Incluindo o exemplo de filtro de spam, ela está simplesmente errada.

Então, por que o Naive Bayes Classifier ainda funciona muito bem nessas aplicações, mesmo quando os recursos não são independentes um do outro?

Respostas:


23

Este artigo parece provar (não consigo seguir a matemática) que bayes é bom não apenas quando os recursos são independentes, mas também quando as dependências dos recursos são semelhantes entre os recursos:

Neste artigo, propomos uma nova explicação sobre o excelente desempenho de classificação de Bayes ingênuo. Mostramos que, essencialmente, a distribuição de dependência; ou seja, como a dependência local de um nó se distribui em cada classe, de maneira uniforme ou desigual, e como as dependências locais de todos os nós trabalham juntas, de forma consistente (suportando uma certa classificação) ou inconsistentemente (cancelando uma à outra), desempenha um papel crucial. Portanto, não importa quão fortes sejam as dependências entre os atributos, Bayes ingênuo ainda pode ser ótimo se as dependências distribuírem uniformemente nas classes ou se as dependências se cancelarem.


1
Qualitativamente, isso faz sentido. Recursos dependentes resultarão em ponderação - portanto, uma distribuição uniforme ou cancelada cancelará essa ponderação. No entanto, as dependências "unilaterais" provavelmente terão um desempenho fraco ainda? Acho que para o exemplo de spam, devemos esperar muitas dependências para os recursos + spam, mas não necessariamente os recursos -spam no caso geral. No entanto, uma pessoa pode receber muitos emails legítimos sobre um tópico específico, portanto, nesse caso, haveria muitos recursos dependentes - o que equilibraria os recursos de + spam.
winwaed

3
Eu também recomendo este documento: cs.stanford.edu/people/ang/papers/…
Dov

25

A maioria dos problemas de aprendizado de máquina é fácil!

Veja, por exemplo, o blog de John Langford . O que ele realmente está dizendo é que o ML facilita os problemas, e isso representa um problema para os pesquisadores em termos de se eles devem tentar aplicar métodos a uma ampla gama de problemas simples ou atacar problemas mais difíceis. No entanto, o subproduto é que, para muitos problemas, os dados são Separáveis ​​Linearmente (ou pelo menos quase), caso em que qualquer classificador linear funcionará bem! Acontece que os autores do papel de filtro de spam original optaram por usar o Naive Bayes, mas eles usaram um Perceptron, SVM, Fisher Discriminant Analysis, Logistic Regression, AdaBoost ou praticamente qualquer outra coisa que provavelmente teria funcionado também.

O fato de ser relativamente fácil codificar o algoritmo ajuda. Por exemplo, para codificar o SVM, você precisa ter um QP Solver ou codificar o algoritmo SMO, que não é uma tarefa trivial. Obviamente, você poderia baixar o libsvm, mas nos primeiros dias essa opção não estava disponível. No entanto, existem muitos outros algoritmos simples (incluindo o Perceptron mencionado acima) que são tão fáceis de codificar (e permitem atualizações incrementais quanto a pergunta).

Para problemas não lineares difíceis, é claro que são necessários métodos que possam lidar com os não lineares. Mas mesmo isso pode ser uma tarefa relativamente simples quando os Métodos do Kernel são empregados. A questão geralmente se torna "Como faço para projetar uma função eficaz do kernel para meus dados" em vez de "Qual classificador devo usar".


Eu acho que "fácil" talvez seja relativo, mas sim a classificação de spam é "mais fácil" do que eu acho que a maioria das pessoas assumiu há 12 anos. Os métodos do kernel podem ser uma abordagem para produzir um classificador rápido e simples, mas "Como faço para projetar uma função eficaz do kernel para meus dados" parece que parte do aprendizado de máquina se torna "aprendizado humano" (por exemplo, encontrar melhor entendimento dos dados e suas inter-relações)?
winwaed

1
Sim, é relativo, e também existem muitos problemas, então ainda existem muitos problemas por aí! E acho que a fronteira entre ML e aprendizado humano é sempre embaçada ... se você está criando um modelo probabilístico super sofisticado, está fazendo a mesma coisa. A boa e velha NFLT nos diz que um método não pode resolver todos os problemas, por mais intrincado que seja esse método, portanto sempre precisaremos de seres humanos para projetar modelos / kernels / algoritmos ou o que for necessário para aproveitar melhor seus dados.
tdc 9/02/12

verdade - definitivamente uma linha embaçada!
winwaed

1
Por que o voto negativo? Gostaria de comentar?
tdc

7

Tendo usado extensivamente os classificadores Naive Bayesian em ferramentas de classificação por segmentação, minha experiência é consistente com artigos publicados que mostram que a NBC é comparável em precisão a discriminante linear e CART / CHAID quando todas as variáveis ​​preditivas estão disponíveis.

(Por precisão, a "taxa de acertos" em prever a solução correta como a mais provável, bem como a calibração, significam que, digamos, uma estimativa de associação de 75% está correta em 70% a 80% dos casos.

Meus dois centavos é que a NBC funciona tão bem porque:

  • A inter-correlação entre variáveis ​​preditivas não é tão forte quanto se pensa (pontuações de informações mútuas de 0,05 a 0,15 são típicas)
  • A NBC pode lidar bem com variáveis ​​politômicas discretas, não exigindo dicotomização grosseira ou tratamento de variáveis ​​ordinais como cardeais.
  • A NBC usa todas as variáveis ​​simultaneamente, enquanto o CART / CHAID usa apenas algumas

E é aí que todas as variáveis ​​são observadas. O que faz a NBC realmente se afastar do pacote é que ela se degrada normalmente quando uma ou mais variáveis ​​preditivas estão ausentes ou não são observadas. CART / CHAID e análise discriminante linear param nesse caso.

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.