Você está na página 1de 124

Data Mining

por
Stanley Loh

1
Contexto
• Grande volume de informações  Explosão de Informações
(information explosion)  Terabytes, Pentabytes, Exabytes
• Mais informações numa edição do NYTimes do que em toda idade
média reunida
• Conseqüência ruim: sobrecarga de informações (information
overload) = estar perdido em meio a tantas informações (não
conseguir achar o que se precisa)
• Causas:
– baixo custo de armazenamento
– “não jogar fora nada” (Gmail do Google)
– publicação e difusão rápida de informações (Internet, e-mail, redes)
– difusão da tecnologia (menos tecnofobia, software e interfaces
melhores, pessoas mais acostumadas)
• Revolução comparada a:
– invenção da imprensa (Guttemberg): difusão
– invenção do telefone (Graham Bell): informação imediata

2
Evolução
• Evolução na representação de informações:
dados estruturados (bancos de dados)  semi-
estruturados (XML)  não-estruturados (textos,
imagens, sons)
• Maior complexidade de análise
– 1 dado (ex: endereço de uma pessoa, fornecendo
CPF)
– 1 dado com entrada complexa (ex: endereço de uma
pessoa fornecendo nome)
– 1 dado com entrada incompleta (ex: endereço de
uma pessoa fornecendo parte do nome)
– 1 dado agregado (ex: média de gasto dos clientes
que compram produto X na loja 1)
3
Complexidade de Busca/Análise
• quantos clientes compram produto X na segunda-feira
• qual o dia da semana onde mais freqüentemente os clientes compram cada produto
• qual o tipo de produto preferido de cada cliente específico
• qual o padrão de compra de cada cliente (mkt 1-to-1)
• encontrar perfil dos clientes
• encontrar segmentos de clientes (vários perfis diferentes)
• qual o tipo de produto preferido de cada segmento de cliente
• qual o padrão de compra de cada segmento (tipo) de cliente (mkt direto)
• quais os produtos + lucrativos
• que clientes compraram produtos + lucrativos
• quais os clientes + lucrativos
• quais os melhores clientes (+ lucrativos, + potencial, - custo)
• onde estão os melhores clientes (mapa)
• quais as reclamações mais comuns (textos)
• que clientes reclamaram do custo do produto/serviço
• que solução aplicar quando um determinado problema for relatado (conhecimento)
• encontrar gravações de clientes que falaram no produto X (sons)
• encontrar os clientes com rosto parecido (imagem)

4
Complexidade de Busca/Análise
• Mais que isto ...

• diga-me o que tem de interessante nesta


base

• sem precisar solicitar, receber o que se


precisa ou se quer

5
Definições
• Dado

• Informação

• Conhecimento

• Inteligência

6
Soluções
• Mineração de Dados

• Sistemas de Informações

• Gestão de Conhecimento

• Inteligência Empresarial (business


intelligence, inteligência competitiva)

7
Definição
• Data Mining (Mineração de Dados) é
– é a extração não-trivial de informação
implícita (nova ou previamente desconhecida)
e útil a partir de bases de dados
– Ex: Relação entre Fraldas e Cerveja, na
sexta-feira, no Wall-Mart.

8
Termos Relacionados
• Knowledge Discovery in Databases (KDD)
• Descoberta de Conhecimento em Bancos
de Dados

9
Diferenças
Descoberta de Conhecimento (Knowledge
Discovery)

Mineração de Dados (Data Mining)

10
Diferenças
• Data Mining

• Text Mining

• Web Mining

11
Processo de Descoberta
Interativo (necessita intervenção humana)
Cíclico/iterativo (deve ser feito várias vezes)

Banco 80% do trabalho/esforço está na


de Preparação e Interpretação Conhe-
Dados cimento

Amostra
Inter-
Prepa- Data Padrões
de preta-
ração Mining Estatísticos
Dados ção

Descoberta de Conhecimento
12
Profissionais Envolvidos
• Analista de Data Mining ou BI
– Conhece as técnicas e ferramentas
• Analista de Negócios ou Gestor ou
Analista da Organização
– Conhece o negócio
– Interpreta os resultados
• Cientista Social ou Estatístico
– Definição de amostras e técnicas estatísticas
13
Preparação
• Pré-processamento
• Por que ?
– não se pode minerar todos os dados
• Exemplo: Dados de vendas numa loja, durante 20 anos 
produtos que saíram de linha, anos atípicos, mudança de
comportamento dos consumidores

• Inclui
– ETL (extração, transformação, carga)
– Cleansing (limpeza)
– Qualificação
– Enriquecimento

