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
Introdução – Recuperação de dados baseada em conteúdo Grande volume de dados complexos gerados/manipulados cotidianamente: imagens, video, séries, sequências de DNA, data streams, impressões digitais, textos longos, hipertextos... 2
Introdução 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. 3
Introdução Exemplo: “Dada a foto do Ronaldinho, retorne as 2 fotos presentes na base de dados mais similares a ela” ? 4
Similaridade intuiçã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
Recuperação de dados baseada em conteúdo 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. Imagem Vetor de números (características) Histograma 544 109 3100 490 199 ..... 2099
Consultas por Similaridade 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)
Vetor 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 ! 9
Extrator 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. 10
Extração de características Vetores de Características: buscam representar a “essência” do conjunto de dados, segundo um aspecto especificado Cor, textura, forma, relacionamento entre os objetos 11
Extração de características Cor – primeiro algoritmo: histograma de intensidades / cores 12
Extração de características Forma – segmentação da imagem 13
Extração de características Forma – segmentação da imagem São extraídas características de cada região identificada na imagem. Os múltiplos vetores são então combinados. 14
Extração de características Textura – segmentação da imagem Imagem original Imagem segmentada 15
Extração de características Imagem Vetores de Características Pre-processing Imagem Processada
Extração de características Descritores de Haralick – cor/textura
Características e Descrições de Imagens : Níveis de Abstração
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ância Distâ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 n 2
Funções Distância Distâ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 n 2
Funções de Distância Família Minkowski (generalização) Dados 2 vetores X={x1,x2, … xn} e Y={y1, y2, … yn} Lp(X, Y)= (|xk-yk|)p k=1 n p L0=LInfinity=Chebychev L2=Euclidiana L1=Manhatan A generalização é usada por razões de desempenho computacional e para capturar nuances do conjunto de dados r
Funções de Distância Família Minkowski (generalização) 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. Lp(X, Y)= (|xk-yk|)p k=1 n p A generalização é usada por razões de desempenho computacional e para capturar nuances do conjunto de dados
Consultas por conteúdo em bases de dados complexos 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 complexos Consulta por abrangência: recupera os objetos que apresentem até dado grau r de similaridade ao objeto de busca sq. r sq
Consultas por conteúdo em bases de dados complexos Consulta aos k-vizinhos mais próximos: recupera os k objetos mais “próximos” (similares) ao objeto de busca sq. sq
Consultas por similaridade Similaridade – Consulta por Abrangência Ex: quais são as cidades que estão localizadas até 100km de Ribeirão Preto. CIDADES DO CONJUNTO DE RESPOSTA: B, C, H G E 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) D (A, J) 180 km F C CIDADES FORA DO CONJUNTO DE RESPOSTA: 70 Km J B 100 Km A 95 Km 20 Km D D, E, F, G, I, J, K, 110 Km H K I
CIDADES FORA DO CONJUNTO DE RESPOSTA: Consultas por similaridade Similaridade – Consulta aos k-vizinhos mais Próximos, k-NN Ex: selecione as 2 cidades mais próximas de Ribeirão Preto CIDADES DO CONJUNTO DE RESPOSTA: C, H G E 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) D (A, J) 180 km 170 Km 160 Km F 175 Km C CIDADES FORA DO CONJUNTO DE RESPOSTA: 180 Km 70 Km J B A 95 Km 110 Km 20 Km D B, D, E, F, G, I, J, K H K 145 Km 160 Km I
Consultas por Similaridade 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 R+: conjuntos dos reais positivos
Espaço Métrico: Definição 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). Caso alguma destas propriedades não seja satisfeita, não há garantia de que as consultas por similaridade farão sentido, os dados retornados podem não satisfazer à percepção desejada ou esperada. 1 2 3 a c b a c b +
Espaço métrico 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).
Métodos de acesso 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.
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
Recuperação de dados baseada em conteúdo - síntese Funçõs distância determinam a distância entre vetores de características
Recuperação de dados baseada em conteúdo - síntese Métodos de acesso métrico permitem a indexação de espaços métricos com melhor desempenho
Recuperação de dados baseada em conteúdo - síntese Vetores de características Função Distância
Recuperação de dados baseada em conteúdo - síntese Similarity Queries Vetores de características Função Distância
Recuperação de dados baseada em conteúdo - síntese Metric Structure Distance Function Features Extraction 38
Recuperação de dados baseada em conteúdo - síntese Metric Structure Data retrieval Distance Function Features Extraction
Recuperação de dados baseada em conteúdo - síntese Metric Structure Exemplo: http://gbdi.icmc.usp.br/~junio/MetricSPlat/index.htm Data retrieval Distance Function Features Extraction
Classificação KNN 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
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
Regras de Associação Itens = {Pão, Leite, Açúcar, ... } Pão, Leite Manteiga Vinho Queijo ITEM, ITEM, ITEM ITEM
Exemplo ID Compras 1 2 3 4 5 6 Pão, , ,Açucar Manteiga, Açúcar Vinho, Queijo 6 Pão, Leite, Manteiga Leite Manteiga Leite Manteiga Leite Leite, Manteiga Do total de transações, 50% = 3/6 contém Leite e Manteiga Do total de transações que compraram Leite, 75% = 3/4, também compraram Manteiga
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 Total de transações número de transações que compraram A,B,C,D número de transações que compraram A,B,C
Exemplo ID Compras 1 2 3 4 5 6 Pão, , ,Açucar Manteiga, Açúcar Vinho, Queijo 6 Pão, Leite, Manteiga Leite Manteiga Leite Manteiga Do total de transações, 50% = 3/6 contém Leite e Manteiga (Suporte) Leite Leite, Manteiga 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.
Exemplo São desejadas regras que possuam alto suporte e alta confiança. 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.
Encontrar as regras de associação mais significativas é um problema que envolve combinatória ABCD Itemset ABC ABD ACD BCD AB AC AD BC BD CD De acordo com a propriedade 2 do próximo slide, se um elemento da árvore é podado, então todos os elementos que vêm acima dele também podem ser podados. A B C D Item
Encontrar as regras de associação mais significativas é um problema que envolve combinatória ABCD Itemset ABC ABD ACD BCD AB AC AD BC BD CD De acordo com a propriedade 2 do próximo slide, se um elemento da árvore é podado, então todos os elementos que vêm acima dele também podem ser podados. A B C D Item
Encontrar as regras de associação mais significativas é um problema que envolve combinatória ABCD Exemplo, caso C seja podado, todos os sets que possuem C também podem ser podados. Itemset ABC ABD ACD BCD AB AC AD BC BD CD De acordo com a propriedade 2 do próximo slide, se um elemento da árvore é podado, então todos os elementos que vêm acima dele também podem ser podados. A B C D Item
Algoritmo Trê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 Algoritmo Trê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 itemSet não tem o suporte mínimo ele pode ser podado Algoritmo Trê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
Se um itemSet não tem o suporte mínimo ele pode ser podado Algoritmo Trê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.
Candidatos da combinação 1,3 x 2,5 = {{1,2,3}, {1,3,5}, {2,3,5}}, 2 deles repetidos pelas outras combinações de candidatos, portanto, apenas o {1, 3, 5} é suficiente. Dois dos 3 candidatos tem contagem menos que 2 (não coube na ilustração) e poderiam ser cortados baseando-se em seus subItemSets, que têm contagem abaixo do mínimo.
Um Exemplo L1 = {1}, {2}, {3},{5} 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 {1,3} C2 = {1,2} {1,5} {2,3} {3,5} {2,5} L2 = {1,2} {1,3} {1,5} {3,5} C3 = {1,2,3} {1,2,5} {1,3,5} L3 = {1,3,5} Suporte minimo = 50%
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%
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} C1 = {1}, {2}, {3}, {4} ,{5}, {6 },{7}, {8}, {9},{11} F1 = {2}, {3}, {5}, {7} 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} Suporte = 50% F3 = vazio