Compreensão de bayes ingênuos: computando as probabilidades condicionais

7

Para uma tarefa de análise de sentimentos, suponha que tenhamos algumas classes representadas por características .ci

Podemos representar a probabilidade condicional de cada classe como: que representa cada recurso e é a classe temos. , podemos representar Nossos antecedentes para cada classe são dados por: que:

P(c|wi)=P(wi|c)P(c)P(wi)
wic
P(wi|c)=ncinc
P(wi)=nin
P(c)=ncn

n é o número total de recursos em todas as classes.

nci representa o número de contagens desse recurso na classe .ic

nc é o número total de recursos da classe e

ni é o número total de recursos para todas as classes.

O meu entendimento do que foi dito acima está correto? Portanto, dadas essas probabilidades de para cada palavra, sou a ingênua suposição de bayes que as palavras são independentes, então simplesmente multiplico cada palavra em um documento para uma determinada classe, ou seja, para calcular que é o número de palavras no documento. Isso está correto?P(c|wi)P(c|wi),iNN

Para realmente calcular numericamente a probabilidade condicional, basta fazer o seguinte:

P(c|wi)=P(wi|c)P(c)P(wi)=ncincncnnni=ncini

A última parte da equação parece um pouco suspeita para mim, pois parece muito simples de calcular para uma probabilidade bastante complexa.

user19241256
fonte

Respostas:

4

Sua fórmula está correta para um , mas se você deseja classificar um documento, precisa calcular .wiP(c|w1,,wN)

Então você tem

P(c|w1,,wN)=P(c)P(w1,,wN|c)P(w1,,wN)=P(c)i=1NP(wi|c)P(w1,,wN)i=1NP(c|wi)

onde a segunda equação é válida por causa da ingênua suposição de Bayes.

Para fins de classificação, você pode ignorar porque é constante (dados os dados). A fórmula ainda é simples ("ingênua"), mas não simplifica tanto.P(w1,,wN)

A última parte da equação parece um pouco suspeita para mim, pois parece muito simples de calcular para uma probabilidade bastante complexa.

Lembre-se de que, embora o Naïve Bayes seja um classificador decente para muitas aplicações, as probabilidades geradas geralmente não são muito representativas.

oW_
fonte
Obrigado pela sua resposta. Em programas reais, por que esse resultado não pode ser alcançado? Eu já vi muitas implementações de bayes ingênuos e nenhuma delas vai diretamente para calcular uma palavra. nci
precisa saber é o seguinte
não sei se entendi a pergunta ... de uma forma ou de outra, tudo se resumia a contar. Você pode dar um exemplo?
oW_