14
Técnicas de Preparação
• valores nulos
– Ex: 50% dos registros não possuem dados para campo sexo e há um padrão dizendo
que 80% dos registros são do sexo Masc.
– desconsiderar e interpretar neste contexto
– gerar aproximação
– média
– interpolação
• correção de endereços
• Geocoding: descobrir localização geográfica
– Latitude/longitude, rua, bairro, cidade, país
• padronização de campos
• seleção (vertical ou horizontal)
– Ex: minerar menos dados
• deduplicidade de registros (registros sobre mesma entidade)
– indícios
• seleção de amostras
– períodos de tempo
– granularidade (unidade)
• seleçao de estações

15
Técnicas de Preparação
• discretização
– geração de intervalos de valores numéricos
• Ex: idade  criança, jovem, adulto, 3a idade
– Lógica Fuzzy X lógica Crisp
• Uma mesma pessoa minerada em duas categorias
• identificação única
– Cpf, nome, e-mail, endereço, telefone
– Descrição de produtos
– Phenomenal Data Mining
– Link Discovery
• integração de bases (merge)
– Ex: minerar vendas junto com cadastro de produtos e clientes, pode permitir identificar associações
entre bairro do cliente e tipo de embalagem
– Técnicas: deduplicidade, padronização
• enriquecimento
– gerar novos campos a partir dos existentes
• Ex: idade, tempo de permanência
– agregar campos de outras bases
• Ex: setores sensitários
• correção baseada em regras (restrições de integridade)
– ex: homem x cesária

16
Técnicas de Preparação
• Modificação do meio-ambiente
– fraldas e cervejas: próximas ou afastadas ?
– a partir de quando minerar ?

17
Interpretação
• Objetivo: gerar conhecimento a partir dos
padrões identificados
– Ex: no Wal-Mart, na 6a-feira, grande parte dos
clientes que compram fraldas também compram
cerveja
– Como validar ?
– Que fazer depois ?
• Visualização de resultados
– Milhares de conhecimentos descobertos
– Separa o que é novo e útil
– Focar em certos dados (linhas ou colunas)
18
Interpretação
• Alguns resultados óbvios
– Ex:
Se cidade = Porto Alegre
Então estado = RS
• Exemplo
– Descoberta numa base de pacientes com
diabetes
• Se tem tipo 1 Então toma remédio X
(probabilidade condicional de 98%)
– O interessante pode estar nas exceções
19
Interpretação
• Gráfico de vendas de uma loja pelo site (comércio eletrônico)
– Vendas em vermelho
– Média em azul
– Diretor descontinuou o ponto de venda porque a média estava muito baixa.
Certo ou errado ?
– Escolha da técnica correta; interpretação sob ótica da técnica
– Aquecimento global

20
Interpretação
• Vendas de laranja num supermercado
• No mês 5, o supermercado trocou para o fornecedor
AZUL
• No mês 6, voltou o fornecedor VERMELHO
• De quem é a culpa pela baixa nas vendas no mês 6 ?
• Teoria do Mundo Fechado

1 2 3 4 5 6
21
Interpretação
• McDonald’s
– que sanduíches saem mais ?
– quais ficam prontos primeiro ?
– Fica pronto primeiro porque sai mais ?
– Ou sai mais porque fica pronto primeiro ?

22
Técnicas de Mineração
• Análise de Distribuição
– No software WizRule: Unconditional Rules
• Associações
– No software WizRule: If-Then Rules
• Modelos de Predição (fórmulas)
– No software WizRule: Formulas
• Detecção de desvios (outliers)
• Média (com e sem outliers)
• Séries Temporais
– Identificação de sub-séries que se repetem dentro da mesma série
– Séries semelhantes ou correlatas
• Ex: scouts de vôlei e desempenho em exercícios
• Seqüência Temporal
• Classificação
• Indução de regras ou características
• Clustering (Agrupamento ou Clusterização)
23
Análise de Distribuição
• Verificar % de cada valor dentro de cada
campo (coluna)
Bairro

Bairro X  20%
Bairro Y  14%
Bairro Z  09%
24
Associações
• Ex: fraldas e cervejas
• Probabiliade Condicional
– Qual a chance de um valor aparecer junto a outro ?

X Y
X Y
W Z
K J
X Z
L M
X Y
W Z
X Y
K B

25
Associações
• Regras do tipo A  B
– Ou seja, implicação de A em B, qual a chance de B aparecer se A aparecer
• Confiança = (n. de regs onde A e B aparecem) / (n. de regs. onde A
aparece)
• Suporte = (n. de regs onde A e B aparecem)

C1 C2
Confiança da regra C1=X  C2=Y,
X Y ou simplificando X  Y
X Y
W Z Confiança = (X e Y) / X = 4 / 5 = 80%
K J ou seja,
há 80% de chances de Y aparecer no campo 2
X Z
quando X está presente no campo 1,
L M ou, em 80% dos casos onde X aparece em C1, Y
X Y aparece em C2
W Z
X Y Suporte = 4 casos (ou 40% do total de regs)
K B ou seja, 4 casos suportam esta regra 26
Associações
• Calcular confiança e suporte para todos os pares
YX
C1 C2
XZ
X Y
X Y WZ
W Z
K J KJ
X Z
L M LM
X Y
W Z KB
X Y
K B e Z  W (ou C2=Z  C1=W) ?

