Você está na página 1de 25

Introduo a

Sistemas Inteligentes
Noes de Preparao de Dados e
Minerao de Regras de Associao
Prof. Ricardo J. G. B. Campello
ICMC / USP

Crditos
Parte deste material consiste de adaptaes
e extenses dos originais:

gentilmente cedidos pelos professores Eduardo


R. Hruschka (baseados no curso de Gregory PiatetskyShapiro, disponvel no stio http://www.kdnuggets.com) e
Andr C. P. L. F. de Carvalho
do livro de (Tan et al., 2006)

Aula de Hoje


Noes de pr-processamento de dados

Introduo minerao de regras de associao




Medidas de suporte e confiana

Princpio Apriori

Regras de associao

Relembrando KDD...
Avaliao
Minerao
de Dados
Padres

Transformao
Pr-processamento
e Limpeza

Conhecimento

Dados
transformados
Dados
Pr-processados

Seleo
Dados
alvo
Dados
originais

Fayyad et al 1997
4

Preparao de Dados


Tornar os dados adequados para utilizao


na etapa de minerao
Envolve basicamente as etapas de:


Seleo

Limpeza e Pr-Processamento

Transformao

Seleo


Toma-se um subconjunto de interesse dentre


os dados disponveis


Subconjunto de registros


exemplos, instncias ou objetos

Subconjunto de atributos


campos, variveis ou caractersticas

considerados relevantes para o problema




os demais so claramente irrelevantes e descartados manualmente

Exemplo
Conjunto com dados clnicos

1.000.000
cdigo interno, nome,
2
profisso, peso, altura,
1
cdigosexo,
interno,
nome,
estado
civil, renda,
cdigo
interno,
nome,
profisso,
peso,
altura,
escolaridade,
sangue,
profisso,
peso,civil,
altura,
sexo, estado
renda,
data nasc.,
endereo,
sexo,
estado civil,
renda,
escolaridade,
sangue,
fone, email,
hist. visitas,
escolaridade,
sangue,
data nasc.,
endereo,
exame 1, , exame N, ...
data
nasc.,
endereo,
fone,
email,
hist. visitas,
fone,
email,
hist.
visitas,
exame 1, , exame
N, ...
exame 1, , exame N, ...

dos pacientes
986
cdigo interno, nome,
profisso, peso, altura,
1
cdigosexo,
interno,
nome,
estado
civil, renda,
cdigo
interno,
nome,
profisso,
peso,
altura,
escolaridade, sangue,
profisso,
peso,civil,
altura,
sexo, estado
renda,
endereo,
data nasc.,
sexo,
estado
civil,
renda,
escolaridade,
sangue,
fone, email,
hist. visitas,
escolaridade,
sangue,
data nasc.,
exameendereo,
1, , exame N, ...
data
nasc.,
endereo,
fone,
email,
hist. visitas,
fone,
email,
hist.
visitas,
exame 1, ,
exame
N, ...
exame 1, , exame N, ...

17

Pr-Processamento e Limpeza


Melhorar a qualidade dos dados e facilitar


sua posterior utilizao
As principais operaes so


Eliminar dados duplicados

Agregar dados

Lidar com valores ausentes

Lidar com rudo

Transformaes


Inclui diversas operaes, tais como:




Seleo automtica de atributos

Extrao de caractersticas

p/ obter um menor no. de atributos mais relevantes a partir dos dados brutos

Discretizaes e converses


p/ eliminar atributos irrelevantes e/ou redundantes

entre atributos de diferentes naturezas

Normalizaes


para que os atributos ou mesmo os objetos apresentem determinadas


propriedades (usualmente estatsticas) de interesse

Exemplo


Normalizaes:


Re-escalonamento


Padronizao


Converter todos os valores de um atributo para [0, 1] ou [-1,+1]

Fazer com que cada atributo possua mdia nula e varincia 1

Podem ser fundamentais em algoritmos que veremos




p. ex. KNN

x=

( x min x )
(max x min x )

x=

x x

10

Anlise de Associao
 Descoberta e interpretao de padres
de inter-relacionamento interessantes
que podem estar escondidos em grandes
bases de dados de transaes

11

Exemplos de Transaes:
ID Produto
1 leite, po, ovos
2 po, acar
3 po, cereal
4 leite, po, acar
5 leite, cereal
6 po, cereal
7 leite, cereal
8 leite, po, cereal, ovos
9 leite, po, cereal

12

Anlise de Associao
 Variados Campos de Aplicao
 Por exemplo:
 Mercados: relaes
consumo, etc.

entre

produtos, perfis

de

 Meteorologia:
relaes
entre
fenmenos
atmosfricos, terrestres, martimos, etc.
 Medicina: relaes
doenas, etc.

entre

exames,

sintomas,

 Bioinformtica...

13

Exemplo de Base de Dados de Transaes:


T Produtos
1 A, B, E
2 B, D
3 B, C
4 A, B, D
5 A, C
6 B, C
7 A, C
8 A, B, C, E
9 A, B, C

Exemplos = Transaes

Itens:
A = leite
B= po
C= cereal
D= acar
E= ovos
14

Exemplo de Base de Dados de Transaes:


Produtos convertidos
em atributos binrios
assimtricos:
T Produtos
1 A, B, E
2 B, D
3 B, C
4 A, B, D
5 A, C
6 B, C
7 A, C
8 A, B, C, E
9 A, B, C

3
4

0
1

1
1

1
0

0
1

0
0

7
8

1
1

0
1

1
1

0
0

0
1

15

NOTA
 Todas as discusses a seguir presumem que as
bases de dados de transaes em questo so
binrias assimtricas
 Mtodos para anlise de associao sobre
bases no binrias, tais como, por exemplo,
aquelas contendo transaes de consumo com
a quantidade e/ou preo dos itens
envolvidos, esto alm do escopo deste curso.

16

Definies:
 Conjunto de Itens (itemset) I: um subconjunto de
itens possveis
 Exemplo: I = {A, B, E} (ordem no importante)
 Pode ser parte de (ou toda) uma transao (t)

 Suporte(I) = no de transaes t que contm I


 Na base de dados anterior temos que: sup({A, B, E}) = 2,
sup({B, C}) = 4

 Conjunto de Itens Freqentes: sup(I) sup_mn,


onde sup_mn o suporte mnimo, definido pelo usurio
17

Propriedade do Subconjunto:
 Todo subconjunto de um conjunto
freqente tambm freqente
 Por qu?
 Exemplo: suponhamos que {A,B} seja freqente.
Dado que cada ocorrncia de {A,B} inclui A e B,
ento A e B tem de ser eles prprios freqentes
 Quase todos os algoritmos para extrair regras de
associao so baseados nesta propriedade

18

Regras de Associao:
 Regra de Associao R :
 Conjunto de itens 1 Conjunto de itens 2
 Conjuntos de itens 1 e 2 disjuntos

 Interpretao: se determinada transao inclui o


conjunto de itens 1, ento esta tambm inclui (ou
provavelmente inclui) o conjunto de itens 2
 Cuidado! No deve ser interpretada como causa efeito!

 Exemplos:
 A,B E,C
 A B,C
19

Como Obter Regras de Associao?


 Dado um conjunto de itens freqentes {A, B, E}, quais

so as possveis regras de associao?


 A {B, E}
 {A, B} E
 {A, E} B
 B {A, E}
 {B, E} A
 E {A, B}

10

Suporte e Confiana:
 Seja R: I J uma regra de associao
 sup(R) = sup(I J) / N
 N = No de transaes (fixo)
 Logo, a unio dos conjuntos I J define o suporte

 conf(R) = sup(I J) / sup(I) a confiana de R


 Nmero de transaes que possuem I e J dividido pelo
nmero de transaes que possuem I

 Regras de associao com mnimo suporte so s


vezes chamadas de regras fortes
21

Exemplo de Regras de Associao


Formadas por 3 Itens:
 Dado um conjunto de itens {A,B,E} com

suporte = 2, quais regras de associao


possuem conf_mn = 50% ?
A, B E : conf=2/4 = 50%
A, E B : conf=2/2 = 100%
B, E A : conf=2/2 = 100%
E A, B : conf=2/2 = 100%

T Lista de itens
1 A, B, E
2 B, D
3 B, C
4 A, B, D
5 A, C
6 B, C
7 A, C
8 A, B, C, E
9 A, B, C

Confiana menor do que a mnima requerida:


A B, E : conf=2/6=33% < 50%
B A, E : conf=2/7=28% < 50%

22

11

Exemplo (Freitas & Lavington):


Se caf ento po; Suporte=0,3 / Confiana=1
Se caf ento manteiga; Suporte=0,3 / Confiana=1
Se po ento manteiga; Suporte=0,4 / Confiana=0,8
Se caf E po ento manteiga; Suporte=0,3 / Confiana=1
R

Leite

Caf

Cerveja

Po

Manteiga

Arroz

Feijo
N

10

23

Encontrando Regras de Associao:


 Uma regra possui dois parmetros: sup_mn e conf_mn;
 sup(R) sup_mn & conf(R) conf_mn

 Problema:
 Encontrar todas as regras que forneam sup_mn e conf_mn
pr-estabelecidos

 Inicialmente, encontrar todos os conjuntos de itens


freqentes
 Em seguida, extrair regras com elevada confiana a
partir desses conjuntos
24

12

Gerao de Itens Frequentes


null

AB

AC

AD

AE

BC

BD

BE

CD

CE

DE

ABC

ABD

ABE

ACD

ACE

ADE

BCD

BCE

BDE

CDE

ABCD

ABCE

ABDE

ACDE

BCDE

d itens 2d
possveis candidatos ...

ABCDE

Tan,Steinbach, Kumar

Introduction to Data Mining

4/18/2004

25

Principal Forma de Reduzir o No. de Candidatos




Princpio Apriori:
Se um conjunto de itens frequente, ento todos os
seus subconjuntos tambm devem ser

Vlido devido seguinte propriedade do suporte:

X , Y : ( X Y ) sup( X ) sup(Y )
Propriedade anti-monotnica
suporte de um conjunto de itens nunca excede os suportes
dos seus subconjuntos !


Tan,Steinbach, Kumar

Introduction to Data Mining

4/18/2004

26

13

Ilustrando o Princpio

descoberto ser
infrequente ...

candidatos
podados !
Tan,Steinbach, Kumar

Introduction to Data Mining

4/18/2004

27

Ilustrando o Princpio

Item
Bread
Coke
Milk
Beer
Diaper
Eggs

Suporte
4
2
4
3
4
1

sup_mn = 3

Conjuntos de Tamanho 1
Conj. de Itens
{Bread,Milk}
{Bread,Beer}
{Bread,Diaper}
{Milk,Beer}
{Milk,Diaper}
{Beer,Diaper}

Suporte
3
2
3
2
3
3

Conjuntos de Tamanho 2
(no necessrio gerar
candidatos envolvendo
Coke ou Eggs!)

Conj. de Tamanho 3

Tan,Steinbach, Kumar

Introduction to Data Mining

4/18/2004

28

14

Gerao de Candidatos
Mtodo Fk-1 x F1 :

Gera conjuntos de itens de tamanho k unindo conjuntos de


itens frequentes de tamanho k 1 e de tamanho 1

Nota: no o mtodo mais eficiente de gerao de candidatos,


mas simples e basta para as necessidades do nosso curso !

Exemplo (k = 3):

{Bread, Diapers} {Milk} {Bread, Diapers, Milk}

Mas como evitar redundncias...?

Ex.: {Milk, Diapers} {Bread} {Milk, Diapers, Bread}


29

Gerao de Candidatos
Mtodo Fk-1 x F1 :




Para evitar redundncias, basta manter os itens ordenados


internamente a cada conjunto e gerar os candidatos de forma
organizada, unindo cada conj. frequente de tamanho (k 1)
apenas com os itens freq. de ordem superior na lista ordenada
Exemplo:

Candidatos de Tamanho 2

Itens Frequentes

{Beer, Bread}

Beer

{Beer, Cola}

Candidatos de Tamanho 3
{Beer, Bread, Cola}

Bread

{Beer, Diapers}

{Beer, Bread, Diapers}

Cola

{Bread, Cola}

{Beer, Cola, Diapers}

Diapers

{Bread, Diapers}

{Bread, Cola, Diapers}

{Cola, Diapers}

15

Gerao de Candidatos

Item
Bread
Coke
Milk
Beer
Diaper
Eggs

Suporte
4
2
4
3
4
1

sup_mn = 3

Conjuntos de Tamanho 1
Conj. de Itens
{Bread,Milk}
{Bread,Beer}
{Bread,Diaper}
{Milk,Beer}
{Milk,Diaper}
{Beer,Diaper}

Suporte
3
2
3
2
3
3

Gerao de candidatos deve seguir


at que, para algum k, no haja
conjuntos frequentes de k itens

Tan,Steinbach, Kumar

Conjuntos de Tamanho 2

Conj. de Tamanho k

Introduction to Data Mining

4/18/2004

31

Poda de Candidatos
Note que todo o procedimento demanda computar o
suporte de cada conjunto candidato gerado...

Varrer a BD e tentar casar cada candidato com cada transao...

Pode ser bem mais eficiente:




mantendo ordenadas as transaes e os candidatos

utilizando estruturas de dados apropriadas

Mesmo assim computacionalmente caro !


Custo computacional pode ser amenizado se for possvel eliminar
alguns candidatos sem computar diretamente seu suporte
32

16

Poda de Candidatos (Exemplo)


 Dados 5 conjuntos freqentes de 3 itens:
{A B C}, {A B D}, {A C D}, {A C E}, {B C D}

 Conjunto candidato formado por 4 itens:


{A B C D}
Pode ser freqente, pois todos os seus subconjuntos de 3 itens o so

 E o que dizer sobre o conjunto {A C D E} ?


Como {C D E} no freqente, o conjunto {A C D E} tambm no !
Pode ser descartado

33

Rotina Bsica


Algoritmo:
Seja k=1
Gere conjuntos de itens frequentes de tamanho 1
Repita at que no haja mais conjuntos frequentes


Gere conjuntos candidatos de tamanho (k+1)

Pode os candidatos que possuem subconjuntos de


tamanho k que no so frequentes

Conte o suporte dos candidatos remanescentes varrendo a


base de dados e elimine os candidatos infrequentes , ou
seja, aqueles com contagem menor que sup_mn

Tan,Steinbach, Kumar

Introduction to Data Mining

4/18/2004

34

17

Exerccio:
 Gere os conjuntos de itens frequentes com sup_mn = 5 na BD abaixo:
Nota: cada par atributo = valor um item !

(Witten and Frank, 2005)


Outlook

Temp

Humidity

Windy

Play

Sunny

Hot

High

False

No

Sunny

Hot

High

True

No

Overcast

Hot

High

False

Yes

Rainy

Mild

High

False

Yes

Rainy

Cool

Normal

False

Yes

Rainy

Cool

Normal

True

No

Overcast

Cool

Normal

True

Yes

Sunny

Mild

High

False

No

Sunny

Cool

Normal

False

Yes

Rainy

Mild

Normal

False

Yes

Sunny

Mild

Normal

True

Yes

Overcast

Mild

High

True

Yes

Overcast

Hot

Normal

False

Yes

Rainy

Mild

High

True

No

Voltando ao Exemplo Anterior (Freitas & Lavington)...

Leite

Caf

Cerveja

Po

Manteiga

Arroz

Feijo

10

36

18

 Passo 1 Suporte p/ Conjuntos com 1 Item:


 Arroz: 2; Caf: 3; Cerveja: 2; Feijo: 2; Leite: 2;
Manteiga: 5; Po: 5.
 Considerando sup_mn = 3:
 Caf, Manteiga e Po seriam os itens freqentes!

 Passo 2 Suporte p/ Conjuntos com 2 Itens:


Procurar considerando somente os itens freqentes
Caf, Manteiga, Po

37

 Passo 2 ...
{Caf, Manteiga}:

Suporte = 3;

{Caf, Po}:

Suporte = 3;

{Manteiga, Po}:

Suporte = 4;

Conjuntos de itens freqentes para sup_mn = 3:


{Caf, Manteiga}, {Caf, Po}, {Manteiga, Po}

38

19

 Passo 3 Suporte p/ Conjuntos com 3 Itens:


 A partir dos conjuntos anteriores obtm-se:
 {Caf, Manteiga, Po}: Suporte = 3;

 Nota:
 Antes de calcular o suporte deste conjunto, ele foi submetido
(e sobreviveu) ao procedimento de poda que verificou que
todos os seus subconjuntos de tamanho 2 so freqentes:
 {Manteiga, Po}, {Caf, Po}, {Caf, Manteiga}

39

Leite

Caf

Cerveja

Po

Manteiga

Arroz

Feijo

10

(Freitas & Lavington)

 Em Resumo:
 Sup({Caf}) = 3 e Sup({Manteiga}) = Sup({Po}) = 5
 Sup({Caf, Manteiga}) = 3
 Sup({Caf, Po}) = 3
 Sup({Manteiga, Po}) = 4
 Sup({Caf, Manteiga, Po}) = 3

20

Gerando Regras de Associao:


 Dados os conjuntos de itens freqentes:
 Para cada conjunto I :
 Para cada subconjunto J de I :
 Determinar todas as regras de associao da forma:

(I J) J
 Eliminar aquelas com medida de confiana menor que
o limiar mnimo pr-estabelecido (conf_mn)

41

Voltando ao Exemplo Anterior (Freitas & Lavington)...


Sup({Caf) = 3; Sup({Manteiga}) = Sup({Po}) = 5
Sup({Caf, Manteiga}) = 3; Sup({Caf, Po}) = 3; Sup({Manteiga, Po}) = 4
Sup({Caf, Manteiga, Po}) = 3
Calcula-se, ento, a Confiana das regras candidatas:

a)

{Caf, Manteiga} :
Se caf ento manteiga conf.=1,0
Se manteiga ento caf conf.=0,6

b)

