SCC0141 - Bancos de Dados e Suas Aplicações
Tópicos em mineração de dados: Espaços métricos, Classificação
KNN e Regras de associação
Prof. Jose Fernando Rodrigues Junior
Grande volume de dados complexos gerados/manipulados cotidianamente: imagens, video, séries, sequências de DNA, data streams, impressões digitais, textos longos, hipertextos...
Introdução – Recuperação de dados baseada em conteúdo
• Classificações por igualdade ou baseadas em comparações relacionais (=, <, >,…) não são significativas!
• A similaridade, E NÃO A IGUALDADE, entre pares de elementes é a propriedade mais importante.
Introdução
Exemplo: “Dada a foto do Ronaldinho, retorne as 2 fotos
presentes na base de dados mais similares a ela”
Introdução
Similaridade intuição
A similaridade (e não a igualdade) entre os pares de elementos é o que guia a recuperação de dados
complexos.
Solução: classificação de dados baseada em conteúdo
Similaridade intuição
Os elementos de dados não podem ser indexados diretamente não há relação de ordem;
Para indexá-los, primeiro é necessário transformá-los em um formato computacional vetores de números.
ImagemVetor de números (características)Histograma
544 109 3100 490 199 ..... 2099
Recuperação de dados baseada em conteúdo
Consultas por similaridade são efetuadas em domínios de dados complexos, usando-se vetores de características;
Vetores de características, cujos elementos podem ser tratados como coordenadas de pontos no espaço n-dimensional:
x = (x1, x2, ..., xn)
Consultas por Similaridade
Vetor de CaracterísticasVetor de Características Define um espaço n-dimensional, onde n é o número de
características - ou atributos de uma relação da BD;
Cada imagem passa a “ser vista” por meio de seu vetor de características. Essa visão pode ser espacial !
Extrator de característicasExtrator de características
As características de um dado complexo podem ser anotadas manualmente;
Um usuário, por exemplo, poderia descrever cada uma das fotos que bateu antes de colocá-las no banco: Quantas cores; Quantos objetos; Quais formatos, entre outras;
É justamente este o problema, a anotação manual das características é inviável – trata-se de uma tarefa exaustiva e subjetiva;
A solução é o uso de extratores de características: operadores que aplicam algoritmos sobre os dados complexos, gerando vetores automaticamente.
Vetores de Características: buscam representar a “essência” do conjunto de dados, segundo um aspecto especificado Cor, textura, forma, relacionamento entre os objetos
Extração de característicasExtração de características
Extração de característicasExtração de características
Cor – primeiro algoritmo: histograma de intensidades / cores
Forma – segmentação da imagem
Extração de característicasExtração de características
Forma – segmentação da imagem
Extração de característicasExtração de características
São extraídas características de cada região identificada na imagem.Os múltiplos vetores são então combinados.
Textura – segmentação da imagem
Imagem original Imagem segmentada
Extração de característicasExtração de características
Imagem Vetores de Característica
s
Pre-processing
Imagem Processada
Extração de Características
Extração de característicasExtração de características
Descritor Equação Significado
Variance i j
jiPji ),()( 2 level of contrast of the image
Entropy i j
jiPjiP ),(log),( suavity of the image
Energy i j
jiP ),(2 uniformity of the image
Homogeneity i j
jijiP |)|1/(),( homogeneity of pixels distribution
3td Order Moment i j
jiPji ),()( 3 distortion level of image
Inverse Variance i j
jijiP 2)/(),( inverse level of contrast
Descritores de Haralick – cor/textura
Extração de característicasExtração de características
Características e Descrições de Imagens : Níveis de Abstração
Nível 1: Pixels da imagem
Nível 2: Procurar bordas,linhas, curvas e regiões
Nível 3 - Combinar einterpretar os atributos donível 2
Nível 4: Mapeamento humano,relacionamento entre os objetos donível 3
Sintático
Semântico
Funções de Distância São funções matemáticas ou métodos
computacionais que medem a dissimilaridade entre 2 elementos de dados complexos: Valor igual a 0 (zero): os elementos são o mesmo; Quanto mais o valor cresce, mais dissimilares os
dados são.
Funções DistânciaDistância Euclidiana com pesos
• Dados 2 vetores X={x1,x2, … xn} e Y={y1, y2, … yn}
onde 0.0 ≤ pk ≤ 1.0 é a importância da k-ésima característica
• A distância Euclidiana com pesos, ou distância Euclidiana ponderada permite que determinadas características sejam enfatizadas ou desenfatizadas
L2(X, Y) = (xk - yk)2
k=1
n2
Funções DistânciaDistância Euclidiana com pesos
• Dados 2 vetores X={x1,x2, … xn} e Y={y1, y2, … yn}
onde 0.0 ≤ pk ≤ 1.0 é a importância da k-ésima característica
• A distância Euclidiana com pesos, ou distância Euclidiana ponderada permite que determinadas características sejam enfatizadas ou desenfatizadas
L2(X, Y) = pk (xk - yk)2
k=1
n2
Funções de DistânciaFamília Minkowski (generalização)
L2=Euclidiana
L0=LInfinity=Chebychev
L1=Manhatan
r
Lp(X, Y)= (|xk-yk|)p
k=1
np
• Dados 2 vetores X={x1,x2, … xn} e Y={y1, y2, … yn}
Funções de DistânciaFamília Minkowski (generalização)
Lp(X, Y)= (|xk-yk|)p
k=1
np
• Dados 2 vetores X={x1,x2, … xn} e Y={y1, y2, … yn}
Diferentes funções distância, correspondem a diferentes seletividades;
Existem dezenas de outras funções distância para diferentes aplicações;
Exemplo, função distância para redes (grafos): para quaisquer dois pontos da rede, a distância é dada pelo caminho mais curto
entre eles.
Definido um espaço, não faz mais sentido o uso de consultas pontuais, mas sim:
CONSULTAS POR SIMILARIDADE envolvem: um objeto de busca (centro da consulta); parâmetros dependentes do tipo de consulta por
similaridade: consultas por abrangência; consultas aos k-vizinhos mais próximos.
Consultas por conteúdo em bases de dados Consultas por conteúdo em bases de dados complexoscomplexos
Consulta por abrangência: recupera os objetos que apresentem até dado grau r de similaridade ao objeto de busca sq.
rssqq
Consultas por conteúdo em bases Consultas por conteúdo em bases de dados complexosde dados complexos
Consulta aos k-vizinhos mais próximos: recupera os k objetos mais “próximos” (similares) ao objeto de busca sq.
ssqq
Consultas por conteúdo em bases Consultas por conteúdo em bases de dados complexosde dados complexos
Consultas por similaridadeConsultas por similaridade
CIDADES DO CONJUNTO DE RESPOSTA:
CIDADES DO CONJUNTO DE RESPOSTA:
B, C, HB, C, H
CIDADES FORA DO CONJUNTO DE RESPOSTA:CIDADES FORA DO CONJUNTO DE RESPOSTA:
D, E, F, G, I, J, K,D, E, F, G, I, J, K,
BAA
C
D
E
F
G
H
I
J
K
100 Km100 Km70 Km70 Km
20 Km20 Km95 Km95 Km
110 Km110 Km
Similaridade – Consulta por AbrangênciaSimilaridade – Consulta por Abrangência
Ex: quais são as cidades que estão localizadas até Ex: quais são as cidades que estão localizadas até 100km de Ribeirão Preto.100km de Ribeirão Preto.
D (A, C) 70 km
D (A, B) 95 km
D (A, D) 110 km
D (A, H) 20 km
D (A, E) 160 km
D (A, G) 170 km
D (A, F) 175 km
D (A, K) 145 km
D (A, I) 160 km
D (A, J) 180 km
Consultas por similaridadeConsultas por similaridade
CIDADES DO CONJUNTO DE RESPOSTA:CIDADES DO CONJUNTO DE RESPOSTA:
C, HC, H
CIDADES FORA DO CONJUNTO DE RESPOSTA:
CIDADES FORA DO CONJUNTO DE RESPOSTA:
B, D, E, F, G, I, J, KB, D, E, F, G, I, J, K
BAA
C
D
E
F
G
H
I
J
K
70 Km70 Km
20 Km20 Km95 Km95 Km 110 Km110 Km
Similaridade – Consulta aos Similaridade – Consulta aos kk-vizinhos mais -vizinhos mais Próximos, k-NNPróximos, k-NN
Similaridade – Consulta aos Similaridade – Consulta aos kk-vizinhos mais -vizinhos mais Próximos, k-NNPróximos, k-NN
Ex: selecione as 2 cidades mais próximas de Ribeirão Preto
170 Km170 Km
145 Km145 Km
175 Km175 Km160 Km160 Km
180 Km180 Km
160 Km160 Km
D (A, C) 70 km
D (A, B) 95 km
D (A, D) 110 km
D (A, H) 20 km
D (A, E) 160 km
D (A, G) 170 km
D (A, F) 175 km
D (A, K) 145 km
D (A, I) 160 km
D (A, J) 180 km
Os elementos retornados em uma consulta por similaridade são definidos baseando-se em uma função distância
Dado S, um espaço de características
d: S X S R+
A função distância, também denominada métrica, calcula a distância entre dois objetos e retorna um valor numérico
Quanto menor o valor retornado, mais similares são os objetos
Note que a idéia de função distância também se aplica a dados com dimensões indefinidas ou adimensionais, exemplo: grafos de impressões digitais
Consultas por Similaridade
Um conjunto determinado por um espaço de características e por uma função distância determina um Espaço Métrico;
Consultas por similaridade são suportadas por estruturas de dados projetadas para ESPAÇOS MÉTRICOS;
Espaço Métrico é um par M = (S, d) onde: S é um domínio ou universo de objetos válidos; d( ) é uma função de distância métrica ou apenas métrica, com as
propriedades:
1. Simetria: x, y S, d(x, y) = d(y, x);
2. Não-negatividade: x, y S, x y, d(x, y) > 0 e d(x, x) = 0;
3. Desigualdade triangular: x, y, z S, d(x, y) d(x, z) + d(z, y).
Espaço Métrico: Definição
11
22
33
aa cc
bb
aa ccbb ++
Caso particular de espaço métrico: Espaço Vetorial, associado a uma métrica. Envolve domínios de dados complexos representados pelo modelo de
espaço vetorial. Métricas usuais: família Lp (ou Minkowski).
L - Infinity
L1 - Manhattan
L2 - Euclidian
Espaço métrico
Dado um elemento de consulta, a realização de uma consulta por similaridade pode ser resolvida calculando-se a distância entre este elemento e todos os demais elementos da base de dados sequential scan;
No entanto, esta solução não é eficiente;
Para melhor desempenho, são usados métodos de acesso métrico (MAM), os quais permitem a indexação de um espaço métrico;
O MAM usado como referência é a M-Tree.
Métodos de acesso métrico
Recuperação de dados baseada em conteúdo - síntese
Extratores de características transformam objetos em vetores de características
Em tese, a anotação de características também poderia ser usada para o mesmo propósito
Funçõs distância determinam a distância entre vetores de características
L2=Euclidiana
r
L0=LInfinity=Chebychev
L1=Manhatan
Recuperação de dados baseada em conteúdo - síntese
Função DistânciaVetores de características
Recuperação de dados baseada em conteúdo - síntese
Função DistânciaVetores de características
Similarity QueriesSimilarity Queries
Recuperação de dados baseada em conteúdo - síntese
Metric Structure
Distance Function
Features ExtractionFeatures Extraction
Recuperação de dados baseada em conteúdo - síntese
Metric Structure
Distance Function
Features ExtractionFeatures Extraction
Data retrieval
Recuperação de dados baseada em conteúdo - síntese
Metric Structure
Distance Function
Features ExtractionFeatures Extraction
Data retrieval
Recuperação de dados baseada em conteúdo - síntese
Exemplo:
http://gbdi.icmc.usp.br/~junio/MetricSPlat/index.htm
Dado um conjunto de elementos pré-classificados em classes c1, c2, c3, ... distribuídos em um espaço métrico – Conjunto de treino;
Dado um elemento e1 não classificado
A classe de e1 é dada pela classe majoritária de seus k vizinhos mais próximos
Classificação KNN
Qual valor de k usar: Valor pequeno: a classificação será sensível a ruído
Valor muito grande: problemas de desempenho e possível perda do princípio de classificação – os dados tenderão a ser classificados como pertencentes à classe com maior número de elementos no conjunto de treino
Heurística aceita k = n^1/2
Como ponderar a importância dos vizinhos? Comumente o peso do k-ésimo vizinho é igual a 1/k, isto é, os elementos
mais próximos terão maior importância.
Exemplo: http://cs.joensuu.fi/pages/oili/PR/?a=Applets&b=kNN__Classifier http://www.leonardonascimento.com/knn.html
Classificação KNN
43
Regras de Associação O que é ? Formalização do Problema Algoritmo Apriori para Mineração de Itemsets Mineração de Regras de Associação Exemplos Exercicio
44
Regras de AssociaçãoItens = {Pão, Leite, Açúcar, ... }
Pão, Leite Manteiga
Vinho Queijo
ITEM, ITEM, ITEM ITEM
45
ExemploID Compras
1 Pão, ,
2 ,Açucar
3
4 Manteiga, Açúcar
5 Vinho, Queijo
6 Pão, Leite, Manteiga
Leite
LeiteLeite Manteiga
Manteiga
Leite, Manteiga Do total de transações, 50% = 3/6contém Leite e Manteiga
Do total de transações que compraramLeite, 75% = 3/4,
também compraram Manteiga
46
Medidas de Interesse Suporte de A, B , C D
Confiança de A, B , C D
número de transações que compraram A,B,C,D número de transações que compraram A,B,C
número de transações que compraram A,B,C,D Total de transações
47
ExemploID Compras
1 Pão, ,
2 ,Açucar
3
4 Manteiga, Açúcar
5 Vinho, Queijo
6 Pão, Leite, Manteiga
Leite
Leite
Leite Manteiga
Manteiga
Leite, Manteiga
Do total de transações, 50% = 3/6contém Leite e Manteiga
(Suporte)Do total de transações que compraram
Leite, 75% = 3/4,também compraram Manteiga
(Confiança)
São desejadas regras que possuam alto suporte e alta confiança.
48
Exemplo
Por exemplo: imagine que todas as transações que possuem Leite também possuem Manteiga; nesse caso a confiança é de 100% !
Mas imagine que na mesma situação, apenas 5 de 1000 transações possuem Leite e Manteiga; nesse caso o suporte é de 5% !
Começa-se pelo suporte, portanto.
São desejadas regras que possuam alto suporte e alta confiança.
49
A CB D
ADACAB BC BD
ABCD
ABD ACDABC
CD
Itemset
Item
BCD
Encontrar as regras de associação mais significativas é um problema que envolve combinatória
50
A CB D
ADACAB BC BD
ABCD
ABD ACDABC
CD
Itemset
Item
BCD
Encontrar as regras de associação mais significativas é um problema que envolve combinatória
51
A CB D
ADACAB BC BD
ABCD
ABD ACDABC
CD
Itemset
Item
BCD
Encontrar as regras de associação mais significativas é um problema que envolve combinatória
Exemplo, caso C seja podado, todos os sets que possuem C também podem ser podados.
AlgoritmoTrês fatores são importantes:
1. O Suporte mínimo é um parâmetro decisivo – desejam-se apenas itemsets frequentes
suporte(itemSet) ≥ min_support
2. Se um itemSet é frequente todos os seus subItemSets também são frequentes
3. A confiança pode ser calculada em termos de suporte
Conf(A, B, C) = suporte(A,B,C) ≥ min_confidence
suporte(A,B)
AlgoritmoTrês fatores são importantes:
1. O Suporte mínimo é um parâmetro decisivo – desejam-se apenas itemsets frequentes
suporte(itemSet) ≥ min_support
2. Se um itemSet é frequente todos os seus subItemSets também são frequentes
3. A confiança pode ser calculada em termos de suporte
Conf(A, B, C) = suporte(A,B,C) ≥ min_confidence
suporte(A,B)
Se um itemSet não tem o suporte mínimo ele pode ser podado
AlgoritmoTrês fatores são importantes:
1. O Suporte mínimo é um parâmetro decisivo – desejam-se apenas itemsets frequentes
suporte(itemSet) ≥ min_support
2. Se um itemSet é frequente todos os seus subItemSets também são frequentes
3. A confiança pode ser calculada em termos de suporte
Conf(A, B, C) = suporte(A,B,C) ≥ min_confidence
suporte(A,B)
Se um itemSet não tem o suporte mínimo ele pode ser podado
Se um subItemSet não é frequente pode-se descartar seus superItemSets
AlgoritmoTrês fatores são importantes:
1. O Suporte mínimo é um parâmetro decisivo – desejam-se apenas itemsets frequentes
suporte(itemSet) ≥ min_support
2. Se um itemSet é frequente todos os seus subItemSets também são frequentes
3. A confiança pode ser calculada em termos de suporte
Conf(A, B, C) = suporte(A,B,C) ≥ min_confidence
suporte(A,B)
Se um itemSet não tem o suporte mínimo ele pode ser podado
Se um subItemSet não é frequente pode-se descartar seus superItemSets
Basta calcular a frequencia (suporte) dos itemSets para se calcular também o suporte.
56
57
58
Um Exemplo
Id Compras
1 1,3,5
2 1,2,3,5,7
3 1,2,4,9
4 1,2,3,5,9
5 1,3,4,5,6,8
6 2,7,8
L1 = {1}, {2}, {3},{5}
Suporte minimo = 50%
{1,2}
{1,3}
{1,5}
{2,3}
{2,5}
{3,5}
C2 =
C3 = {1,2,3} {1,2,5} {1,3,5}
{1,2}
{1,3}
{1,5}
{3,5}
L2 =
L3 = {1,3,5}
59
Exercicio{1,3,5,7,8}
{3,4,5,7}
{2,3,5,6}
{2,4,5,8,9}
{2,3,5,11}
{1,2,3,7,9}
Suporte = 50%
60
Exercicio{1,3,5,7,8}
{3,4,5,7}
{2,3,5,6}
{2,4,5,8,9}
{2,3,5,11}
{1,2,3,7,9}
F1 = {2}, {3}, {5}, {7}
Suporte = 50%
C1 = {1}, {2}, {3}, {4} ,{5}, {6 },{7}, {8}, {9},{11}
C2 = {2 3}, {2 5}, {2 7}, {3 5}, {3 7}, {5 7}
F2 = {2,3}, {2 5}, {3 5}, {3 7}
C3 = {2,3,5}, {3,5,7}, {2,5,7}, {2,3,7}
Apos a poda : C3 = {2,3,5}
F3 = vazio