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

28
06/22/22 Mestrado em Ciência da Computação 1 Classificadores Bayesianos AULA 12 DATA MINING Sandra de Amo

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

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

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

Classificadores BayesianosAULA 12

DATA MINING

Sandra de Amo

Page 2: 2/18/2014Mestrado em Ciência da Computação1 Classificadores Bayesianos AULA 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.

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

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

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

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.

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

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

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

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]

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

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)

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

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}

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

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.

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

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

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

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

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

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.

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

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

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

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

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

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)

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

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

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

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)

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

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.

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

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

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

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]

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

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 ?

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

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.

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

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)

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

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)

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

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

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

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.

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

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

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

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.