Qual a regra mais importante/interessante ? 27


Associações
• Avalia todas as combinações possíveis

C1 C2 C3 C4 C5 C6 C7 …

C1 e C2  C3 28
Modelos de Predição
• Encontrar função matemática para mapear pontos existentes e poder
prever pontos futuros
– Ex: prever vendas baseado no histórico
– Previsão de temperatura
– Vendas da Coca-Cola ?
– Número de variáveis

Y
Y = f(X)

X
29
Teoria do Caos
• Para tudo, há uma função matemática que explica o
comportamento passado e permite prever o
comportamento futuro
– ex: vendas numa loja

Y
Y = f(X)

X
30
Teoria do Caos
• Problemas:
– encontrar todas as variáveis que influenciam o
comportamento
– medir todas as variáveis
– uma pequena variação numa das variáveis leva a
uma grande variação no todo, depois de algum
tempo
– ex.1: efeito borboleta no clima
• “uma borboleta voando nos EUA influencia o clima no Japão”
– ex.2: numa rodovia com muitos carros, alguém
diminuir a velocidade significa que lá atrás alguém vai
ter que parar
31
Média
• Encontrar comportamento médio entre funções
– Ex: vendas de um produto

Ano 2 Ano 3
Ano 1

Função média Intervalo 32


Detecção de Desvios (Outliers)
• Ex: saídas de canetas num almoxarifado

Jan Fev Mar Abr Mai Jun Jul


33
Detecção de Desvios (Outliers)
• Calcular média ou intervalo médio
• Verificar o que “foge à regra”
• Recalcular média sem outlier (pode ter sido exceção ou anormalidade)
• Aplicação: detecção de fraudes/clonagens em cartão de crédito e celular

Desvio (outlier)

Intervalo
médio

Jan Fev Mar Abr Mai Jun Jul


34
Detecção de Desvios (Outliers)
• Comparar com eventos na linha de tempo
– Ex: analisar notícias publicadas em dias próximos
• Explicação para desvios
• Ex: bolsa de valores, Google Trends

Desvio (outlier)

Intervalo
médio

Jan Fev Mar Abr Mai Jun Jul


35
Google Trends

36
Link Discovery
• Descobrir eventos associados
• Ex: anti-terrorismo
– Comprar plástico para explosivos +
passagem de avião

37
O que é Interessante
• O que é normal
• O que está fora do normal (muito mais freqüente ou raro)

interestingness

freqüência

38
O que é Interessante
• Exemplo:
• Análise da freqüência com que as
pessoas compram feijão por mês
– Normal (hipotético): 1 a 2 kg
– Muito freqüente: > 2
– Raro: < 1 kg por mês

• Os 3 padrões são interessantes


39
O que é Interessante
• Exemplo: contra-terrorismo
– Comprar certos produtos juntos
• Normal X Anormal
• Suspeito:
– comprar todos produtos de uma bomba juntos ou
– comprar somente um deles
• Filme “O Atirador”
– Personagem compra produtos em sub-conjuntos lógicos

40
O que é Interessante
• Geralmente, descobrimos padrões analisando o
que é mais comum ou freqüente num grupo
selecionado
– Exemplo: Clientes que não pagam conta do telefone:
desenvolvem certo tipo de comportamento (comum)
• O que é Interessante pode estar na raridade
– Exemplo: pessoas normais compram até 5 tubos de
pasta de dente por mês. O que acontece com alguém
que compra 20 tubos todo mês ?

41
Séries Temporais
• Como continua este gráfico ?

42
Séries Temporais
• Repetição de sub-séries (numa mesma série)

43
Séries Temporais
• Encontrar série semelhante
– Ex: lojas com comportamentos de venda semelhantes

44
Séries Temporais
• Encontrar série inversa

45
Séries Temporais
• Séries simultâneas ou com Delay

A
C

B início

46
Séries Temporais

47
Séries Temporais
• Co-relação entre séries
– Ex: scouts e treinamento no vôlei

C
A B

1 2 3

48
Seqüência de Tempo
• Mesma técnica de associação só que com tempo associado
– dependência entre variáveis ou valores de um momento para outro no
futuro
– Exemplos:
a) Quem compra hoje uma TV, volta daqui a 6 meses para comprar um
DVD
b) Cliente que compra telefone hoje, e dentro de 1 mês faz ligações para
exterior acima de 400 reais, pára de pagar a conta no 4o mês
c) Detecção de fraudes no sistema de saúde americano

1 2

4 49
Seqüência de Tempo
2003 2004 2005 2006
José

Maria

João

Ana ?

Procurar padrões estatísticos para prever futuro 50


Procurar exceções (por que João não teve quadrado azul ?)
Classificação
• Objetivo: alocar um elemento candidato em uma classe
– a que classe o elemento pertence
– classes pré-existentes

