Classificadores Bayesianos
AULA 12
DATA MINING
Sandra de Amo
11/5/2015
Mestrado em Ciência da Computação
1
Classificadores Bayesianos
Classificadores estatísticos
Classificam um objeto numa determinada
classe C baseando-se na probabilidade do
objeto pertencer à classe C
Vantagens
11/5/2015
Processo de classificação rápido
Grande acurácia quando aplicados a grandes
volumes de dados.
Mestrado em Ciência da Computação
2
Classificador Bayesiano Simples
Hipótese: atributos não-classe são independentes
Valor de um atributo não influencia o valor de outros
atributos
Exemplo:
Idade, Profissão, Renda não são independentes. Um médico
tem uma probabilidade maior de ter uma renda alta do que um
porteiro.
Gênero, Cidade, Idade são independentes
Porque considerar atributos independentes ?
11/5/2015
Cálculos envolvidos no processo de classificação são
simplificados
Mestrado em Ciência da Computação
3
Como funciona um classificador
Bayesiano simples
Classificador Eager –
Constrói um modelo de classificação baseado em probabilidades
condicionais
Método geral
D = base de treinamento – (tuplas classificadas)
X = (a, b, c) : tupla não classificada
X pode ser vista como um evento conjunto
X é classificada na classe Ci se
11/5/2015
A=aeB=beC=c
P[Ci|X] > P[Cj|X] para todo j diferente de i
P[Ci|X] = probabilidade condicional do evento Classe= Ci acontecer
dado que o evento conjunto A = a e B = b e C = c acontece.
Mestrado em Ciência da Computação
4
Classificação de uma tupla X
Envolve o cálculo de todas as probabilidades
condicionais P[Ci|X] para todo i = 1,…,n,
onde n = número de classes
A probabilidade mais alta corresponde à
classe em que X será classificada
P[Ci|X] : Probabilidade Posterior
11/5/2015
Mestrado em Ciência da Computação
5
Como calcular as probabilidades posteriores ?
P[X ∩ C] = P[X|C] * P[C] = P[C|X] * P[X]
Teorema de Bayes P[C|X] = P[X|C] * P[C]
P[X]
P[X] é constante (pois X está fixa)
Para maximizar P[C|X] basta maximizar o numerador
P[X|C] * P[C]
11/5/2015
Mestrado em Ciência da Computação
6
Como maximizar P[X|C] * P[C]
P[C] é calculada através do banco de amostras
É preciso encontrar a classe C para a qual o produto
P[X|C] * P[C] é máximo
Como calcular P[X|C] ?
P[X|C] = P[A1=x1,A2=x2, ...,An = xn |C] onde X =
(x1, x2, ..., xn)
11/5/2015
Mestrado em Ciência da Computação
7
Classificador Bayesiano Naïve
Hipótese: Independência condicional dos atributos
A1,...,An dado C
A1, ..., An são ditos independentes dado C se
P[Ai=xi | A1=x1 ,..., Ai-1 =xi-1,...,An=xn,C] =
P[Ai=xi | C]
para todo i ϵ {1,...,n}
11/5/2015
Mestrado em Ciência da Computação
8
Corolário
A1, ..., An são independentes dado C se e somente se
P[A1=x1,A2=x2,... , An= xn |C] = P[A1=x1| C] * … * P[An=xn| C]
Prova: Aplicando o Teorema de Bayes para
P[A1=x1,A2=x2,... , An= xn,C] :
P[A1=x1,A2=x2,... , An= xn,C] = P[A1=x1,A2=x2,...,An = xn |C] . P[C]
P[A1=x1, A2=x2,... , An= xn,C] = P[A1=x1| A2=x2,...,An=xn, C]. P[A2=x2,...,An=xn,C]
Logo: P[A1=x1,A2=x2,...,An = xn |C] . P[C] = P[A1=x1| A2=x2,...,An=xn, C].
P[A2=x2,...,An=xn,C] =
P[A1=x1| A2=x2,...,An=xn, C]. P[A2=x2,...,An=xn|C]. P[C]
Logo: P[A1=x1,A2=x2,... An=xn |C] =
P[A1=x1| A2=x2,...,An=xn, C]. P[A2=x2, ...,An=xn|C] =
P[A1=x1| C]. P[A2=x2,..., An=xn|C]
(usando a condição de independência dos atributos A1, ...., An)
Repetindo o processo para P[A2=x2,...,An=xn|C] e assim por diante, concluimos a prova.
11/5/2015
Mestrado em Ciência da Computação
9
Cálculos
Cada P[Ai=xi | C ] é calculada da seguinte
maneira
Se Ai é atributo categórico
P[Ai=xi | C ] = P[Ai=xi,C ] / P[C] =
núm. de tuplas classificadas em C com Ai = xi
Total de tuplas classificadas em C
11/5/2015
Mestrado em Ciência da Computação
10
Cálculos
Se Ai é atributo contínuo (não categórico)
P[Ai=xi | C ] = g(Ai= xi, μ(C) , σ(C))
Onde g = função de distribuição de Gauss
μ(C) = média
σ(C) = desvio padrão
g(A= x, μ(C) , σ(C)) =
1
e
-(x- μ) 2
2
2σ
√2Π * σ
11/5/2015
Mestrado em Ciência da Computação
11
Resumo
Input:
um banco de tuplas classificadas
Uma tupla X a ser classificada
Output:
P[C1|X], P[C2|X], ..., P[Cn|X], onde C1,...,Cn
são todos os valores do atributo classe C
11/5/2015
A tupla X é classificada na classe Ci para a qual o
número P[Ci|X] é o maior.
Mestrado em Ciência da Computação
12
Compra-computador
Exemplo
ID
IDADE
RENDA
ESTUDANTE
CREDITO
CLASSE
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
11/5/2015
Mestrado em Ciência da Computação
13
Exemplo
C1= sim, C2 = não
Tupla desconhecida X = (≤ 30, Média,Sim,Bom)
Precisamos maximizar P[X|Ci] * P[Ci] para i =1,2
P[C1] = 9/14 = 0.643
P[C2] = 5/14 = 0.357
P[Idade ≤ 30 | Compra = Sim ] = 2/9 = 0.222
P[Idade ≤ 30 | Compra = Não ] = 3/5 = 0.6
P[Renda = Média | Compra = Sim ] = 4/9 = 0.444
P[Renda = Média | Compra = Não ] = 2/5 = 0.4
11/5/2015
Mestrado em Ciência da Computação
14
Exemplo
P[Est = sim | Compra = Sim ] = 6/9 = 0.667
P[Est = sim | Compra = Não ] = 1/5 = 0.2
P[Crédito = bom| Compra = Sim ] = 6/9 = 0.667
P[Crédito = bom | Compra = Não ] = 2/5 = 0.4
P[X|C1] = 0.222*0.444*0.667*0.667 = 0.044
P[X|C2] = 0.6*0.4*0.2*0.4 = 0.019
P[X|C1]*P[C1] = 0.044*0.643 = 0.028
P[X|C2]*P[C2] = 0.019*0.357 = 0.007
Tupla X classificada na classe C1 (compra computador = sim)
11/5/2015
Mestrado em Ciência da Computação
15
Redes Bayesianas de Crença
(Belief Bayesian Networks)
Utilizadas quando a probabilidade de um
atributo assumir um valor depende da
probabilidade de valores para os outros
atributos.
Não há independência entre os atributos
11/5/2015
Mestrado em Ciência da Computação
16
O que é uma rede bayesiana de crença ?
Um grafo dirigido acíclico
Cada vértice representa um atributo
Arestas ligando os vértices representam as dependências
entre os atributos.
y
x
X depende de Y
Y é pai de X
Tabela de Probabilidade Condicional (CPT) para cada
atributo Z
x
y
z
11/5/2015
P[Z |{X,Y}]
Mestrado em Ciência da Computação
CPT (Z)
17
Tabela CPT (Z)
Linhas : possíveis valores do atributo Z
Colunas : combinações possíveis de valores
dos pais de Z
Na posição (i,j) da tabela temos a
probabilidade condicional de Z ter o valor da
linha i e seus pais terem os valores
especificados na coluna j.
11/5/2015
Mestrado em Ciência da Computação
18
Tabela CPT(Z)
Valores de X = { 1, 3}
Valores de Y = {2,4}
Valores de Z = {5,6}
X
Y
Z
11/5/2015
X=1
Y=2
X=1
Y=4
X=3
Y=2
X=3
Y=4
Z=5
0.5
0.3
0.2
0.1
Z=6
0.5
0.7
0.8
0.9
Mestrado em Ciência da Computação
19
Como classificar usando uma Rede
Bayesiana de Crença
Input:
Uma Rede Bayesiana de Crença
Um atributo da rede selecionado como sendo o
atributo classe (pode haver diversos atributosclasse na rede)
Uma tupla X a ser classificada.
Output: P[C1|X], P[C2|X], ..., P[Cn|X]
11/5/2015
Mestrado em Ciência da Computação
20
Cálculo das probabilidades P[C|X]
Teorema de Bayes P[C|X] = P[X|C] * P[C]
P[X]
P[X] é constante (pois X está fixa)
Para maximizar P[C|X] basta maximizar o numerador
P[X|C] * P[C]
Como calcular P[X|C] quando existe dependência entre
os atributos da tupla X ?
11/5/2015
Mestrado em Ciência da Computação
21
Cálculos
P[X|C=Ci] * P[C=Ci] = P[X ∩ (C=Ci)] =
P[A1=x1 | pais(A1) ] * P[A2=x2 | pais(A2) ] * ...
* P[An = xn | pais(An) ]* P[C=Ci | pais(C) ]
Prova (Exercicio em aula)
Cada probabilidade conditional P[Ai=xi | pais(Ai) ] é
fornecida na CPT(Ai), presente no grafo da rede bayesiana de
input.
11/5/2015
Mestrado em Ciência da Computação
22
Exemplo
CPT(HF)
CPT(CP)
HF
CP
F
E
HF= 1
F=1
HF= 1
F=0
HF= 0
F=1
1
0.8
0.5
0.7
0.1
0
0.2
0.5
0.3
0.9
CPT(E)
RX+
D
HF =história familiar
F = fumante
CP = câncer de pulmão
11/5/2015
F= 0
1
0.03
0.2
0
0.97
0.8
1
0.05
0
0.95
CPT(F)
CPT(RX+)
F=1
E = Efisema
D = Dispnéia
RX+ = raio X +
HF
HF= 0
F=0
F
CP=1
CP=0
1
0.9
0.02
0
0.1
0.98
1
0.35
0
0.65
CPT(D)
E=1, CP=1 E=1, CP=0 E=0, CP=1 E=0, CP=0
1
0
0.99
0.2
0.3
0.01
0.01
0.8
0.7
0.99
Mestrado em Ciência da Computação
23
Cálculos
X = (HF=1, F=1, E = 0, RX+ = 1, D=0)
P[X|CP=i] * P[CP=i] =
P[HF=1] * P[F=1] * P[E=0 | F=1] * P[RX=1 |CP=i]*
P[D=0 |CP=i, E=0] * P[CP=i | HF = 1, F=1).
Para maximizar P[X|CP=i] * P[CP=i] basta maximizar
P[RX=1 |CP=i]* P[D=0 |CP=i, E=0] * P[CP=i | HF = 1, F=1)
11/5/2015
Mestrado em Ciência da Computação
24
Problema de Classificação
Input:
Um conjunto de amostras classificadas
Output: Uma rede bayesiana de crença
é preciso descobrir :
a topologia da rede e
as tabelas de probabilidade CPT
Classificador = Rede Bayesiana
11/5/2015
Mestrado em Ciência da Computação
25
Exercício
HF
F
E
D
RX+
CP
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
Considere a rede bayesiana do
slide 23 e os casos reais à esquerda.
Pede-se a curva ROC deste
classificador.
26
11/5/2015
Mestrado em Ciência da Computação
Treinamento de uma Rede Bayesiana
Se a topologia da rede é conhecida e dispõe-se de um banco
de dados de amostras, então o treinamento consiste em
computar as tabelas CPT(Z) para cada atributo Z.
Como descobrir a topologia da rede ?
Especialistas no domínio: especificam as dependências e as
probabilidades condicionais.
Métodos automáticos: algoritmos extraem (aprendem) uma rede de
crença a partir de um banco de dados de amostras.
Técnicas de aprendizagem da topologia da rede:
11/5/2015
Algoritmo K2 (um dos pioneiros)
Algoritmos genéticos, MDL, etc
Mestrado em Ciência da Computação
27
Referências
Uma introdução
D. Heckerman. Bayesian Networks for Knowledge Discovery. In U. M. Fayyad,
G. Piatetsky-Shapiro, P. Smyth, R. Uthurusamy Editors. Advances in
Knowledge Discovery and Data Mining, pages 273-305. MIT Press, 1996.
Treinamento de Rede de Crença
G. F. Cooper, E. Herskovits. A Bayesian Method for the Induction of Probabilistic
Networks from Data. Machine Learning, 9, 309-347 (1992).
Livro: Finn V. Jensen, Thomas D. Nielsen: Bayesian Networks and Decision
Graphs. 2nd Edition. Springer, 2007. Capítulo 7: Learning the Structure of
Bayesian Networks.
11/5/2015
Mestrado em Ciência da Computação
28