
Em estatística, os classificadores naive Bayes (em português, também Bayes ingênuo; na literatura em inglês, também chamados simple Bayes, independence Bayes ou idiot's Bayes) são uma família de classificadores probabilísticos que supõem que os atributos são condicionalmente independentes dada a classe.:p. 385–386:seç. 13.2, p. 258, e seç. 13.4, p. 268 Em outras palavras, o modelo supõe que, uma vez conhecida a classe, o valor de um atributo não traz nenhuma informação adicional sobre os valores dos demais. Essa suposição de independência condicional raramente é verdadeira na prática, e é por ela ser tão "ingênua" (naive, em inglês) que o classificador recebe esse nome.:p. 385–387:p. 104:seç. 13.4, p. 268 Representado como rede bayesiana, o classificador tem a estrutura mais simples possível: a classe é o único pai de cada atributo, e não há arestas entre os atributos.:p. 132–134 (fig. 1):seç. "Naive Bayes and Augmented Naive Bayes"
Em comparações empíricas extensas, o naive Bayes costuma ficar atrás de outros métodos, inclusive da regressão logística quando há dados de treinamento suficientes, sobretudo na qualidade das probabilidades estimadas: por causa da suposição de independência, ele tende a empurrar as probabilidades previstas para perto de 0 ou de 1, ou seja, a ser confiante demais.:tab. 2 e seç. 7:resumo e seç. 4:p. 388 No entanto, esses classificadores são altamente escaláveis: o número de parâmetros cresce apenas linearmente com o número de atributos (é proporcional ao número de atributos vezes o número de classes), e tanto o treinamento quanto a classificação exigem uma única passagem pelos dados.:p. 261–262, 267 e 270:p. 118 e 127 O treinamento por máxima verossimilhança tem solução em forma fechada: basta contar as observações de cada classe e de cada valor de atributo em cada classe. Já o modelo discriminativo correspondente, a regressão logística, não tem solução em forma fechada conhecida e exige otimização numérica iterativa.:eqs. 13.5–13.6, p. 259:p. 133:p. 271:p. 391
Apesar do uso do teorema de Bayes na regra de decisão, o naive Bayes não é necessariamente um método bayesiano no sentido estatístico, e seus modelos podem ser ajustados aos dados tanto por métodos bayesianos quanto frequencistas.:p. 387 e 391
O naive Bayes é uma técnica simples para construir classificadores: modelos que atribuem rótulos de classe a instâncias de um problema, representadas como vetores de valores de atributos, em que os rótulos de classe pertencem a um conjunto finito. Não há um único algoritmo para treinar esses classificadores, mas uma família de algoritmos baseados num princípio comum: todos os classificadores naive Bayes supõem que, dada a variável de classe, o valor de um atributo é independente do valor de qualquer outro atributo. Por exemplo, uma fruta pode ser considerada uma maçã se for vermelha, redonda e tiver cerca de 10 cm de diâmetro. Um classificador naive Bayes considera que cada uma dessas características contribui de forma independente para a probabilidade de a fruta ser uma maçã, ignorando possíveis correlações entre cor, formato e diâmetro dentro de cada classe.:p. 386:seç. 13.2–13.3, p. 258, e seç. 13.4, p. 268
Em muitas aplicações práticas, os parâmetros dos modelos naive Bayes são estimados por máxima verossimilhança (frequências relativas), muitas vezes com suavização; ou seja, é possível trabalhar com o modelo naive Bayes sem aceitar a probabilidade bayesiana nem usar métodos bayesianos.:eqs. 13.5–13.7, p. 259–260:p. 387
Apesar do desenho ingênuo e das suposições aparentemente simplificadas demais, os classificadores naive Bayes funcionam bem em muitas situações reais complexas. Em 1997, Domingos e Pazzani mostraram que o classificador pode ser ótimo sob perda 0-1 mesmo quando a suposição de independência é fortemente violada; em 2004, Zhang mostrou que o que importa é como as dependências entre os atributos se distribuem entre as classes: se elas se distribuem por igual entre as classes ou se cancelam, o naive Bayes continua ótimo.:p. 103:p. 395:resumo e teoremas 1–3 Ainda assim, uma comparação empírica de 2006 entre dez algoritmos, em onze problemas de classificação binária e oito métricas, mostrou que o naive Bayes é superado por outras abordagens, como as árvores de decisão impulsionadas (boosted trees; ver gradient boosting) e as florestas aleatórias.:seç. 1–2, tab. 2 e 4 e seç. 7
Uma vantagem do naive Bayes é precisar de relativamente poucos dados de treinamento para estimar seus parâmetros: como estima poucos parâmetros, pode superar alternativas mais flexíveis com amostras pequenas, e se aproxima do seu erro assintótico com um número de exemplos da ordem de , sendo o número de atributos, contra a ordem de da regressão logística.:p. 387–389:seç. 3–4
Em termos abstratos, o naive Bayes é um modelo de probabilidade condicionada: atribui probabilidades a cada uma das classes possíveis , dada uma instância a classificar, representada por um vetor de atributos (variáveis independentes).:eq. 13.2, p. 258:p. 103–104
Se o número de atributos for grande, ou se um atributo puder assumir muitos valores, é inviável basear esse modelo em tabelas de probabilidade. Por isso, o modelo é reformulado para ficar mais tratável. Pelo teorema de Bayes, a probabilidade condicional pode ser decomposta como Na terminologia da probabilidade bayesiana, essa equação pode ser escrita como Na prática, interessa apenas o numerador dessa fração, porque o denominador não depende de e os valores dos atributos são dados, de modo que o denominador é efetivamente constante.:seç. 13.4, eqs. 13.9–13.10, p. 265–266, e eq. 11.4, p. 220:seç. 1.2, eqs. 1.12–1.13, p. 15, e eq. 1.44, p. 22:p. 104
O numerador equivale ao modelo de probabilidade conjunta que pode ser reescrito pela regra da cadeia, aplicando repetidamente a definição de probabilidade condicionada: Entram então as suposições "ingênuas" de independência condicional: supõe-se que todos os atributos de são mutuamente independentes, condicionalmente à categoria . Sob essa suposição, Assim, o modelo conjunto pode ser expresso como em que indica proporcionalidade, já que o denominador foi omitido.:eq. 11.1, p. 220; eq. 12.4, p. 240; eqs. 13.13–13.14, p. 266:eq. 1.11, p. 14:p. 104, eq. 2:p. 386
Isso significa que, sob essas suposições de independência, a distribuição condicional da variável de classe é em que a evidência é um fator de escala que depende apenas de , isto é, uma constante se os valores dos atributos forem conhecidos.:eq. 1.13, p. 15:eq. 11.4, p. 220
Muitas vezes, basta discriminar entre as classes. Nesse caso, o fator de escala é irrelevante, e basta calcular a log-probabilidade a menos de uma constante: O fator de escala é irrelevante porque se cancela na comparação entre classes: Trabalhar com logaritmos tem duas vantagens: evita o underflow (subfluxo) de ponto flutuante causado pelo produto de muitas probabilidades pequenas e permite ler cada termo como um peso que indica quanto o atributo favorece a classe; a soma dos pesos mede a evidência a favor de cada classe.:seç. 13.2, eq. 13.4, p. 258–259, e seç. 14.4, eq. 14.5, p. 302–303
A discussão até aqui derivou o modelo de atributos independentes, isto é, o modelo probabilístico naive Bayes. O classificador naive Bayes combina esse modelo com uma regra de decisão. Uma regra comum é escolher a hipótese mais provável, de modo a minimizar a probabilidade de classificação errada; ela é conhecida como regra de decisão máximo a posteriori (MAP). O classificador correspondente, um classificador bayesiano, atribui o rótulo de classe para o dado por:p. 103–104, eq. 2:eq. 13.3, p. 258

A probabilidade a priori de uma classe pode ser calculada supondo classes equiprováveis, isto é, , ou estimada a partir do conjunto de treinamento::seç. 13.2, eq. 13.5, p. 259:seç. 2.2 Para estimar os parâmetros da distribuição de um atributo, é preciso supor uma distribuição ou gerar modelos não paramétricos para os atributos a partir do conjunto de treinamento.:resumo, seç. 2–3
As hipóteses sobre a distribuição dos atributos são chamadas de "modelo de evento" do classificador naive Bayes. Para atributos discretos, como os da classificação de documentos (inclusive a filtragem de spam), são comuns as distribuições multinomial e de Bernoulli. Essas hipóteses levam a dois modelos distintos, ambos chamados de "naive Bayes", o que gerou confusão na literatura.:introdução e seç. "Multi-variate Bernoulli Model" e "Multinomial Model":resumo e seç. 1
Com dados contínuos, uma hipótese comum é que os valores contínuos associados a cada classe seguem uma distribuição normal (gaussiana). Suponha, por exemplo, que os dados de treinamento contenham um atributo contínuo . Primeiro, separam-se os dados por classe e calculam-se, em cada classe, a média e a variância de , estimadas a partir dos dados de treinamento. Sejam a média dos valores de associados à classe e a variância desses valores. Suponha que se tenha observado um valor . Então a densidade de probabilidade de dada a classe , , pode ser calculada substituindo na equação de uma distribuição normal de parâmetros e ::seç. 2, eqs. 2–3, p. 339:seç. 2.4:seç. 2
Outra técnica comum para valores contínuos é discretizá-los, agrupando-os em intervalos (binning), o que gera novos atributos categóricos (ou binários, um indicador por intervalo). A discretização não é obrigatória, pois é possível modelar diretamente a densidade de cada atributo, por exemplo com uma normal ou por estimativa de densidade por núcleo. Além disso, ela pode perder informação discriminativa, já que deixa de distinguir valores dentro de um mesmo intervalo.:resumo e seç. 2–3:p. 39 e seç. 3, p. 43
Às vezes, a distribuição das densidades marginais condicionadas à classe está longe da normal. Nesses casos, pode-se usar a estimativa de densidade por núcleo para obter estimativas mais realistas das densidades marginais de cada classe. Nos experimentos de John e Langley, que propuseram esse método em 1995, ele aumentou significativamente a acurácia do classificador em 5 dos 11 domínios testados e a reduziu em 2.:seç. 1 e 3 (eq. 4), seç. 5.1 e tab. 2
Com um modelo de evento multinomial, as amostras (vetores de atributos) representam as frequências com que certos eventos foram gerados por uma distribuição multinomial , em que é a probabilidade de ocorrer o evento (ou multinomiais desse tipo, no caso de várias classes). Um vetor de atributos é então um histograma, em que conta o número de vezes que o evento foi observado numa instância. Esse é o modelo de evento usado tipicamente na classificação de documentos, em que os eventos representam a ocorrência de uma palavra num documento (ver modelo saco de palavras).:seç. "Multinomial Model":seç. 13.2, p. 258, e seç. 13.4, p. 265–267 A verossimilhança de observar um histograma é dada por:seç. 2.1, eq. 1 em que .
Expresso no espaço logarítmico, o classificador naive Bayes multinomial torna-se um classificador linear: em que , e não depende da classe. Fazer os cálculos com somas de logaritmos, em vez de produtos de probabilidades, é vantajoso porque multiplicar muitas probabilidades pequenas pode causar subfluxo (underflow) de ponto flutuante.:seç. 2.1 (eq. 3) e 2.2 (eq. 5):seç. 13.2, eqs. 13.3–13.4, p. 258–259, e seç. 14.4, p. 302–303
Se uma dada classe e um dado valor de atributo nunca ocorrem juntos nos dados de treinamento, a estimativa de probabilidade baseada em frequências será zero, porque é diretamente proporcional ao número de ocorrências do valor do atributo. Isso é problemático, porque, ao multiplicar as probabilidades, anula toda a informação das demais. Por isso, incorpora-se a todas as estimativas uma pequena correção, chamada pseudocontagem (ocorrências fictícias somadas a cada contagem), de modo que nenhuma probabilidade seja exatamente zero. Quando a pseudocontagem é 1, essa forma de regularização do naive Bayes chama-se suavização de Laplace (add-one); com um valor genérico, chama-se suavização aditiva, procedimento que remonta a Lidstone (1920).:seç. 13.2, eq. 13.7, p. 259–260:seç. 2.2, eq. 4:seç. 2, eq. 2
Rennie e colaboradores discutem problemas da hipótese multinomial na classificação de documentos e formas de atenuá-los, como o uso de pesos tf–idf em vez das frequências brutas dos termos e a normalização pelo comprimento do documento, obtendo um classificador naive Bayes competitivo com as máquinas de vetores de suporte na maioria dos conjuntos de dados testados.:resumo, seç. 3–4 e tab. 3–4
No modelo de evento de Bernoulli multivariado, os atributos são variáveis booleanas (binárias) independentes que descrevem as entradas. Como o multinomial, esse modelo é popular em tarefas de classificação de documentos, em que se usam atributos binários de ocorrência dos termos, e não suas frequências. Se é um booleano que indica a ocorrência ou a ausência do -ésimo termo do vocabulário, a verossimilhança de um documento dada a classe é:seç. "Multi-variate Bernoulli Model", eq. 2:seç. 13.3, p. 263–264, e eq. 13.14, p. 266:seç. 2.1 em que é a probabilidade de um documento da classe conter o -ésimo termo do vocabulário. Esse modelo de evento costuma funcionar melhor com documentos curtos e com poucos atributos (vocabulário pequeno) e tem a vantagem de modelar explicitamente a ausência de termos. Um classificador naive Bayes com modelo de evento de Bernoulli não é o mesmo que um classificador multinomial com as contagens de frequência truncadas em 1.:seç. 13.3, p. 264, e tab. 13.3, p. 268:introdução e discussão:seç. 2.3
Dado um modo de treinar um classificador naive Bayes com dados rotulados, é possível construir um algoritmo de treinamento semissupervisionado, que aprende com uma combinação de dados rotulados e não rotulados, executando o algoritmo de aprendizagem supervisionada em ciclo::seç. 5.1, p. 111–112, e tab. 1, p. 113
A convergência é verificada pela melhora da log-probabilidade do modelo dados os dados, que deve deixar de crescer acima de um limiar.:seç. 5.1, p. 111–112, e tab. 1, p. 113
Esse algoritmo de treinamento é uma instância do algoritmo de maximização de expectativa (EM): a predição dentro do ciclo é o passo E do EM, e o retreinamento do naive Bayes é o passo M. O procedimento justifica-se formalmente ao supor que os dados são gerados por um modelo de mistura cujos componentes correspondem exatamente às classes do problema de classificação.:seç. 3, p. 107, e seç. 5.1, p. 111–112
Embora as amplas suposições de independência muitas vezes não sejam exatas, o classificador naive Bayes tem várias propriedades que o tornam surpreendentemente útil na prática. Em particular, como as distribuições dos atributos condicionadas à classe são desacopladas, cada uma pode ser estimada separadamente como uma distribuição unidimensional. Isso reduz em várias ordens de grandeza o número de parâmetros, que sem a suposição de independência cresceria exponencialmente com o número de atributos, e com ele a quantidade de dados necessária.:p. 386–389:seç. 13.4, p. 265–268
Embora o naive Bayes muitas vezes não produza boas estimativas das probabilidades das classes, isso pode não ser necessário em muitas aplicações. Por exemplo, o classificador toma a decisão correta pela regra MAP desde que a classe à qual ele atribui a maior probabilidade seja a mesma de maior probabilidade verdadeira, quer a estimativa de probabilidade seja ligeiramente imprecisa, quer grosseiramente imprecisa. Desse modo, o classificador como um todo pode ser robusto o bastante para ignorar deficiências sérias do modelo probabilístico ingênuo em que se baseia.:p. 113:tab. 13.4, p. 269:resumo e seç. 4
No caso de entradas discretas (atributos indicadores ou de frequência para eventos discretos), os classificadores naive Bayes formam um par gerativo-discriminativo com os classificadores de regressão logística multinomial: cada classificador naive Bayes pode ser visto como uma forma de ajustar um modelo probabilístico que otimiza a verossimilhança conjunta , enquanto a regressão logística ajusta o mesmo modelo probabilístico para otimizar a condicional .:seç. 1
Mais formalmente, os classificadores naive Bayes com atributos binários estão contidos na classe dos classificadores de regressão logística.:p. 267 e 277–280 (teoremas 2–3):p. 391
Considere um problema genérico de classificação com classes, , e atributos binários . O classificador de Bayes (não ingênuo) dá, pelo teorema de Bayes, O classificador naive Bayes dá em que Isso equivale a , com e , que é exatamente um classificador de regressão logística (multinomial).
A ligação entre os dois fica clara ao observar que a função de decisão do naive Bayes (no caso binário) pode ser reescrita como "preveja a classe se for maior que ", isto é, se a chance (odds) a favor de for maior que 1. No espaço logarítmico, isso dá O lado esquerdo dessa equação é o logaritmo da chance (log-odds), ou logit, a quantidade prevista pelo modelo linear subjacente à regressão logística. Como o naive Bayes também é um modelo linear para os dois modelos de evento "discretos", ele pode ser reparametrizado como uma função linear . Obter as probabilidades é então questão de aplicar a função logística a ou, no caso de várias classes, a função softmax.:seç. 14.4, eqs. 14.3 e 14.5, p. 301–303:seç. 2–3:eq. 8, p. 275
Num par gerativo-discriminativo, o classificador discriminativo tem erro assintótico menor ou igual ao do gerativo; assim, com muitos dados, a regressão logística tende a superar o naive Bayes. Ng e Jordan mostraram, porém, que o naive Bayes se aproxima do seu erro assintótico (mais alto) muito mais depressa, com um número de exemplos da ordem de em vez de , e que, em vários conjuntos de dados reais, ele supera a regressão logística quando há poucos exemplos de treinamento.:seç. 1, 3 (prop. 1–2, corolário 6) e 4 (fig. 1)
Problema: classificar se uma pessoa é do sexo masculino ou feminino com base em características medidas: altura, peso e tamanho do pé. Embora o classificador naive Bayes as trate como independentes, na realidade elas não são.:p. 386:seç. 2, eqs. 1–3, p. 339
| Pessoa | altura (pés) | peso (libras) | tamanho do pé (polegadas) |
|---|---|---|---|
| masculino | 6 | 180 | 12 |
| masculino | 5,92 (5'11") | 190 | 11 |
| masculino | 5,58 (5'7") | 170 | 12 |
| masculino | 5,92 (5'11") | 165 | 10 |
| feminino | 5 | 100 | 6 |
| feminino | 5,5 (5'6") | 150 | 8 |
| feminino | 5,42 (5'5") | 130 | 7 |
| feminino | 5,75 (5'9") | 150 | 9 |
O classificador obtido do conjunto de treinamento supondo distribuições gaussianas seria o da tabela abaixo. Neste exemplo, as variâncias foram estimadas com a correção de Bessel (divisor ), isto é, são variâncias amostrais não enviesadas.:seç. 2, eqs. 2–3, p. 339:seç. 2.4
| Pessoa | média (altura) | variância (altura) | média (peso) | variância (peso) | média (tamanho do pé) | variância (tamanho do pé) |
|---|---|---|---|---|---|---|
| masculino | 5,855 | 3,5033 × 10−2 | 176,25 | 122,92 | 11,25 | 9,1667 × 10−1 |
| feminino | 5,4175 | 9,7225 × 10−2 | 132,5 | 558,33 | 7,5 | 1,6667 |
O exemplo supõe classes equiprováveis, de modo que P(masculino) = P(feminino) = 0,5. Essa distribuição a priori poderia se basear no conhecimento das frequências na população maior ou no conjunto de treinamento.:seç. 13.2, eq. 13.5, p. 259:seç. 2.2
| Pessoa | altura (pés) | peso (libras) | tamanho do pé (polegadas) |
|---|---|---|---|
| amostra | 6 | 130 | 8 |
Para classificar a amostra, é preciso determinar qual posteriori é maior, a de masculino ou a de feminino. Para a classificação como masculino, a posteriori é dada por Para a classificação como feminino, a posteriori é dada por A evidência (também chamada de constante de normalização) pode ser calculada: No entanto, dada a amostra, a evidência é uma constante e escala igualmente as duas posterioris. Por isso, não afeta a classificação e pode ser ignorada.:seç. 13.4, eqs. 13.9–13.10, p. 265:eqs. 1.12–1.13, p. 15
A distribuição de probabilidade do sexo da amostra pode agora ser determinada: em que e são os parâmetros da distribuição normal determinados antes a partir do conjunto de treinamento. Um valor maior que 1 é aceitável aqui: trata-se de uma densidade de probabilidade, e não de uma probabilidade, porque a altura é uma variável contínua.:seç. 2, eq. 3, p. 339:seç. 2.2
Como o numerador da posteriori é maior no caso feminino, a previsão é que a amostra seja do sexo feminino.:eq. 13.3, p. 258:p. 103–104, eq. 2
Segue um exemplo resolvido de classificação naive Bayes aplicada ao problema de classificação de documentos. Considere o problema de classificar documentos pelo conteúdo, por exemplo em e-mails de spam e e-mails legítimos. Imagine que os documentos sejam extraídos de várias classes de documentos que podem ser modeladas como conjuntos de palavras, em que a probabilidade (independente) de a -ésima palavra de um documento ocorrer num documento da classe pode ser escrita como Para simplificar, supõe-se ainda que as palavras estão distribuídas aleatoriamente no documento, isto é, que não dependem do comprimento do documento, da posição no documento em relação a outras palavras nem de outro contexto do documento.:seç. 13.2, eq. 13.2, p. 258, e seç. 13.4, p. 267–268:seç. "Probabilistic Classification", eqs. 1–2
Então a probabilidade de um dado documento conter todas as palavras , dada uma classe , é A pergunta a responder é: "qual é a probabilidade de um dado documento pertencer a uma dada classe ?" Em outras palavras, quanto vale ? Por definição de probabilidade condicionada, e O teorema de Bayes transforma essas expressões num enunciado de probabilidade em termos de verossimilhança: Suponha, por ora, que haja apenas duas classes mutuamente exclusivas, e (por exemplo, spam e não spam), de modo que todo elemento (e-mail) pertença a uma ou a outra: e Usando o resultado bayesiano acima, pode-se escrever Dividindo uma pela outra, obtém-se que pode ser refatorado como Assim, a razão de probabilidades pode ser expressa como um produto de razões de verossimilhança.:seç. 13.2, eq. 13.2, p. 258, e seç. 14.4, eq. 14.5, p. 302–303:seç. 2, eq. 2:seç. "Probabilistic Classification", eqs. 1–2
Tomando o logaritmo de todas essas razões, obtém-se Como e são mutuamente exclusivas e exaustivas, , e é a função logística (sigmoide) desse logaritmo da razão; ver também logit.:seç. 3.1, eq. 8:seç. 14.4, eq. 14.5, p. 302–303
Por fim, o documento pode ser classificado da seguinte forma: é spam se , isto é, se ; caso contrário, não é spam. Na prática, pode-se exigir um limiar mais alto: Sahami e colaboradores, por exemplo, só classificavam uma mensagem como spam quando sua probabilidade de ser spam passava de 99,9%.:seç. 14.4, eq. 14.5, p. 302–303:seç. 2, eq. 2:seç. "Results – Using Domain-Specific Features"
Os classificadores naive Bayes são uma técnica estatística popular de filtragem de e-mails. Costumam usar atributos do tipo saco de palavras para identificar spam, abordagem comum na classificação de textos. Eles funcionam correlacionando o uso de tokens (normalmente palavras, às vezes outros elementos) com mensagens de spam e legítimas e, depois, usando o teorema de Bayes para calcular a probabilidade de um e-mail ser ou não spam.:seç. 1–2:seç. 3.1:seç. 13.4
Um filtro de spam naive Bayes pode ser personalizado: é treinado com as mensagens legítimas e indesejadas de cada usuário.:introdução, p. 55 Como os usuários toleram muito mal que mensagens legítimas sejam marcadas como spam, esses filtros costumam ser ajustados para reduzir os falsos positivos.:seç. "Results – Using Domain-Specific Features":seç. 1–2:seç. 4.2 Em avaliações publicadas, filtros bayesianos classificaram como spam cerca de 1% das mensagens legítimas ou menos: 1,16% no SpamCop de Pantel e Lin e 0,08% no Bogofilter.:resumo:tab. III–IV
Algoritmos bayesianos já eram usados na filtragem de e-mail em 1996, quando começou a ser desenvolvido o ifile, programa que organizava mensagens em pastas com o classificador naive Bayes.:seç. 3 O naive Bayes foi proposto para a filtragem de spam em 1998, em dois trabalhos apresentados no workshop Learning for Text Categorization da AAAI: o de Sahami, Dumais, Heckerman e Horvitz e o de Pantel e Lin (programa SpamCop).:seç. 3.2.1:seç. 1 Os filtros bayesianos, porém, só se difundiram depois do ensaio A Plan for Spam, de Paul Graham (2002).:seç. 3.2.1:seç. 5 e 9
Variantes da técnica foram implementadas em diversos trabalhos de pesquisa e em produtos de software comerciais e de código aberto.:seç. 1 e nota 2:seç. 4 e tab. 3 Alguns clientes de e-mail, como o Mozilla Thunderbird, têm um filtro adaptativo baseado em Bayes, treinado com as mensagens que o usuário marca como spam ou não spam. O usuário também pode instalar programas de filtragem à parte, como o SpamBayes, filtro estatístico (comumente chamado de bayesiano) que funciona como complemento do Microsoft Outlook ou como proxy POP3/IMAP.:seç. 4 e tab. 3
Filtros de e-mail do lado do servidor, como o DSPAM, o Rspamd, o SpamAssassin, o Bogofilter e o ASSP, usam técnicas de filtragem bayesiana de spam,:seç. 5 e essa funcionalidade às vezes vem embutida no próprio software do servidor de correio, como no MDaemon.
O CRM114, às vezes descrito como filtro bayesiano, não usa por padrão palavras isoladas como atributos: seus classificadores usam combinações de várias palavras.:seç. 5:seç. 4.1–4.2 A opção unigram, que restringe os atributos a palavras isoladas e transforma o CRM114 num classificador bayesiano convencional, foi incluída para permitir a comparação direta com esses classificadores.
A probabilidade de uma mensagem que contém uma dada palavra ser spam (a "spamicidade" da palavra) é estimada a partir das frequências observadas na fase de aprendizagem.:seç. "Generating Word Probabilities" Caso uma palavra nunca tenha aparecido nessa fase, o numerador e o denominador são ambos iguais a zero, tanto na fórmula geral quanto na da spamicidade. O programa pode descartar essas palavras, para as quais não há informação disponível, como faz o classificador naive Bayes de texto usual, que só usa os termos do vocabulário extraído do treinamento, ou atribuir a elas uma probabilidade padrão, como faz o Bogofilter.:seç. 13.2:seç. "Dealing with Rare Words"
De modo mais geral, as palavras encontradas poucas vezes na fase de aprendizagem também causam problema, porque seria um erro confiar cegamente na informação que fornecem. Uma solução simples é não levar em conta também essas palavras pouco confiáveis.:seç. "Dealing with Rare Words":seç. 3.2.1, p. 185
Aplicando novamente o teorema de Bayes e supondo que a classificação, como spam ou legítimo, dos e-mails que contêm uma dada palavra seja uma variável aleatória binomial com distribuição a priori beta, alguns programas usam uma probabilidade corrigida: em que
Robinson sugere começar com e e ajustar os valores por testes. A probabilidade corrigida substitui a spamicidade na fórmula de combinação. A fórmula vale também para , quando a spamicidade é indefinida, e nesse caso resulta em .:seç. "Dealing with Rare Words" e "Combining the Probabilities" O Bogofilter, por exemplo, expõe e como os parâmetros robx e robs.
Palavras "neutras", como "the", "a", "some" ou "is" (em inglês), ou suas equivalentes em outras línguas, podem ser ignoradas; elas são conhecidas como palavras vazias (stop words).:seç. 2.2.2:seç. 3.2.1, p. 374 Ainda assim, não está claro que esse tipo de seleção ajude na filtragem de spam.:seç. 3.2.8, p. 379:p. 184 De modo mais geral, alguns filtros bayesianos ignoram as palavras cuja spamicidade fica perto de 0,5, porque contribuem pouco para uma boa decisão; o Bogofilter, por exemplo, só usa as palavras mais afastadas de 0,5 do que um valor mínimo configurável. Contam as palavras com spamicidade próxima de 0,0 (sinais característicos de mensagens legítimas) ou de 1,0 (sinais característicos de spam). Um método possível é manter apenas as palavras da mensagem examinada com maior valor de ; o SpamProbe, por exemplo, usa 27 palavras por padrão.:seç. "Variable Sized Terms Array"
Alguns programas levam em conta que uma palavra aparece várias vezes na mensagem examinada, como o SpamProbe;:seç. "Within Document Frequency (Repeats)" outros não. Na literatura, a variante multinomial com frequência de termos conta as repetições, enquanto as variantes booleana e de Bernoulli consideram apenas a presença da palavra.:seç. 4.2–4.5, p. 187–189
Alguns programas usam como unidades sequências de palavras, em vez de palavras isoladas. O SpamProbe usa por padrão pares de palavras e permite frases mais longas, que aumentam a base de dados.:seç. "Word Pairs" O CRM114 introduziu o hashing polinomial binário esparso (SBPH), que desliza uma janela de palavras sobre o texto e gera, para cada posição, atributos que combinam as palavras da janela.:seç. 4.1 Atributos desse tipo captam informação de contexto que o modelo de saco de palavras não capta, à custa de muito mais atributos.:seç. 3.2.4, p. 376 Com pares esparsos dentro de uma janela de cinco palavras, Siefkes e colaboradores obtiveram resultados significativamente melhores que com palavras isoladas.:seç. 5.5
Dependendo da implementação, a filtragem bayesiana de spam pode ser vulnerável a ataques em que o spammer acrescenta palavras inócuas à mensagem para baixar sua pontuação de spam. Num experimento, o ataque com palavras comuns do inglês afetou o SpamBayes, mas não o CRM114.:seç. 3.4 e 4 Os ataques mais eficazes usam palavras típicas de mensagens legítimas, como as mais frequentes em textos noticiosos.:seç. 2, p. 1117 Com 150 palavras ou menos, metade do spam antes bloqueado passou pelos filtros testados; palavras aleatórias de dicionário, ao contrário, deixaram as mensagens com mais cara de spam.:resumo e seç. 3.3 Mensagens assim também podem servir para "envenenar" o filtro, comprometendo a detecção de spam no futuro.:seç. 1.2.4, p. 342
Os spammers também podem deformar palavras que costumam aparecer em grande quantidade no spam (por exemplo, "viagra" → "v1@gra" ou "v-i-a-g-r-a"). O destinatário continua lendo as palavras alteradas, mas, como as variantes possíveis são praticamente ilimitadas, é improvável que o filtro veja, e portanto aprenda, todas elas.:seç. 1 Isso pode levar um filtro baseado em palavras a errar.:seç. 7.3, p. 1138 Por outro lado, o filtro aprende as variantes que aparecem no treinamento, e a própria ofuscação deliberada é forte indício de spam.:seç. 1 e 5
Outra técnica para tentar driblar os filtros bayesianos é substituir o texto por imagens. Os filtros que analisam apenas o texto não conseguem ler o conteúdo das imagens, o que pode torná-los ineficazes.:seç. 1–2, p. 2700–2703:seç. 1 Alguns filtros tendem a classificar como spam mensagens compostas sobretudo de imagens, com pouco texto: o SpamAssassin, por exemplo, tem regras que somam pontos a mensagens HTML com imagens e pouco texto ou com pouca área de texto em relação à área de imagens. Uma contramedida proposta é extrair, por reconhecimento ótico de caracteres (OCR), o texto embutido nas imagens e submetê-lo às mesmas técnicas de categorização de texto usadas no corpo da mensagem.:resumo e seç. 1–2