Você está na página 1de 50

Classificadores Bayesianos

Marcelo Claro Zembrzuski


Abril de 2010
Classificadores Bayesianos


Baseados na teoria de Thomas Bayes

Trata da probabilidade de acontencimento de eventos

Altera a estimativa inicial com base em novas informações

Nova informação atua como um modificador de opinião

Mostra como fazer avaliações e como ajustá-las quando deparados com novos
dados


Terminologia

probabilidade a priori: estimativas iniciais

probabilidade a posteriori: novos palpites sobre a probabilidade
Classificadores Bayesianos


Teorema de Bayes

Expressa a probabilidade a posteriori de uma hipótese baseado

na probabilidade a priori dessa hipótese

na probabilidade a priori da evidência

verossimilhança entre causa e efeito

P  X | Y ∗P Y 
P Y | X =
P X 
Classificadores Bayesianos


Frequentemente não sabemos calcular P(X)

Lei da probabilidade total

Se
● Acontecimento Y pode ocorrer em m condições diferentes Y1, Y2, Y3, … Ym

Esses m sub-acontecimentos forem mutuamente exclusivos

Então

Pode-se escrever a probabilidade de X como

P  X = i=1..m P X | Y i ∗P Y i


Classificadores Bayesianos


Lei da probabilidade total

Exemplo

Dispositivos de segurança A ou (exclusivo) B instalados em automóveis na mesma
proporçao

Em caso de acidente grave

A é eficaz em 95% dos casos

B é eficaz em 90% dos casos

Qual a probabilidade do dispositivo ser eficaz em caso de acidente grave?
Classificadores Bayesianos


Lei da probabilidade total

Exemplo

Dispositivos de segurança A ou (exclusivo) B instalados em automóveis na mesma
proporçao

Em caso de acidente grave

A é eficaz em 95% dos casos

B é eficaz em 90% dos casos

Qual a probabilidade do dispositivo ser eficaz em caso de acidente grave?


Acidente pode acontecer de duas maneiras diferentes (A ou B)

Seja X a probabilidade do dispotivo ser eficiente em caso de acidente grave

P(X) = P(X|A) * P(A) + P(X|B) * P(B)


P(X) = 0.95 * 0.5 + 0.9*0.5 = 0.925

P  X = i=1..m P X | Y i ∗P Y i


Classificadores Bayesianos


Frequentemente não sabemos calcular P(X)

Lei da probabilidade total

Se
● Acontecimento Y pode ocorrer em m condições diferentes Y1, Y2, Y3, … Ym

Esses m sub-acontecimentos forem mutuamente exclusivos

Então

Probabilidade de Y ocorrer é a soma das probabilidades dos m sub-acontecimentos

P  X | Y ∗P Y 
P Y | X =
P X  P  X = i=1..m P X | Y i ∗P Y i

P  X |Y i∗PY i 
P Y i | X =
 i=1..m P  X |Y i∗PY i 
Classificadores Bayesianos
Classificadores Bayesianos


Exemplo de aplicação


Dois times de futebol

Time 1 vence 65% das vezes

Time 2 vence 35% das vezes

Sabe-se que

Time 1: dentre esses 65% de vitórias, somente 30% delas ocorrem no campo
adversário

Time 2: dentre os 35% de vitórias, 75% das vitórias ocorrem jogando em casa


Se o próximo jogo for na casa do time 2, qual time será, provavelmente, o vitorioso?
Classificadores Bayesianos


Reformulando a pergunta:

Qual a probabilidade de cada time vencer dado um jogo no campo de t2

P(t1 vencer | campo t2)

P(t2 vencer | campo t2)


Segundo bayes, temos:

Precisamos de 2 variáveis aleatórias:

variável aleatória para que representar quem tem o “mando de campo”.

variável aleatória para representar quem vence o jogo


P(t1 vencer) = 0.65

P(t2 vencer) = 0.35

P(campo t2 | t2 venceu) = 0.75

P(campo t2 | t1 venceu) = 0.30

Pcampo t2 |t2 venceu∗P t2 vencer 


P t2 vencer |campot2=
P campo t2 |t2 venceu∗P t2 vencer P campo t2|t1 venceu∗P t1 vencer 
Classificadores Bayesianos


Teorema de bayes para classificação

Definição:
● Seja X um conjunto de atributos {X , X , X … X } e Y a classe de cada atributo
1 2 3 n

X e Y tem relação não determinística

Podemos tratar X e Y como variáveis randômicas
● Calcula-se a probabilidade a posteriori usando P(Y | {X1, X2, X3 … Xn} )


Treinamento