{Caf, Po} :
Se caf ento po conf.=1,0
Se po ento caf conf.=0,6

c)

{Manteiga, Po} :
Se manteiga ento po conf.=0,8
Se po ento manteiga conf.=0,8

d)

{Caf, Manteiga, Po} :


Se caf, po ento manteiga conf.=1,0
Se caf, manteiga ento po conf.=1,0
Se manteiga, po ento caf conf.=0,75
Se caf ento po,manteiga conf.=1,0
e assim por diante, escolhendo-se depois as regras que respeitam conf_mn.

21

Exerccios
Complete o exemplo anterior selecionando
todas as regras de associao que se pode
extrair da BD que tenham conf_mn = 0.8
Explique porque no preciso calcular o
suporte das regras candidatas (apenas a
confiana) para saber que essas regras
necessariamente possuem suporte maior
ou igual ao mnimo (0,3 neste exemplo)
43

Nota Sobre a Gerao de Regras


 A gerao do conjunto de regras tambm
pode se beneficiar do princpio apriori
 simples observar que o princpio implica a
seguinte propriedade da confiana:
 Confiana de regra de um dado conj. de itens no cresce
se passamos itens da esquerda para a direita da regra
 Por exemplo, dado um conj. de itens {A B C D}:
 conf(ABC D) c(AB CD) c(A BCD)
