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.

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.


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_
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.