?
51
Classificação
• Aplicações
– Determinar limite de cartão de crédito
– Decidir se dá ou não financiamento para
cliente
– Probabilidade do cliente pagar a conta do
telefone
– Saber se assinatura é do cliente ou não
– OCR

52
Métodos de Classificação
– Regras determinísticas
– Árvore de decisão
– Regras probabilísticas
– Avaliação de Características
– Método Bayesiano (probabilidade de características)
– Redes Neurais
– k-NN (Vizinhos Mais Próximos)
– Bagging
– Boosting

53
Regras Determinísticas
• Classes definidas por regras
– cada classe tem um conjunto de regras
– se uma das regras for verdadeira para o elemento candidato,
este pertence à classe

Se tem atributo X
Então pertence à classe A
A

atributos ou
características
Se tem atributo Y
B Então pertence à classe B

Se tem W e Z
Então pertence à B 54
Árvore de Decisão
• Combina várias regras num único esquema de classificação
• É uma representação gráfica que consiste:
– de nodos que representam os atributos;
– de arcos que correspondem ao valor de um atributo;
– de nodos folha que designam uma classificação
• Esquema visual, facilita entendimento
• Não necessita comparar com as regras de cada classe, basta
seguir pela árvore (que é única)

• Exemplo: regras para definir limite de cliente de banco


– Se tem carro, limite = 1000
– Se salário > 2000, limite = 2000
– Se tem seguro e salário > 1500, limite = 2000
– Se tem carro e tem dependentes, limite = 3000

55
Árvore de Decisão
tem
carro

sim não

tem salário
dependentes

sim não 1500-2000


>2000

Limite= Limite= Limite= tem


3000 1000 2000 seguro

sim não

Limite=
2000
56
Regras Probabilísticas
• Para tratar incerteza
Se tem bico
Então 90% de chance de ser ave
Ave Se voa
Então 85% de ser ave

Se nada na água
Pingüim Peixe Então 80% de ser peixe
(tem bico e
nada na água)

Mamífero

57
Avaliação de Características
• Considera a presença de atributos ou características
• Cada classe definida por características de seus
elementos
Bico
Ave Penas
Voa

Bico Escamas
Peixe
Penas Nada na água
Nada na água

Mamífero
58
Avaliação de Características
• A que classe pertence ?
A
B
1
X

B
2 Z

A E
A
3 B F
B
C G
C
D

C
4
D 59
Atributos com Pesos
• Tem febre  Sim ou Não

• Mas graus diferentes de febre:


38o é febre = 0,6
40o é febre = 0,8
42o é febre = 1 (com máxima certeza)

• Grau pode indicar


– Intensidade
– Probabilidade do elemento ter o atributo
– O quanto se tem certeza de que o elemento tem o atributo

60
Atributos com Pesos
• Considera pesos para características ou atributos
A 0,8
B 0,4
1
X 0,9

B 0,9
2 Z 0,7

A 0,3 E 0,8
A 0,9
3 B 0,4 F 0,7
B 0,7
C 0,4 G 0,9
C 0,6
D 0,5

C 0,7
4
D 0,8 61
Valores Fuzzy
• Lógica Binária ou Booleana  0 ou 1
(falso ou verdadeiro)
• Lógica Multivalorada  [0,1]
Ex: Está quente = 0,7
• Lógica Fuzzy (difusa)
Ex: Está quente 0,7 e está frio 0,2

62
Valores Fuzzy

Jovem Adulto 3ª Idade


1

0
17 30 70

63
Valores Fuzzy

Jovem Adulto 3ª Idade


1

0
17 21 30 70

64
Valores Fuzzy

Jovem Adulto 3ª Idade


1

? ?
0
17 30 70

65
Atributos com Pesos
• Significado dos pesos:
– Na classe: probabilidade de um elemento desta classe ter esta
característica
– No elemento candidato: grau relativo
• Ex: atributo “tem carro” (valor do carro)

• Normalização: todos os pesos em escala de 0 a 1

• Dificuldades:
– Idade: valor máximo = 1, menor valor = 0
– Bairro ?

66
Funções de Similaridade
• Inclusão simples (set theoretic inclusion)
– presença de atributos comuns a 2 vetores (soma); elementos
que só aparecem em um dos vetores não influenciam o
resultado.
• Coeficiente de Dice = 2c/(a+b),
– sendo c o número de características em comum nos dois
vetores, a o número total de características do primeiro vetor e b
o número total de características do segundo vetor
• Coeficiente de Jaccard = c/(a+b-c)
– média entre comuns e não comuns (dividir pelo total de
elementos existentes);
– o número de elementos que não são comuns diminuem a
similaridade
• Coeficiente de overlap = c/mínimo(a,b).
67
Funções de Similaridade
• Multiplicação de pesos dos atributos comuns
• Média dos pesos dos atributos comuns
• Somar resultados e dividir pelo total de atributos sendo
considerados
• Raciocínio Fuzzy