Aprende-se a probabilidade a posteriori P(Y|X) para cada combinação de X e Y
baseados em dados de treinamento.

Um registro de teste X' é classificado de acordo com a classe Y' que maximiza a
probabilidade a posteriori, P(Y'|X').
Classificadores Bayesianos


Problema de classificação:

Arquivo de treinamento abaixo

Rótulo Y representa classe inadimplente

Registro X sendo:

casa própria=não

Estado civil = casado

Renda anual = $120k


Como esse registro é classificado?

Se P(inadimplete=sim|X) > P(inadimplete=nao|X)

Classificado como sim
id Casa Estado Renda inadim

Caso contrário própria? civil anual plente?

Classificado como não 1 sim solteiro 125k não

Resta só gerar essas probabilidades 2 não casado 100k não
3 não solteiro 70k não
4 sim casado 120k não
5 não divorciado 95k sim
6 não casado 60k não
7 sim divorciado 220k não
8 não solteiro 85k sim
9 não casado 75k não
10 não solteiro 90k sim
Classificadores Bayesianos


Estimando as probabilidades

Estimar a probabilidade a posteriori exata é difícil:

Exige um conjunto de dados grande para treinamento

Com o teorema de bayes tem-se:

P  X | Y ∗P Y 
P Y | X =
P X 
Classificadores Bayesianos


Estimando as probabilidades

Estimar a probabilidade a posteriori exata é difícil:

Exige um conjunto de dados grande para treinamento

Com o teorema de bayes tem-se:

Facilmente calculado contando


a fração de registros
P  X | Y ∗P Y  pertencentes a cada classe
P Y | X =
P X 
Classificadores Bayesianos


Estimando as probabilidades

Estimar a probabilidade a posteriori exata é difícil:

Exige um conjunto de dados grande para treinamento

Com o teorema de bayes tem-se:

Probabilidade é
sempre constante ao
P  X | Y ∗P Y  comparar diferentes
P Y | X =
P X  valores de Y. Pode
ser ignorado
Classificadores Bayesianos


Estimando as probabilidades

Estimar a probabilidade a posteriori exata é difícil:

Exige um conjunto de dados grande para treinamento

Com o teorema de bayes tem-se:

P(X|Y) é o que exige mais


trabalho. Dois métodos para
P  X | Y ∗P Y  estimar.
P Y | X =
P X 
Classificadores Bayesianos


Classificadores Bayesianos

Método para estimar P(X|Y)

Duas implementações

Classificador ingênuo

Rede bayesiana de crenças
Classificadores Bayesianos


Classificadores Ingênuos

Assumem que os atributos são condicionalmente independentes
● Probabilidade de um conjunto de atributos X= {X1, X2, X3 … Xn} dado Y ser da classe y

produtório da probabilidade de cada atributo individual dado y

probabilidade individual é fácil computar

P  X | Y ∗P Y 
P Y | X = P  X |Y = y= i=1..n P  X i |Y = y 
P X 
Classificadores Bayesianos


Classificadores Ingênuos

Assumem que os atributos são condicionalmente independentes
● Probabilidade de um conjunto de atributos X= {X1, X2, X3 … Xn} dado y ser da classe y

produtório da probabilidade de cada atributo individual dado y

probabilidade individual é fácil computar

P  X | Y ∗P Y 
P Y | X = P  X |Y = y= i=1..n P  X i |Y = y 
P X 

PY = y ∗ i=1..n P X i | Y = y


P Y = y | X =
P X 
Classificadores Bayesianos


Classificadores Ingênuos

Assumem que os atributos são condicionalmente independentes
● Probabilidade de um conjunto de atributos X= {X1, X2, X3 … Xn} dado y ser da classe y

produtório da probabilidade de cada atributo individual dado y

probabilidade individual é fácil computar

P  X | Y ∗P Y 
P Y | X = P  X |Y = y= i=1..n P  X i |Y = y 
P X 

PY = y ∗ i=1..n P X i | Y = y


P Y = y | X =
P X 

P Y = y | X =P Y = y∗i=1..n P  X i |Y = y 
Classificadores Bayesianos


Estimando probabilidades para atributos categóricos (com rótulo)
● Dado atributo categórico Xi, a probabilidade condicional P(Xi=xi | Y=y)
● Estimado de acordo com o número de instâncias da classe Y com valor Xi

Simplesmente contar o número de ocorrências nos dados de treinamento
Classificadores Bayesianos


Estimando probabilidades para atributos categóricos (com rótulo)

Dado atributo categórico Xi, a probabilidade condicional P(Xi=xi | Y=y)

Estimado de acordo com o número de instâncias da classe Y com valor xi