44

22

Gerao de Regras no Algoritmo Apriori


Regra de Baixa
Confiana

Tan,Steinbach, Kumar

Introduction to Data Mining

4/18/2004

45

Filtrando Regras de Associao:


 Problema: grandes BDs (e.g. supermercados) podem
produzir um nmero elevado de regras de associao,
mesmo com valores razoveis para suporte e confiana...
 Esse problema ainda mais crtico em BDs com distribuies de
suporte desbalanceadas...

 Possveis solues:
 Pr-processar a base e/ou filtrar regras...

 Medidas de interesse (objetivas e subjetivas) para filtragem:


 Tpico fundamental em anlise de associao, mas est alm do
escopo deste curso...
46

23

Filtrando Regras de Associao:


 Medidas de Interesse Subjetivas:
 Geralmente so dependentes do problema
 Tipicamente so especificadas por um especialista de domnio e
utilizadas para filtrar regras que no satisfazem as especificaes
 podem ser formalizadas em termos lgicos ou matemticos e
inseridas no processo automtico de filtragem; ou
 podem ser aplicadas de forma iterativa pelo prprio especialista em
um ambiente iterativo amigvel (visual data mining)

 Medidas de Interesse Objetivas:


 Alternativas a Suporte - Confiana
47

Exerccios Adicionais


Tome alguns conjuntos de itens de diferentes


tamanhos que voc gerou no exerccio
envolvendo a base de (Witten & Frank, 2005),
gere regras de associao a partir desses
conjuntos e calcule a confiana de cada uma
dessas regras.

48

24

Exerccios Adicionais


A propriedade que a confiana de uma regra


de um dado conj. de itens no cresce se
passamos itens da esquerda para a direita da
regra denominada anti-monotnica. Com
base na definio da medida de confiana,
explique porque essa propriedade vlida.

49

Referncias


P.-N. Tan, Steinbach, M., and Kumar, V.,


Introduction to Data Mining, Addison-Wesley, 2006
I. H. Witten and E. Frank, Data Mining: Practical
Machine Learning Tools and Techniques, 2nd Edition,
Morgan Kaufmann, 2005

50

25

Você também pode gostar