• Problemas com média e multiplicação


– Elemento 1: A=0,9; B=0,9
– Elemento 2: A=0,3; B=0,4
– Elemento 3: A=0,6; B=0,6
– Elemento 4: A=0,6; B=0,6
• Multiplicação: 0,9 x 0,4 = 0,36 = 0,6 x 0,6
– mas valores são bem diferentes
• Média entre 0,9 e 0,3 = 0,6 = Média entre 0,6 e 0,6
– mas valores são bem diferentes

68
Funções de Similaridade
• Alternativa
– grau de igualdade entre pesos
– O quanto 0,6 é igual a 0,6 ? Resultado = 1
– E 0,3 e 0,9 ?
– Função Fuzzy da Igualdade
gi(a,b) = ½ [ (a  b) ∧ (b  a) + (a’  b’) ∧ (b’  a’)]
sendo,
a, b: os valores fuzzy a serem comparados,
a’ = 1 - a (a negação de a),
b’ = 1 - b (a negação de b),
∧ = o mínimo entre os dois operandos,
x  y = o máximo valor c no intervalo [0,1], tal que x
multiplicado por c ≤ y.

69
Método Bayesiano
• Avalia probabilidades
• Naïve Bayes: avalia probabilidades
independentes

70
Localização em Plano Cartesiano

idade João, 40 anos, 1,60


Pedro, 25 anos, 1,80

60

50

40

30

20

altura
1,50 1,60 1,70 1,80
71
Localização em Plano Cartesiano

idade João, 40 anos, 1,60


Pedro, 25 anos, 1,80

60

50

40

30

20

altura
1,50 1,60 1,70 1,80
72
Localização em Plano Cartesiano

idade João, 40 anos, 1,60


Pedro, 25 anos, 1,80

60

50 A Maria, 30 anos, 1,65


de altura, é mais
40 semelhante a quem ?

30

20

altura
1,50 1,60 1,70 1,80
73
Localização em Plano Cartesiano

idade João, 40 anos, 1,60


Pedro, 25 anos, 1,80

60

50

40 A Maria, 30 anos, 1,65


de altura, é mais
semelhante a quem ?
30

20

altura
1,50 1,60 1,70 1,80
74
Funções de Similaridade
• Distância Euclidiana (inverso ou
complemento)
– raiz quadrada da soma dos quadrados das
diferenças de valores para cada variável (x e
y)
– raiz de (x1 – x2)2 + (y1 – y2)2
• Coeficiente do Cosseno: similaridade é o
quadrado do cosseno do ângulo formado
entre 2 vetores
75
Exercício
• A que classe pertence segundo cada função de similaridade
A
B
1
X

B
2 Z

A E
A
3 B F
B
C G
C
D

C
4
D 76
Exercício
• A que classe pertence segundo cada função de similaridade
A 0,8
B 0,4
1
X 0,9

B 0,9
2 Z 0,7

A 0,3 E 0,8
A 0,9
3 B 0,4 F 0,7
B 0,7
C 0,4 G 0,9
C 0,6
D 0,5

C 0,7
4
D 0,8 77
Redes Neurais
• Caixa preta com neurônios artificiais conectados entre si
• Treinamento para conexões poderem dar resultado
correto
• Exemplos = entradas estimuladas e saída
correspondente
• Rede se adapta para conectar as entradas a sua saída
correspondente
• Reforça caminho da entrada até a saída
• Não explicita o conhecimento usado para a classificação
(caixa preta)
• Uma vez treinada, rede não se altera
• Modelo CNM (combinatório) utiliza uma camada de
neurônios somente
78
Modelo de Rede Neural

1 2 Saídas

Camada de
Neurônios

Entradas
A B C

79
Treino da Rede Neural

1 2 Saídas

Camada de
Neurônios

Entradas
A B C

Exemplos de treino: 80
A, B  1; A, C  1; B, C  2; … ; A, B  2
Rede Neural Treinada

1 2 Saídas

Camada de
Neurônios

Entradas
A B C

Teste: 81
A, B  ?
k-NN
• Nearest Neighbor
• Não conhecimento sobre as classes (definições,
regras, nem características)
• Há somente exemplos (casos ou elementos já
classificados)
• Encontrar os casos/elementos mais similares ao
candidato (vizinhos mais próximos)
• Fundamento: classe do candidato é a mesma
dos vizinhos mais próximos
• K é utilizado para determinar o número de
vizinhos a serem considerados

82
k-NN
• Compara candidato com todos os elementos
• Utiliza uma função de similaridade
• Forma um ranking dos mais similares (vizinhos mais próximos)
• Considera somente os K primeiros

1
A B Ranking
C
B
2 A
D E
D
3 F
F G C
4 H
I J Qual a classe do candidato ?
K L 83
k-NN
• Exemplos de decisões: qual a classe ?