Simplesmente contar o número de ocorrências nos dados de treinamento


P(casa própria = sim | inadimplente = não)

id Casa Estado Renda inadim


própria? civil anual plente?
1 sim solteiro 125k não
2 não casado 100k não
3 não solteiro 70k não
4 sim casado 120k não
5 não divorciado 95k sim
6 não casado 60k não
7 sim divorciado 220k não
8 não solteiro 85k sim
9 não casado 75k não
10 não solteiro 90k sim
Classificadores Bayesianos


Estimando probabilidades para atributos categóricos (com rótulo)

Dado atributo categórico Xi, a probabilidade condicional P(Xi=xi | Y=y)

Estimado de acordo com o número de instâncias da classe Y com valor xi

Simplesmente contar o número de ocorrências nos dados de treinamento


P(casa própria = sim | inadimplente = não) = 3/7 = 42.85%

id Casa Estado Renda inadim


própria? civil anual plente?
1 sim solteiro 125k não
2 não casado 100k não
3 não solteiro 70k não
4 sim casado 120k não
5 não divorciado 95k sim
6 não casado 60k não
7 sim divorciado 220k não
8 não solteiro 85k sim
9 não casado 75k não
10 não solteiro 90k sim
Classificadores Bayesianos


Estimando probabilidades para atributos contínuos

Duas abordagens

Discretizar atributos

Assumir uma função de distribuição de probabilidades
Classificadores Bayesianos


Estimando probabilidades para atributos contínuos

Discretização

Transforma atributos continuos em ordinais
● P(X | Y=y) é estimada computando a fração de registros de treinamento pertencentes
i

a classe y que caem no intervalo Xi correspondente.



Número de intervalos é muito grande

poucos registros caem no intervalo

Número é muito pequeno

os intervalos podem agregar registros de diferentes classes

Erro de decisão
Classificadores Bayesianos


Estimando probabilidades para atributos contínuos

Assumir uma função de distribuição de probabilidades

Estimar os parâmetros dessa função de probabilidades de acordo com dados
treinamento

Geralmente usado uma curva gaussiana

Parâmetros são média e variância
● Para cada classe Y , a probabilidade condicional para atributo X é
j i

Tanto µ quanto σ podem facilmente ser estimados com base nos registros de teste.
Classificadores Bayesianos


Estimando probabilidades para atributos contínuos

Definindo os parâmetros da curva para atributo rendimento dado não inadimplente

µ = 125 + 100 + 70 + … + 75 / 7 = 110

σ^2 = (125-110)^2 + (100 – 110)^2 + … + (75-110)^2 / 7(6) = 2975


Dado um registro de teste com valor 120k, podemos calcular a probabilidade como
segue
P(rendimento=120|Nao) = 0.0072
Classificadores Bayesianos


Voltando ao exemplo

Registro X sendo: PY = y ∗ i=1..n P X i | Y = y

casa própria=não P Y = y | X =
P X 

Estado civil = casado

Renda anual = $120k


Como classificar?

Calcular probabilidade (sim|X) e probabilidade de (não|X)

A maior probabilidade corresponde ao rótulo

P(sim) = 3/10
P(não) = 7/10 id Casa Estado Renda inadim
P(casa própria=sim | não) = 3/7 própria? civil anual plente?
P(casa própria=não | não) = 4/7 1 sim solteiro 125k não
P(casa própria=sim | sim) = 0
P(casa própria=não | sim) = 1 2 não casado 100k não
P(estado civil = solteiro | não) = 2/7 3 não solteiro 70k não
P(estado civil = divorciado | não) = 1/7
4 sim casado 120k não
P(estado civil = casado| não) = 4/7
P(estado civil = solteiro | sim) = 2/3 5 não divorciado 95k sim
P(estado civil = divorciado | sim) = 1/3 6 não casado 60k não
P(estado civil = casado| sim) = 0
7 sim divorciado 220k não
Para rendimentos anuais: 8 não solteiro 85k sim
Classe não: média 110, variância 2975
9 não casado 75k não
Classe sim: média 90, variância 25
10 não solteiro 90k sim
Classificadores Bayesianos


Voltando ao exemplo

Registro X sendo:

casa própria=não P Y = y | X =P Y = y∗i=1..n P  X i |Y = y 

Estado civil = casado

Renda anual = $120k


P(não | X) = P(Y=não) * P(X|não)

P(não | X) = 7/10 * (4/7 * 4/7 * 0.0072) = 0.0016

