Pergunta ingênua sobre modelagem Naive Bayes

Sep 27 2020

Nos classificadores Naive Bayes, calcula-se uma tabela de frequência para determinar uma previsão. Um exemplo clássico, calcula-se a tabela de frequência de palavras dado o contexto de spam ou presunto. Por exemplo, P( viagra | spam )qual é a probabilidade de que, dado um conjunto de treinamento com mensagens de spam identificadas, com que freqüência o viagra aparece nessas mensagens de spam.

Por que não calcular simplesmente P(spam | viagra)diretamente do conjunto de treinamento? Veja a palavra viagra, que porcentagem das vezes ela aparece em mensagens de spam?

Qual é o benefício obtido ao fazer a contagem de frequência da primeira maneira?

A próxima etapa da combinação das probabilidades individuais usando a suposição "ingênua" ainda ocorreria usando os produtos das probabilidades P (W | S) individuais (geralmente somadas na forma de log). Esta questão diz respeito apenas às probabilidades individuais. Lembro-me de construir sistemas de ambas as maneiras (contagem de frequência direta e indiretamente) com ambos tendo um desempenho adequado. Atualizando minha memória sobre isso, estou me perguntando sobre a necessidade do primeiro método.

Depois de escrever esta pergunta, duas razões me ocorreram.

Razão # 1 : Para problemas de classificação desequilibrada. Ao determinar P (W | S), bem como P (S), então é possível ajustar P (S) como um parâmetro em vez de técnicas desajeitadas de amostragem excessiva / insuficiente. O que é mais idiomático Naive Bayes, uma vez que é generativo por natureza.

Razão # 2 : para classificação usando variáveis ​​preditoras numéricas. Por exemplo, usando esta equação gaussiana parametrizada:

equação para uma distribuição normal

O exemplo acima fornece P (x | S) no contexto de spam.


Obrigado Tim pela boa resposta. Estou ciente da etapa para combinar as probabilidades para aliviar a necessidade de calcular as probabilidades conjuntas conforme você indica.

Mas um aspecto que traz à tona é que existem vários métodos para combinar as probabilidades individuais.

O método convencional:

(P(S) * Product( P(Wi | S),... ))
-----------------------------------------------------------
(P(S) * Product( P(Wi | S),... )) + (P(H) * Product( P(Wi | H),... ))

Porém no https://en.m.wikipedia.org/wiki/Naive_Bayes_spam_filtering artigo, isso implica que isso é adequado:

NÃO USE ESTA FÓRMULA:

Product( P(S | Wi),... )
-----------------------------------------
Product( P(S | Wi),... ) + Product( P(H | Wi),... )

NÃO USE A FÓRMULA ACIMA. Eu percebi que há alguma controvérsia a respeito dessa fórmula particular com os editores da Wikipedia ... A razão é que, usando esta formulação incorreta, o P (S) anterior é incorporado muitas vezes e para um problema desequilibrado (P (S ) <P (H)), a previsão será tendenciosa para zero.

Observe que as fórmulas do produto não devem ser usadas diretamente, mas por meio da formulação log (). Lembre-se de que x * y é log (x) + log (y) Veja para mais detalhes:https://en.wikipedia.org/wiki/Naive_Bayes_spam_filtering#Other_expression_of_the_formula_for_combining_individual_probabilities

Respostas

4 Tim Sep 27 2020 at 23:34

Concordo com você que, para calcular a probabilidade condicional dada uma única variável binária, isso não importa, e você também pode calculá-la diretamente. Mas considere o caso em que você tem vários recursos, digamos$p(Y|A,B,C,D)$. Para calcular essa probabilidade condicional diretamente dos dados, você precisaria de amostras suficientes para todas as combinações dos diferentes níveis de todas as variáveis. Isso significaria que você precisa de um conjunto de dados bem grande. Para spam em inglês, isso significaria amostras de todas as combinações possíveis de todas as palavras em inglês possíveis que podem formar um e-mail, ou seja, um conjunto de dados infinitamente grande.

O algoritmo Naive Bayes resolve isso substituindo a necessidade de observar todas as combinações possíveis, usando apenas os pares de cada uma das variáveis ​​com a variável prevista

$$ p(Y|A,B,C,D) \propto p(A|Y) \,p(B|Y)\, p(C|Y)\, p(D|Y) \,p(Y) $$