1
A B
C Ranking 1, k=1
A, D, E, F, G
2
D E
3 Ranking 2, k=3
F G A, D, E, F, G
H
4 Ranking 3, k=5
A, D, E, F, G
I J
K L

84
k-NN
• Considerando o grau de similaridade
1 Ranking 1, k=5
A B
A 0,8
C
D 0,5 Ranking 2, k=5
2 E 0,2 A 0,8
D E
F 0,1 D 0,5
3
G 0,08 E 0,3
F G
H F 0,1
4 G 0,08
I J
K L

85
k-NN
• Vantagens

• Desvantagens

86
Bagging
• Qual o melhor método ?
• Cada método tem seu valor e suas deficiências
• Como saber qual o melhor método em cada situação ?
• E se utilizarmos vários métodos ao mesmo tempo ?

método 1 Classe 1

método 2
Classe 2
método 3

método 4
Classe 1
Classe 1 87
Boosting
• O mesmo que Bagging mas dando pesos
para cada método
• Podemos considerar alguns métodos mais
confiáveis/eficientes que outros (recebem
mais peso)

88
Exemplo de Classificação
Software Anti-Spam
1. Procura por características no e-mail
1. Atributos: remetente, domínio
2. Palavras-chave: título, corpo
(técnica de análise de características; encontrar por indução
automaticamente ou definição pelo usuário)
2. Compara com e-mails já classificados como spam (k-
NN)
1. Casos com imagens
2. Palavras escritas de forma diferente: V1AGRA, V.I.A.G.R.A
(importância de “reportar spam”; inteligência coletiva)

89
Indução
• Como descobrir características ou regras
para cada classe (para classificação)
– Aprendizado supervisionado: fornecer as
classes e exemplos para cada classe
– Aprendizado não-supervisionado: clustering
(agrupamento) descobre classes e
características automaticamente sem
intervenção humana (ou com pouca)

90
Centróide da Classe
• Elemento hipotético que representa a
classe
• Pode ser:
– elemento com a média das características
– elemento com todas as caracteristicas de
todos os elementos da classe

91
Centróide da Classe
• No Plano Cartesiano
– Encontrar o elemento médio (hipotético), ou
seja, aquele que contém a média das
características dos elementos da classe
altura

1,80

1,60

1,40
20 40 60 80 peso
92
Centróide da Classe
idade

60

50

40

30

20

altura
1,50 1,60 1,70 1,80
93
Centróide da Classe
idade Centro geométrico não é centróide

60

50

40

30

20

altura
1,50 1,60 1,70 1,80
94
Centróide da Classe
idade Centróide é como o centro de atração

60

50

40

30

20

altura
1,50 1,60 1,70 1,80
95
Centróide da Classe
idade Centróide é como o centro de atração

60

50

40

30

20

altura
1,50 1,60 1,70 1,80
96
Aprendizado Supervisionado
• Algoritmos ID3 e C4.5
– Geram uma árvore de decisão a partir de
exemplos de treino
– Treino pode ser uma tabela com um campo
como sendo o objetivo (classes)

97
Conjunto de treinamento

caso montante idade salário conta empréstimo


1 médio sênior baixo sim não
2 médio sênior baixo não não
3 baixo sênior baixo sim sim
4 alto média baixo sim sim
5 alto jovem alto sim sim
6 alto jovem alto não não
7 baixo jovem alto não sim
8 médio média baixo sim não
9 médio jovem alto sim sim
10 alto média alto sim sim
11 médio média alto não sim
12 baixo jovem baixo não sim
13 baixo sênior alto sim sim
14 alto média baixo não não
98
Algoritmo ID3
Passos:
1. Seleciona um atributo como sendo o nodo raiz (aquele com
maior ganho de informação);
2. Arcos são criados para todos os diferentes valores do
atributo selecionado no item 1;
3. Se todos os exemplos de treinamento sobre uma folha
pertencerem a uma mesma classe, esta folha recebe o nome
da classe. Se todas as folhas possuem uma classe, o
algoritmo termina;
4. Senão, o nodo é determinado com um atributo que não
ocorra no trajeto da raiz, e arcos são criados para todos os
valores. O algoritmo retorna ao passo 3.

99
Algoritmo ID3
• Para selecionar atributos (campos), é
necessário determinar:
– ganho de informação para cada atributo
e para isto é preciso calcular
– entropia da saída
– entropia para cada valor presente em
cada atributo/campo

100
Algoritmo ID3
Entropia: Quantidade necessária de informação para identificar a classe de um caso.
Entropia(saída) = – (px log 2 px) – (py log 2 p y ) – ...
• x e y são os valores que dividem as classes (ex: dar empréstimo ou não); pode haver mais
de 2
• p(x) = w/z, onde w é número de vezes que o valor de saída X aparece associado ao valor
sendo considerado, e z é o número de aparições do valor sendo considerado
• z = total de casos ou registros de treino