P(sim) = 3/10
P(não) = 7/10
P(casa própria=sim | não) = 3/7
P(casa própria=não | não) = 4/7
P(casa própria=sim | sim) = 0
P(casa própria=não | sim) = 1
P(estado civil = solteiro | não) = 2/7
P(estado civil = divorciado | não) = 1/7
P(estado civil = casado| não) = 4/7
P(estado civil = solteiro | sim) = 2/3
P(estado civil = divorciado | sim) = 1/3
P(estado civil = casado| sim) = 0

Para rendimentos anuais:


Classe não: média 110, variância 2975
Classe sim: média 90, variância 25
Classificadores Bayesianos


Voltando ao exemplo

Registro X sendo:

casa própria=não P Y = y | X =P Y = y∗i=1..n P  X i |Y = y 

Estado civil = casado

Renda anual = $120k


P(sim | X) = P(Y=sim) * P(X|sim)

P(sim | X) = c * 3/10 * (1 * 0 * 0.0000000012) = 0

P(sim) = 3/10
P(não) = 7/10
P(cas própria=sim | não) = 3/7
P(casa própria=não | não) = 4/7
P(casa própria=sim | sim) = 0
P(casa própria=não | sim) = 1
P(estado civil = solteiro | não) = 2/7
P(estado civil = divorciado | não) = 1/7
P(estado civil = casado| não) = 4/7
P(estado civil = solteiro | sim) = 2/3
P(estado civil = divorciado | sim) = 1/3
P(estado civil = casado| sim) = 0

Para rendimentos anuais:


Classe não: média 110, variância 2975
Classe sim: média 90, variância 25
Classificadores Bayesianos


Voltando ao exemplo

Registro X sendo:

casa própria=não

Estado civil = casado

Renda anual = $120k


P(não | X) = 0.0016

P(sim | X) = 0


Logo o registro é classificado como não
Classificadores Bayesianos


Características dos Classificadores Ingênuos

São robustos para isolar pontos de ruído porque tais pontos ficam fora da media ao
estimar probabilidades condicionais
● São robustos para atributos irrelevantes. Se um X é um atributo irrelevante então
i

P(Xi|Y) torna-se uma distribuição uniforme.



Atributos correlacionados podem degenerar a performance do classificador porque a
condição de independência condicional não vale mais para aqueles atributos.
Classificadores Bayesianos


Classificadores Bayesianos

Método para estimar P(X|Y)

Duas implementações

Classificador ingênuo

Rede bayesiana de crenças
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Abordagem mais flexível para questão das dependências condicionais

Não exige que todos os atributos sejam condicionalmente independentes

Permite especificar quais pares de atributos são condicionalmente independentes

Representação do modelo

Grafo acíclico direcionado – contém relação de dependencia entre variáveis

Tabela de propriedades associada a cada nodo.
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Representação gráfica

Grafo de dependências condicionais

Y
A B D

C A B C D
C

A B

- A e B influenciam C
AeB Todos os atributos
- A e B condicional- condicionalmente condionalmente independentes
mente dependentes independentes – representação da rede ingênua
dado C dado C
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Representação Gráfica

Grafo de dependências condicionais

Tabela de probabilidades

Nodo X não tem pais – tabela contem somente P(X)

Nodo X tem somente um pai – tabela contém P(X|Y)
● Nodo X tem vários pais {Y , Y , …, Y } – tabela contém P(X|Y , Y , …, Y )
1 2 k 1 2 k
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Exemplo

Detecão de doenças (problemas de coração e azia) em pacientes

Rede tem nodos para

Fatores de risco

Doenças

Sintomas
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Exemplo

Exercício Dieta

Problema
azia
coração

Pressão
Dor no peito
sanguínea
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Exemplo
E=sim D=saudável
Exercício Dieta
0.7 0.25

PC=sim
E=sim 0.25
D=saudável
A=sim
E=sim 0.45
D=saudável 0.2
D= não saudável
E=não 0.55 D= não 0.85
Problema saudável
D=saudável azia
coração
E=não 0.75
D=não saudável

DP=sim
PC=sim 0.8
Pressão A=sim
PS=alta Dor no peito
sanguínea
PC=sim 0.6
PC=sim 0.85
A= não
PC=não 0.2
PC=não 0.4
A=sim
PC=não 0.1
A=não
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Contrução da Rede

É feita em dois passos:

Criação da estrutura da rede

Estimativa para montar a tabela de probabilidades para cada nodo
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN) – Estrutura da Rede

Seja T=(X1, X2, … Xd) a ordem das variáveis


for j=1 to d do
XT( j) é a variável de maior ordem em T
π(XT( j)) = {XT(1), XT(2),...,XT( j-1)} são variáveis que precedem XT( j)
remover as variáveis de π(XT( j)) que não afetam Xj
criar um arco entre XT( j) e as variáveis que sobraram em π(XT( j))
end for
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Exemplo de construção da topologia

