Naïve Bayes
Roteiro
Revisão de Probabilidade
Probabilidade a priori
Probabilidade a posteriori/condicional
Naïve Bayes
Introdução
Teorema de Bayes
Execução de um Exemplo
Atributos Categóricos e Atributos Contínuos
M-Estimate
Revisão de Probabilidade
Para compreender o funcionamento do classificador
Naïve Bayes, necessitamos de certos conhecimentos de
probabilidade
Probabilidade a priori
Probabilidade a priori
Corresponde à crença antes de qualquer (nova) evidência
Sendo A é uma variável aleatória que representa o valor
obtido numa rolagem de um dado com seis faces
P(A=6) = 1/6 = 0.167
Sendo B é uma variável aleatória que representa o lado
obtido após um lançamento de uma moeda
Probabilidade a posteriori/condicional
Corresponde à crença após uma evidência
P(A=6 | dado viciado em 6) = 0.4
Probabilidade do valor obtido numa rolagem de um dado
com seis faces ser 6 dado que o dado seja viciado na
face de valor 6
P(B=“cara” | moeda viciada em coroa) = 0.2
Probabilidade do lado obtido após um lançamento de
uma moeda ser cara dado que a moeda seja viciada na
face coroa
Probabilidade – Exemplo
Considere um exemplo com as seguintes configurações
C é a variável aleatória que representa a presença ou ausência
de cárie
D é a variável aleatória que representa a presença ou ausência
de dor de dente
Presença equivale à true
Ausência equivale à false
Probabilidade – Exemplo
P(D = true) = 0.2
Probabilidade de ter dor de dente é 0.2
P(C = false | D = true) = 0.4
Probabilidade de não ter cárie dado que possui dor de
dente é 0.4
Probabilidade – Exemplo
Usando a distribuição de probabilidade conjunta para as
variáveis aleatórias
cárie (C)
dor de dente (D)
dor de dente ¬dor de dente
cárie
0.12
0.08
Probabilidade – Exemplo
Então, fica claro que
P(D = true) = 0.2
dor de dente ¬dor de dente
cárie
0.12
0.08
Probabilidade – Exemplo
Mas como
P(C = false | D = true) = 0.4 ?
Note que P(C = false | D = true) ≠ P(¬C ∩ D)
dor de dente ¬dor de dente
cárie
0.12
0.08
Probabilidade – Exemplo
Para calcular probabilidade temos sempre uma divisão do
caso visto pelo total de casos
Dado que a posteriori adiciona uma evidência, o total de
casos não é mais a probabilidade total (1.0), mas sim a
probabilidade total da evidência apresentada
dor de dente ¬dor de dente
cárie
0.12
0.08
Probabilidade – Exemplo
Portanto,
P(C = false | D = true) = casos vistos / total de casos
Obtemos
P(C = false | D = true) = 0.08 / 0.2 = 0.4
dor de dente ¬dor de dente
cárie
0.12
0.08
¬cárie
0.08
0.72
total de casos
casos vistos
Naïve Bayes – Introdução
É um classificador estatístico que tem a função de
classificar um objeto numa determinada classe com base
na probabilidade deste objeto pertencer a esta classe
O nome Naïve (ingênuo) é dado, pois considera-se que os
atributos são independentes
Tamanho da Perna x Velocidade de Leitura
Naïve Bayes – Visão Geral
Deseja-se classificar um
novo objeto X (ponto
branco)
Os objetos estão
agrupados em classes
A chance de X pertencer
à uma classe aumenta de
acordo com a quantidade
de objetos parecidos com
X
P(Cor = Verde | X) = 1/40 P(Cor = Vermelho | X) = 3/20
P(Cor = Vermelho | X) > P(Cor = Verde | X) Portanto, X é classificado como Vermelho
Teorema de Bayes
Fornece o cálculo das probabilidades de que uma
determinada amostra de dados pertença a cada uma das
classes possíveis, predizendo para a amostra, a classe
mais provável
Sendo X e Y duas variáveis aleatórias
X é o exemplo a ser testado
Y é uma classe
)
(
)
(
)
|
(
)
|
(
X
P
Y
P
Y
X
P
X
Y
P
Teorema de Bayes
Dado que X é um exemplo, ele é composto de vários
atributos
Calcula-se isoladamente o valor da probabilidade condicional
de cada atributo para finalmente calcular a probabilidade a
posteriori
Com isso, é possível chegar a uma forma mais geral do
Teorema de Bayes:
)
(
)
|
(
)
(
)
|
(
1X
P
Y
X
P
Y
P
X
Y
P
i d i
P[x
1, x
2,... x
d| C] = P(x
1| C) x P(x
2| C) x … x P(x
d| C)
Naïve Bayes – Exemplo
ID Idade Renda Estudante Crédito Compra_computador
1 <= 30 Alta Não Bom Não
2 <= 30 Alta Não Bom Não
3 31..40 Alta Não Bom Sim
4 > 40 Média Não Bom Sim
5 > 40 Baixa Sim Bom Sim
6 > 40 Baixa Sim Excelente Não 7 31..40 Baixa Sim Excelente Sim
8 <= 30 Média Não Bom Não
9 <= 30 Baixa Sim Bom Sim
10 > 40 Média Sim Bom Sim
11 <= 30 Média Sim Excelente Sim 12 31..40 Média Não Excelente Sim
13 31..40 Alta Sim Bom Sim
14 > 40 Média Não Excelente Não
Baseado nos dados acima, dado
X = (Idade <= 30, Renda = Media, Estudante = Sim, Crédito = Bom)
X irá comprar computador (Y = Sim ou Y = Não)?
Naïve Bayes – Exemplo
ID Idade Renda Estudante Crédito Compra_computador
1 <= 30 Alta Não Bom Não
2 <= 30 Alta Não Bom Não
3 31..40 Alta Não Bom Sim
4 > 40 Média Não Bom Sim
5 > 40 Baixa Sim Bom Sim
6 > 40 Baixa Sim Excelente Não 7 31..40 Baixa Sim Excelente Sim
8 <= 30 Média Não Bom Não
9 <= 30 Baixa Sim Bom Sim
10 > 40 Média Sim Bom Sim
11 <= 30 Média Sim Excelente Sim 12 31..40 Média Não Excelente Sim
13 31..40 Alta Sim Bom Sim
14 > 40 Média Não Excelente Não
Primeiro calcula-se a probabilidade a priori das classes
P(Y = Sim) = 9/14 = 0.643
Naïve Bayes – Exemplo
ID Idade Renda Estudante Crédito Compra_computador
1 <= 30 Alta Não Bom Não
2 <= 30 Alta Não Bom Não
3 31..40 Alta Não Bom Sim
4 > 40 Média Não Bom Sim
5 > 40 Baixa Sim Bom Sim
6 > 40 Baixa Sim Excelente Não 7 31..40 Baixa Sim Excelente Sim
8 <= 30 Média Não Bom Não
9 <= 30 Baixa Sim Bom Sim
10 > 40 Média Sim Bom Sim
11 <= 30 Média Sim Excelente Sim 12 31..40 Média Não Excelente Sim
13 31..40 Alta Sim Bom Sim
14 > 40 Média Não Excelente Não
Depois a probabilidade a posteriori dado uma classe para cada variável de X
X = (Idade <= 30, Renda = Media, Estudante = Sim, Crédito = Bom)
P(Idade <= 30 | Y = Sim) = 2/9 = 0.222
P(Idade <= 30 | Y = Não) = 3/5 = 0.6
Naïve Bayes – Exemplo
ID Idade Renda Estudante Crédito Compra_computador
1 <= 30 Alta Não Bom Não
2 <= 30 Alta Não Bom Não
3 31..40 Alta Não Bom Sim
4 > 40 Média Não Bom Sim
5 > 40 Baixa Sim Bom Sim
6 > 40 Baixa Sim Excelente Não 7 31..40 Baixa Sim Excelente Sim
8 <= 30 Média Não Bom Não
9 <= 30 Baixa Sim Bom Sim
10 > 40 Média Sim Bom Sim
11 <= 30 Média Sim Excelente Sim 12 31..40 Média Não Excelente Sim
13 31..40 Alta Sim Bom Sim
14 > 40 Média Não Excelente Não
Depois a probabilidade a posteriori dado uma classe para cada variável de X
X = (Idade <= 30, Renda = Media, Estudante = Sim, Crédito = Bom)
P(Renda = Media | Y = Sim) = 4/9 = 0.444
P(Renda = Media | Y = Não) = 2/5 = 0.4
Naïve Bayes – Exemplo
ID Idade Renda Estudante Crédito Compra_computador
1 <= 30 Alta Não Bom Não
2 <= 30 Alta Não Bom Não
3 31..40 Alta Não Bom Sim
4 > 40 Média Não Bom Sim
5 > 40 Baixa Sim Bom Sim
6 > 40 Baixa Sim Excelente Não 7 31..40 Baixa Sim Excelente Sim
8 <= 30 Média Não Bom Não
9 <= 30 Baixa Sim Bom Sim
10 > 40 Média Sim Bom Sim
11 <= 30 Média Sim Excelente Sim 12 31..40 Média Não Excelente Sim
13 31..40 Alta Sim Bom Sim
14 > 40 Média Não Excelente Não
Depois a probabilidade a posteriori dado uma classe para cada variável de X
X = (Idade <= 30, Renda = Media, Estudante = Sim, Crédito = Bom)
P(Estudante = Sim | Y = Sim) = 6/9 = 0.667
P(Estudante = Sim | Y = Não) =1/5 = 0.2
Naïve Bayes – Exemplo
ID Idade Renda Estudante Crédito Compra_computador
1 <= 30 Alta Não Bom Não
2 <= 30 Alta Não Bom Não
3 31..40 Alta Não Bom Sim
4 > 40 Média Não Bom Sim
5 > 40 Baixa Sim Bom Sim
6 > 40 Baixa Sim Excelente Não 7 31..40 Baixa Sim Excelente Sim
8 <= 30 Média Não Bom Não
9 <= 30 Baixa Sim Bom Sim
10 > 40 Média Sim Bom Sim
11 <= 30 Média Sim Excelente Sim 12 31..40 Média Não Excelente Sim
13 31..40 Alta Sim Bom Sim
14 > 40 Média Não Excelente Não
Depois a probabilidade a posteriori dado uma classe para cada variável de X
X = (Idade <= 30, Renda = Media, Estudante = sim, Crédito = Bom)
P(Crédito = Bom | Y = Sim) = 6/9 = 0.667
P(Credito = Bom | Y = Não) = 3/5 = 0.6
Naïve Bayes – Exemplo
Dado que a regra de decisão é
Após calcular todas as P(X
i
| Y), encontraremos os demais
valores necessários para realizar a decisão
)
(
)
(
)
|
(
)
|
(
X
P
Y
P
Y
X
P
X
Y
P
Naïve Bayes – Exemplo
Como
P[x
1, x
2,... x
d| C] = P(x
1| C) x P(x
2| C) x … x P(x
d| C)
P(X | Y = Sim) = 0.222 x 0.444 x 0.667 x 0.667 = 0.044
P(X | Y = Não) = 0.6 x 0.4 x 0.2 x 0.6 = 0.028
Pela Lei da Probabilidade Total
P(X) = P(X | Y = Sim).P(Y = Sim) + P(X | Y = Não).P(Y = Não)
P(X) = 0.044 x 0.643 + 0.028 x 0.357 = 0.038
Finalmente
P(Y = Sim | X) = 0.044 x 0.643 / 0.038 = 0.74
P(Y = Não | X) = 0.028 x 0.357 / 0.038 = 0.26
)
(
)
(
)
|
(
)
|
(
X
P
Y
P
Y
X
P
X
Y
P
P(Y) já calculados anteriormente
P(Y = Sim) = 0.643
Naïve Bayes – Exemplo
Dado que temos
P(Y = Sim | X) = 0.74
P(Y = Não | X) = 0.26
Como P(Y = Sim | X) > P(Y = Não | X)
Finalmente, é possível classificar X como pertence a
Naïve Bayes – Atributos Categóricos
No exemplo tinha apenas atributos categóricos
Idade: {menor ou igual 30, entre 31 e 40, maior que 40}
Renda: {Baixa, Média, Alta}
Estudante: {Sim, Não}
Crédito: {Bom Excelente}
Então, Naïve Bayes só pode ser utilizado por atributos
categóricos?
Naïve Bayes – Atributos Contínuos
Existem duas maneiras de lidar com atributos contínuos
Discretização de atributos contínuos
Os atributos contínuos são divididos em intervalos discretos, que
substituem os valores desses atributos
A transformação dos atributos contínuos em atributos discretos
permite que sejam tratados como atributos categóricos
Nosso exemplo já fez isso inicialmente
Distribuição Gaussiana
Assume uma certa forma de distribuição de probabilidade para
variáveis contínuas
Estima os parâmetros da distribuição usando os dados de
treinamento
Naïve Bayes – Exemplo 2
ID Idade Renda Estudante Crédito Compra_computador
1 <= 30 Alta Não Bom Não
2 <= 30 Alta Não Bom Não
3 31..40 Alta Não Bom Sim
4 > 40 Média Não Bom Sim
5 > 40 Baixa Sim Bom Sim
6 > 40 Baixa Sim Excelente Não 7 31..40 Baixa Sim Excelente Sim
8 <= 30 Média Não Bom Não
9 <= 30 Baixa Sim Bom Sim
10 > 40 Média Sim Bom Sim
11 <= 30 Média Sim Excelente Sim 12 31..40 Média Não Excelente Sim
13 31..40 Alta Sim Bom Sim
14 > 40 Média Não Excelente Não
Para mostrar o funcionamento de atributos não-categóricos iremos
modificar o atributo Idade para um valor inteiro
Naïve Bayes – Exemplo 2
ID Idade Renda Estudante Crédito Compra_computador
1 28 Alta Não Bom Não
2 27 Alta Não Bom Não
3 33 Alta Não Bom Sim
4 42 Média Não Bom Sim
5 46 Baixa Sim Bom Sim
6 52 Baixa Sim Excelente Não
7 38 Baixa Sim Excelente Sim
8 24 Média Não Bom Não
9 28 Baixa Sim Bom Sim
10 49 Média Sim Bom Sim
11 30 Média Sim Excelente Sim
12 39 Média Não Excelente Sim
13 32 Alta Sim Bom Sim
Naïve Bayes – Exemplo 2
ID Idade Renda Estudante Crédito Compra_computador
1 28 Alta Não Bom Não
2 27 Alta Não Bom Não
3 33 Alta Não Bom Sim
4 42 Média Não Bom Sim
5 46 Baixa Sim Bom Sim
6 52 Baixa Sim Excelente Não
7 38 Baixa Sim Excelente Sim
8 24 Média Não Bom Não
9 28 Baixa Sim Bom Sim
10 49 Média Sim Bom Sim
11 30 Média Sim Excelente Sim
12 39 Média Não Excelente Sim
13 32 Alta Sim Bom Sim
14 47 Média Não Excelente Não
n
y
1 2 2 n x , sendo
e
²
2
²
exp
²
2
1
)
|
(
x
y
Y
x
X
P
Naïve Bayes – Exemplo 2
ID Idade Renda Estudante Crédito Compra_computador
1 28 Alta Não Bom Não
2 27 Alta Não Bom Não
3 33 Alta Não Bom Sim
4 42 Média Não Bom Sim
5 46 Baixa Sim Bom Sim
6 52 Baixa Sim Excelente Não
7 38 Baixa Sim Excelente Sim
8 24 Média Não Bom Não
9 28 Baixa Sim Bom Sim
10 49 Média Sim Bom Sim
11 30 Média Sim Excelente Sim
12 39 Média Não Excelente Sim
13 32 Alta Sim Bom Sim
14 47 Média Não Excelente Não
Utilizando os mesmos dados anteriormente
X = (Idade <= 30, Renda = Media, Estudante = Sim, Crédito = Bom)
Mas modificando o primeiro atributo de X para Idade = 28, temos
X = (Idade = 28, Renda = Media, Estudante = Sim, Crédito = Bom)
Naïve Bayes – Exemplo 2
ID Idade Renda Estudante Crédito Compra_computador
1 28 Alta Não Bom Não
2 27 Alta Não Bom Não
3 33 Alta Não Bom Sim
4 42 Média Não Bom Sim
5 46 Baixa Sim Bom Sim
6 52 Baixa Sim Excelente Não
7 38 Baixa Sim Excelente Sim
8 24 Média Não Bom Não
9 28 Baixa Sim Bom Sim
10 49 Média Sim Bom Sim
11 30 Média Sim Excelente Sim
12 39 Média Não Excelente Sim
13 32 Alta Sim Bom Sim
14 47 Média Não Excelente Não
Primeiro calculamos a média e variância para cada classe
μ (Y = Sim) = 37.44 e σ² (Y = Sim) = 53.02
Naïve Bayes – Exemplo 2
ID Idade Renda Estudante Crédito Compra_computador
1 28 Alta Não Bom Não
2 27 Alta Não Bom Não
3 33 Alta Não Bom Sim
4 42 Média Não Bom Sim
5 46 Baixa Sim Bom Sim
6 52 Baixa Sim Excelente Não
7 38 Baixa Sim Excelente Sim
8 24 Média Não Bom Não
9 28 Baixa Sim Bom Sim
10 49 Média Sim Bom Sim
11 30 Média Sim Excelente Sim
12 39 Média Não Excelente Sim
13 32 Alta Sim Bom Sim
14 47 Média Não Excelente Não
Depois calculamos a probabilidade para cada classe usando os valores de
média e variância respectivos
P(Idade = 28 | Y = Sim) = 0.0236
P(Idade = 28 | Y = Não) = 0.0259
²
2
²
exp
²
2
1
)
|
(
x
y
Y
x
X
P
Naïve Bayes – Atributos Contínuos
Probabilidade usando Distribuição Gaussiana
P(Idade = 28 | Y = Sim) = 0.0236
P(Idade = 28 | Y = Não) = 0.0259
Probabilidade usando intervalos categóricos
P(Idade <= 30 | Y = Sim) = 0.222
P(Idade <= 30 | Y = Não) = 0.6
Distribuição Gaussiana deu muito menor por se tratar de
algo pontual, enquanto que os intervalos se tratam de
múltiplos pontos
Naïve Bayes – Probabilidade Zerada
Em certos casos, é possível a probabilidade condicional de
algum atributo seja zero
Deste modo, a probabilidade a posteriori para a classe
inteira também será zero
Essa situação atrapalha a classificação de duas maneiras
Aponta uma classe incorreta, pois a probabilidade dela foi
zerada devido a um único atributo
Incapaz de apontar qualquer classe, caso a condição exista para
atributos de todas as classes
Todas probabilidades serão zero
É possível contornar o problema com M-Estimate para o
Naïve Bayes – Exemplo 3
ID Idade Renda Estudante Crédito Compra_computador
1 <= 30 Alta Não Bom Não
2 <= 30 Alta Não Bom Não
3 31..40 Alta Não Bom Sim
4 > 40 Média Não Bom Sim
5 > 40 Baixa Sim Bom Sim
6 > 40 Baixa Sim Excelente Não 7 31..40 Baixa Sim Excelente Sim
8 <= 30 Média Não Bom Não
9 <= 30 Baixa Sim Bom Sim
10 > 40 Média Sim Bom Sim
11 <= 30 Média Sim Excelente Sim 12 31..40 Média Não Excelente Sim
13 31..40 Alta Sim Bom Sim
14 > 40 Média Não Excelente Não
Imagine que o local marcado no lugar de Sim, fosse Não
P(Estudante = Sim | Y = Sim) = 6/9 = 0.667
Entretanto,
M-Estimate
n é o número total de casos da classe y
j
n
c
é o número de casos classe y
j
com o valor x
i
O
Cálculo Adicional
equivale à adicionar exemplos
m é uma constante chamada de tamanho de amostra equivalente
É a quantidade de novos exemplos adicionados
Normalmente usa-se m = 2
p é um parâmetro especificado pelo usuário
Estimativa da probabilidade
Na ausência de informação usa-se p = 1/k
k é a quantidade de valores que x
ipode assumir
Conclusão
Naïve Bayes
Vantagens
Fácil implementação
Bom funcionamento na maioria dos casos
Rápido treinamento
Sucesso em diversas aplicações: classificação de documentos
Boa alternativa para combinação de classificadores
Desvantagens
Atributos correlacionados degradam a performance, pois a
independência condicional não é mais assegurada