Entropia(valor) = – (px log 2 px) – (py log 2 p y ) – ...


• x e y são os valores que dividem as classes (ex: dar empréstimo ou não)
• p(x) = w/z, onde w é número de vezes que o valor de saída X aparece associado ao valor
sendo considerado, e z é o número de aparições do valor sendo considerado
• p(y) = k/z, onde k é número de vezes que o valor de saída Y aparece associado ao valor
sendo considerado, e z é o número de aparições do valor sendo considerado

• Exemplo:
Entropia(saída) = - 9/14 log2 (9/14) - 5/14 log 2 (5/14) = 0,940
total de casos = 14, sim = 9, não = 5
Entropia(médio) = - 2/5 log2 (2/5) - 3/5 log 2 (3/5) = 0,971
total de aparições do valor “médio” no campo “montante” = 5
destas, 2 vezes com “sim” e 3 vezes com “não”
101
Algoritmo ID3
Ganho de informação
Redução esperada da entropia
Gain (S, A) = Entropia(saída) - Σ ((|Sv| / |S|)Entropia(Sv))
• Para cada campo, calcular seu ganho de informação, ou seja, o quanto
ajuda a separar as classes (se um campo é suficiente, a árvore de decisão
só terá um nodo)
• Somatório do cálculo abaixo para cada valor do campo
– [ (número de casos do valor X) / (n. total de casos) ] . Entropia do valor X

• Exemplo:
• Ganho(montante) = 0,940 – (5/14).0,971 – (4/14).0 – (5/14).0,971 = 0,246
– “médio” aparece 5 vezes
– “baixo” aparece 4 vezes
– “alto” aparece 5 vezes
– número total de casos = 14

102
Nodo raiz

Selecionando o melhor atributo:


Entropia(saída) = - 9/14 log2 (9/14) - 5/14 log 2 (5/14) = 0,940
caso montante idade salário conta empréstimo
Entropia(médio)
1 médio
= - 2/5 log
sênior2
(2/5) -
baixo
3/5 log 2
sim
(3/5) = 0,971
não
2 médio
Entropia(baixo) = - 4/4 sênior baixo
log 2 (4/4) - 0/4 lognão não
2 (0/4) = 0
3 baixo sênior baixo sim sim
4 alto = - 3/5 log
Entropia(alto) média baixo sim
2 (3/5) - 2/5 log 2 (2/5) = 0,971
sim
5 alto jovem alto sim sim
Gain67 (montante)
alto
baixo
= jovem
0,940 -
jovem
alto
(5/14)
alto
0,971 - não
(4/14)
não
0 -não
(5/14) 0,971 = 0,246
sim
8 médio média baixo sim não
Gain9 (idade)
médio
= 0,940 - (4/14)
jovem
1 - (5/14)
alto
0,971
sim
- (5/14)
sim
0,722 = 0,049
10 alto média alto sim sim
Gain11(salário)
médio = 0,940 - (7/14)
média 0,592
alto - (7/14)
não 0,985 = 0,151
sim
12 baixo jovem baixo não sim
Gain13(conta)
baixo= 0,940 - (8/14)
sênior 0,811
alto - (6/14)sim1 = 0,047
sim
14 alto média baixo não não
103
Escolha do próximo atributo
{C1,C2,...C14}
[9+, 5-]
montante

médio baixo alto

{C4,C5,C6,C10,C14} {C3,C7,C12,C13} {C1,C2,C8,C9,C11}


[2+, 3-] [4+, 0-] [3+, 2-]

? sim ?

Qual atributo pode ser testado aqui?


104
Escolha o próximo atributo
Qual é o melhor atributo?
Smédio = {C4,C5,C6,C10,C14}

Gain (Smédio, idade) = 0,971 - (2/5)0 - (2/5)1 - (1/5)0 =


0,571
Gain (Smédio, salário) = 0,971 - (3/5)0 - (2/5)0 = 0,971
Gain (Smédio, conta) = 0,971 - (3/5)0,918 - (2/5)1=
0,020

105
Árvore de decisão

montante

médio baixo alto

salário sim conta

baixo alto não sim

não sim não sim

106
Algoritmo C4.5
O algoritmo C4.5 possibilita:
– trabalhar com valores contínuos;
– trabalhar com valores indisponíveis;
– podar árvores de decisão;
– derivar regras.

107
Clustering (Agrupamento)
• Aprendizado não supervisionado
• Fornecer elementos e sistema automático
gera classes e aloca elementos
• Algoritmos
– Por partição: k-means
– Hierárquico: aglomerativo X divisivo
– Baseado em Grafos: cliques, single link, stars,
strings

108
Clustering
idade
80

n. vezes / mês
que vai
10 ao estádio
Clustering
Produtos comprados:
idade Forma de pagamento:
vermelho: cartão
80
azul: boleto
amarelo: depósito