Passo 1: assumir a ordem (E, D, PC, A, DP, PS)

Laço for:
P(D|E) → simplificado para P(D) pois D não é afetado por D
P(PC|E,D) → não pode ser simplificado, fica P(PC|E,D)
P(A|E,D,PC) → simplificado para P(A|D)
P(DP|E,D,PC,A) → simplificado para P(DP|PC,A)
P(PS|E,D,PC,A,DP) → simplificado para P(PS|PC)

Baseado nessas dependências condicionais criar arcos entre nodos

Problema Coração – Exercício

Problema Coração – Dieta

Azia – Dieta

Dor no peito – Problema no coração

Dor no peito – Azia

Pressão sanguínea – problema no coração
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Contrução da Rede

É feita em dois passos:

Criação da estrutura da rede

Estimativa para montar a tabela de probabilidades para cada nodo

Exatamente como foi feito no classificador ingênuo
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Problemas na contrução da Rede

Exige o conhecimento de um especialista para saber como as variáveis se afetam

Topologia da rede pode variar ao se aplicar o algoritmo numa ordem diferente

Em princípio é necessário eximinar todas as d! possibilidades de ordenamento

inviável

Construir a topologia de uma BBN sem conhecimento prévio (especilialista) ainda é
um desafio nessa área.
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Inferência: como usar a rede?

Algoritmos:

Eliminação de Variáveis

Árvore de propagação clique

Condicionamento recursivo

Inferência manual
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Exemplo de Inferência

Caso 1: nenhum conhecimento prévio

Probabilidade de uma pessoa ter problema no coração

Pode acontecer de 4 maneiras diferentes
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

E=sim D=saudável
Exercício Dieta
0.7 0.25

PC=sim
E=sim 0.25
D=saudável
A=sim
E=sim 0.45
D=saudável 0.2
D= não saudável
E=não 0.55 D= não 0.85
Problema saudável
D=saudável azia
coração
E=não 0.75
D=não saudável

DP=sim
PC=sim 0.8
Pressão A=sim
PS=alta Dor no peito
sanguínea
PC=sim 0.6
PC=sim 0.85
A= não
PC=não 0.2
PC=não 0.4
A=sim
PC=não 0.1
A=não
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Exemplo de Inferência

Caso 1: nenhum conhecimento prévio

Probabilidade de uma pessoa ter doença do coração

Pode acontecer de 4 maneiras diferentes

Usando a lei da probabilidade total:

P  X = i=1..m P X | Y i ∗P Y i


P(PC=sim) =
P(PC=sim|E=sim,D=saudavel)*P(E=sim,D=saudavel) +
P(PC=sim|E=sim,D=nao saudavel)*P(E=sim,D=nao saudavel) +
P(PC=sim|E=nao,D=saudavel)*P(E=nao,D=saudavel) +
P(PC=sim|E=nao,D=nao saudavel)*P(E=nao,D=nao saudavel) = 0.49

P(PC=nao) = 1 – P(PC=sim) = 0.51


Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Exemplo de Inferência

Probabilidade de uma pessoa ter problema de coração, sabendo-se que ela tem
pressão alta

P(PC=sim|PS=alta) = P(PS=alta|PC=sim)*P(PC=sim) / P(PS=alta)

P(PC=sim|PS=alta) = P(PS=alta|PC=sim)*0.49 / P(PS=alta)


P(PS=alta) = P(PS=alta|PC=sim)*P(PC=sim) + P(PS=alta|PC=não)*P(PC=não)

P(PS=alta) = 0.85 * 0.49 + 0.2 * 0.51 = 0.5185

P(PS=alta) = 0.5185


P(PC=sim|PS=alta) = 0.85 * 0.49 / 0.5185

P(PC=sim|PS=alta) = 0.8033

P(PC=nao|PS=alta) = 1-0.8033 = 0.1967
Classificadores Bayesianos


Rede Bayesiana de Brenças (BBN)

Características

BBN's fornecem uma abordagem para captuarar o conhecimento a priori para um
domínio particular usando um modelo gráfico.

Construir o modelo pode ser bastante custoso. Entretanto, uma vez que o modelo
está pronto, a adição de novas variáveis é simples.

São adequadas para trabalhar com dados incompletos. Instâncias que tenham
atributos faltantes podem ser tratadas integrando-se a probabilidade de todas as
variáveis possíveis para este atributo.

Como a informação é combinada probabilisticamente com conhecimento prévio, o
método é muito robusto ao sobretreinamento (overfitting).