2/18/2014Mestrado em Ciência da Computação1 Classificadores Bayesianos AULA 12 DATA MINING Sandra...

Post on 17-Apr-2015

106 views 0 download

Transcript of 2/18/2014Mestrado em Ciência da Computação1 Classificadores Bayesianos AULA 12 DATA MINING Sandra...

04/11/23 Mestrado em Ciência da Computação 1

Classificadores BayesianosAULA 12

DATA MINING

Sandra de Amo

04/11/23 Mestrado em Ciência da Computação 2

Classificadores Bayesianos Classificadores estatísticos Classificam um objeto numa determinada

classe C baseando-se na probabilidade do objeto pertencer à classe C

Vantagens Processo de classificação rápido Grande acurácia quando aplicados a grandes

volumes de dados.

04/11/23 Mestrado em Ciência da Computação 3

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 independentesnã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 independentessão independentes

Porque considerar atributos independentes ? Cálculos envolvidos no processo de classificação são

simplificados

04/11/23 Mestrado em Ciência da Computação 4

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

A = a e B = b e C = c X é classificada na classe Ci se

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.

04/11/23 Mestrado em Ciência da Computação 5

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

04/11/23 Mestrado em Ciência da Computação 6

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]

04/11/23 Mestrado em Ciência da Computação 7

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)

04/11/23 Mestrado em Ciência da Computação 8

Classificador Bayesiano NaïveHipó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}

04/11/23 Mestrado em Ciência da Computação 9

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.

04/11/23 Mestrado em Ciência da Computação 10

CálculosCada 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 = xiTotal de tuplas classificadas em C

04/11/23 Mestrado em Ciência da Computação 11

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Π * σ

04/11/23 Mestrado em Ciência da Computação 12

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 A tupla X é classificada na classe Ci para a qual o

número P[Ci|X] é o maior.

04/11/23 Mestrado em Ciência da Computação 13

ExemploID 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

Compra-computador

04/11/23 Mestrado em Ciência da Computação 14

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

04/11/23 Mestrado em Ciência da Computação 15

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)

04/11/23 Mestrado em Ciência da Computação 16

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

04/11/23 Mestrado em Ciência da Computação 17

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 xX depende de Y

Tabela de Probabilidade Condicional (CPT) para cada atributo Z

x y

z P[Z |{X,Y}]

Y é pai de X

CPT (Z)

04/11/23 Mestrado em Ciência da Computação 18

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.

04/11/23 Mestrado em Ciência da Computação 19

Tabela CPT(Z)

Z

X Y

Valores de X = { 1, 3}Valores de Y = {2,4}Valores de Z = {5,6}

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

04/11/23 Mestrado em Ciência da Computação 20

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 atributos-classe na rede)

Uma tupla X a ser classificada. Output: P[C1|X], P[C2|X], ..., P[Cn|X]

04/11/23 Mestrado em Ciência da Computação 21

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 ?

04/11/23 Mestrado em Ciência da Computação 22

CálculosP[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.

04/11/23 Mestrado em Ciência da Computação 23

Exemplo

HF= 1

F = 1

HF= 1

F = 0

HF= 0

F = 1

HF= 0

F = 0

1 0.8 0.5 0.7 0.1

0 0.2 0.5 0.3 0.9

F=1 F= 0

1 0.03 0.2

0 0.97 0.8

HF F

CP E

DRX+

HF =história familiar E = EfisemaF = fumante D = DispnéiaCP = câncer de pulmão RX+ = raio X +

CPT(CP)

CPT(E)

CP=1 CP=0

1 0.9 0.02

0 0.1 0.98

CPT(RX+)

CPT(D)

1

0

E=1, CP=1 E=1, CP=0 E=0, CP=1 E=0, CP=0

0.99 0.2

0.8

0.3 0.01

0.7 0.990.01

HF

1 0.05

0 0.95

CPT(HF)

F

1 0.35

0 0.65

CPT(F)

04/11/23 Mestrado em Ciência da Computação 24

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)

04/11/23 Mestrado em Ciência da Computação 25

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

04/11/23 Mestrado em Ciência da Computação26

Exercíciox

Considere a rede bayesiana do slide 23 e os casos reais à esquerda.

Pede-se a curva ROC deste classificador.

04/11/23 Mestrado em Ciência da Computação 27

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:

Algoritmo K2 (um dos pioneiros) Algoritmos genéticos, MDL, etc

04/11/23 Mestrado em Ciência da Computação 28

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.