30 n. de horas
na Internet por mês
K-Means (K-Médias)
• Precisa fornecer número de classes
• Passos:
– Coloca elementos aleatoriamente nas classes
– Calcula centróide de cada classe
– Verifica, para cada elemento, qual o centróide mais
próximo.
• Se for o de outra classe, realoca o elemento e recalcula
todos os centróides
• Parâmetro de fim:
– distância aceitável
– não muda muito o centróide (valor pré-estabelecido)

111
Gráfico do Método K-Means
k=2

112
Gráfico do Método K-Means
k=2 Calcular centróide

113
Gráfico do Método K-Means
k=2
Verifica um elemento
Realoca, se necessário
Recalcula centróide
Faz isto para todos elementos
(pode ter que refazer)

114
Clustering Hierárquico
• Aglomerativo (bottom-up):
– começa com todos os elementos
sem classe (ou cada um num
cluster com 1 elemento somente)
– encontrar 2 clusters mais similares
e formar novo cluster (para efeitos
de cálculo de similaridade, é
utilizado o centróide do cluster)
– repetir a operação para 2 clusters
mais similares (considerando tb os
novos clusters), até haver somente
1 cluster
• Divisivo (top-down):
– começa com todos os elementos
num único cluster
– divide o cluster em 2 por
similaridade entre elementos
– divide cada novo cluster gerado
(em 2 novos), usando o mesmo
critério, repetidamente, até que só 115
haja clusters com 1 elemento
Clustering baseado em Grafos
• Primeiro, gerar matriz de similaridade entre todos os elementos

A B C D E

A 1.0 0.7 0.8 0.4 0.3


B 0.7 1.0 0.6 0.3 0.2
C 0.8 0.6 1.0 0.6 0.4
D 0.4 0.3 0.6 1.0 0.1
E 0.3 0.2 0.4 0.1 1.0
116
Clustering baseado em Grafos
• Gerar grafo conectando os elementos; valor ou força da conexão é
o grau de similaridade entre os elementos

A 0,4

0,7
D
0,3
0,6
B
0,2 0,1

0,3
0,6 0,8

E
C
0,4
117
Clustering baseado em Grafos
• É necessário definir grau mínimo (limiar) de similaridade (ex.: 0,5)
• Eliminar conexões abaixo do limiar

A
0,7
D

0,6
B

0,6 0,8

E
C

118
Algoritmo Stars
1. Selecionar 1 elemento e colocar todos os similares no mesmo
cluster
2. Elementos ainda não alocados/classificados são colocados como
semente de cluster (repetir passo 1 para 1 elemento ainda não
alocado).

A Resultado:
D limiar = 0,5
0,7

0,6
Começando por A
B Cluster 1: A, B, C
Cluster 2: D
Cluster 3: E
0,6 0,8

E Começando por C
C Cluster 1: C, A, B, D
Cluster 2: E 119
Algoritmo Single Link
1. Selecionar o primeiro elemento sem cluster e colocá-lo em um novo
cluster
2. Colocar no mesmo cluster todos os elementos similares ao primeiro
(acima do limiar)
3. Para cada um dos elementos adicionados ao cluster, realizar o passo 2

A
D Resultado:
0,7
limiar = 0,5
0,6
B Cluster 1: A, B, C, D
Cluster 2: E

0,6 0,8

E
C
120
Algoritmo Strings
• O mesmo que o anterior, mas são permitidos
níveis mais distantes
• O Single Link só aceita elementos do 2o nível
de similaridade
A 0,8
D F
0,7

0,6
B

0,6 0,8

E
C 121
Algoritmo Cliques
1. Selecionar próximo elemento não alocado e adicioná-lo a um novo
cluster
2. Procurar elementos candidatos similares (acima do limiar)
3. Se o elemento candidato for similar a todos os elementos do cluster
(acima do limiar), adicioná-lo a este cluster (todos os elementos do
cluster tem que ser similares entre si)
Resultado:
A por ordem alfabética
e limiar = 0,5
0,7
D
Cluster 1: A, B, C
0,6 Cluster 2: D
B
Cluster 3: E

limiar = 0,6
0,6 0,8 Cluster 1: A, B
Cluster 2: C
E
C Cluster 3: D
Cluster 4: E 122
Avaliação dos Resultados
• Coesão
– Mede o quanto os elementos de uma classe estão conectados
– Meta: maior coesão
– Técnica: avaliar média de similaridade entre os elementos

• Acoplamento
– Mede o quanto os elementos de classes diferentes estão conectados ou os
centróides
– Meta: menor coesão
– Técnica: avaliar similaridade entre os centróides ou elementos

• Entropia
– Mede a desordem. Quanto mais classes misturadas, mais entropia
– Meta: menor entropia
– Avaliação em relação a um conjunto de teste, previamente classificado (classes
+ elementos)
• Fornece os mesmos elementos para clustering
• Verifica o número de classes resultantes que têm elementos misturados (das classes
originais)

123
FIM

Data Mining
por
Stanley Loh

124