Incerteza e Bayes
Probabilidade, regra de Bayes, Naive Bayes e redes Bayesianas com um filtro de spam calculado.
A lógica da página anterior decide entre verdadeiro e falso. O mundo real raramente colabora: sensores com ruído, sintomas partilhados por várias doenças, palavras que aparecem em spam e em mensagens normais. A probabilidade quantifica a crença quando a informação não chega para a certeza, e a regra de Bayes atualiza essa crença perante evidência nova. O exemplo é um filtro de spam com 20 mensagens e todas as contas à mostra.
O exemplo das 20 mensagens
Caixa com 20 mensagens: 8 spam e 12 normais (ham). A palavra “grátis” aparece em 6 das 8 spam e em 2 das 12 normais. Define como “é spam” e como “contém grátis”:
- e .
- e .
- , porque 8 das 20 mensagens contêm a palavra.
A pergunta que interessa é a inversa: chegada uma mensagem com “grátis”, qual a probabilidade de ser spam? A regra de Bayes responde:
Lê o resultado com cuidado: 75 por cento das mensagens com “grátis” são spam, que é exatamente 6 em 8. Bayes não inventou nada; inverteu a condicional de forma sistemática. O erro clássico é confundir com : saber que 75 por cento do spam tem “grátis” não diz que 75 por cento do que tem “grátis” é spam. Aqui coincidem por acaso aritmético (); em geral não coincidem.
Naive Bayes com duas palavras
Junta a palavra “prémio”: aparece em 4 das 8 spam e em 1 das 12 normais. Para classificar uma mensagem com as duas palavras, o Naive Bayes assume que as palavras são condicionalmente independentes dada a classe, isto é, . Com e :
- Proporcional a spam: .
- Proporcional a ham: .
Normaliza: . A mensagem é classificada spam com 94,7 por cento de confiança. A hipótese de independência é ingénua, as palavras “grátis” e “prémio” provavelmente correlacionam, mas o classificador funciona bem na prática porque para decidir basta a ordem das classes estar certa, não as probabilidades exatas.
Redes Bayesianas
Quando há muitas variáveis, a tabela conjunta é impossível: variáveis binárias pedem entradas. Uma rede Bayesiana é um grafo dirigido acíclico onde cada nó tem uma tabela só com os seus pais, e a conjunta fatoriza-se pelo produto. A estrutura codifica independências: cada variável é independente das não descendentes dados os pais.
No spam, a rede ingénua é classe no topo com uma seta para cada palavra: , que é exatamente a conta da secção anterior. Se “prémio” dependesse também de “grátis”, acrescentava-se uma seta entre elas e a tabela crescia. A rede é o meio termo entre a tabela completa, que não escala, e a ingenuidade total, que ignora dependências reais. Inferência nela (perguntar uma variável dadas outras) é o tema que fecha a incerteza e abre a porta à aprendizagem com dados incompletos.