• Nenhum resultado encontrado

apresentacaoUFABC

N/A
N/A
Protected

Academic year: 2021

Share "apresentacaoUFABC"

Copied!
176
0
0

Texto

(1)

Profa. Dra. Maria Camila Nardini Barioni

[email protected]

Centro de Matem´atica Computa¸c˜ao e Cogni¸c˜ao -UFABC

Santo Andr´e 11 de julho de 2011

(2)

1 Introdu¸c˜ao

2 Conceitos Fundamentais

3 Suportando Consultas por Similaridade em SQL

4 Algoritmo PAM-SLIM

5 Prot´otipo SIREN

(3)

1 Introdu¸c˜ao

2 Conceitos Fundamentais

3 Suportando Consultas por Similaridade em SQL

4 Algoritmo PAM-SLIM

5 Prot´otipo SIREN

(4)

Usuário/Aplicação DBA Compilador de consulta Gerenciador de transação Compilador DDL Engine de Execução Recuperação e log Controle de concorrência consultas, atualizações comandos de transações comandosDDL metadados metadados, estatísticas plano de consulta Buffers Buffers

Execução e log concorrência

Gerenciador de re-gistro/arquivo/índice Gerenciador de Buffer BuffersTabela bloqueio requisições de registro, arquivo e índice páginas de log comandos de página escrita/leitura dados, metadados, índice Gerenciador de Armazenamento Armazena-mento escrita/leitura página estrutura em memória componentes

fluxo de controle e dados

(5)

Introdu¸c˜

ao

Motiva¸c˜ao

Os SGBD foram desenvolvidos para lidar com dados num´ericos e textuais (dados tradicionais)

Busca⇒baseada na propriedade de ordem total

A<B <C

As aplica¸c˜oes de bases de dados modernas necessitam lidar com tipos de dados complexos

(6)

Introdu¸c˜

ao

Motiva¸c˜ao

Os SGBD foram desenvolvidos para lidar com dados num´ericos e textuais (dados tradicionais)

Busca⇒baseada na propriedade de ordem total

100<1.000 <10.000 A<B <C

de dados complexos

(7)

Motiva¸c˜ao

Os SGBD foram desenvolvidos para lidar com dados num´ericos e textuais (dados tradicionais)

Busca⇒baseada na propriedade de ordem total

100<1.000 <10.000 A<B <C

As aplica¸c˜oes de bases de dados modernas necessitam lidar com tipos de dados complexos

(8)

Motiva¸c˜ao

Os SGBD foram desenvolvidos para lidar com dados num´ericos e textuais (dados tradicionais)

Busca⇒baseada na propriedade de ordem total

100<1.000 <10.000 A<B <C

As aplica¸c˜oes de bases de dados modernas necessitam lidar com tipos de dados complexos

(9)

Motiva¸c˜ao

Os SGBD foram desenvolvidos para lidar com dados num´ericos e textuais (dados tradicionais)

Busca⇒baseada na propriedade de ordem total

100<1.000 <10.000 A<B <C

As aplica¸c˜oes de bases de dados modernas necessitam lidar com tipos de dados complexos

(10)

Introdu¸c˜

ao

Consultas por Similaridade

Contribuem para a necessidade de criar um suporte para a realiza¸c˜ao de consultas por similaridade em SGBDR:

armazenados em bases de dados relacionais

A integra¸c˜ao de m´etodos de minera¸c˜ao de dados com SGBDR

Ponto fundamental: disponibiliza¸c˜ao de opera¸c˜oes b´asicas para as t´ecnicas de minera¸c˜ao de dados existentes

ex.: detec¸c˜ao de agrupamentos de dados⇒c´alculo de medidas de similaridade entre os pares de objetos de um conjunto de dados

(11)

Introdu¸c˜

ao

Consultas por Similaridade

Contribuem para a necessidade de criar um suporte para a realiza¸c˜ao de consultas por similaridade em SGBDR:

O aumento da quantidade de dados de dom´ınios complexos armazenados em bases de dados relacionais

Ponto fundamental: disponibiliza¸c˜ao de opera¸c˜oes b´asicas para as t´ecnicas de minera¸c˜ao de dados existentes

ex.: detec¸c˜ao de agrupamentos de dados⇒c´alculo de medidas de similaridade entre os pares de objetos de um conjunto de dados

(12)

Consultas por Similaridade

Contribuem para a necessidade de criar um suporte para a realiza¸c˜ao de consultas por similaridade em SGBDR:

O aumento da quantidade de dados de dom´ınios complexos armazenados em bases de dados relacionais

A integra¸c˜ao de m´etodos de minera¸c˜ao de dados com SGBDR

Ponto fundamental: disponibiliza¸c˜ao de opera¸c˜oes b´asicas para as t´ecnicas de minera¸c˜ao de dados existentes

ex.: detec¸c˜ao de agrupamentos de dados⇒c´alculo de medidas de similaridade entre os pares de objetos de um conjunto de dados

(13)

Quest˜oes importantes:

1 Como comparar dados complexos?

2 Como indexar conjuntos de dados complexos?

3 Como expressar consultas sobre esses dados no SGBD?

4 Como otimizar os algoritmos de detec¸c˜ao de agrupamentos de maneira a torn´a-los exeq¨u´ıveis em SGBD?

(14)

1 Introdu¸c˜ao

2 Conceitos Fundamentais

3 Suportando Consultas por Similaridade em SQL

4 Algoritmo PAM-SLIM

5 Prot´otipo SIREN

(15)

Conceitos Fundamentais

Dom´ınios de dados complexos

Dados de dom´ınios complexos podem ser armazenados em um banco de dados:

ex.: s´eries temporais, informa¸c˜oes geo-referenciadas, ...

compara¸c˜ao por similaridade: aplica¸c˜ao de fun¸c˜ao de distˆancia sobre os valores dos atributos que os comp˜oem

2 Objeto bin´ario BLOB

ex.: imagens, trilhas de ´audio, ...

compara¸c˜ao por similaridade: aplica¸c˜ao de fun¸c˜ao de distˆancia sobre um conjunto pr´e-definido de caracter´ısticas inerentes aos dados

(16)

Conceitos Fundamentais

Dom´ınios de dados complexos

Dados de dom´ınios complexos podem ser armazenados em um banco de dados:

1 Conjunto de atributos de dom´ınios tradicionais

ex.: s´eries temporais, informa¸c˜oes geo-referenciadas, ...

compara¸c˜ao por similaridade: aplica¸c˜ao de fun¸c˜ao de distˆancia sobre os valores dos atributos que os comp˜oem

ex.: imagens, trilhas de ´audio, ...

compara¸c˜ao por similaridade: aplica¸c˜ao de fun¸c˜ao de distˆancia sobre um conjunto pr´e-definido de caracter´ısticas inerentes aos dados

(17)

Dom´ınios de dados complexos

Dados de dom´ınios complexos podem ser armazenados em um banco de dados:

1 Conjunto de atributos de dom´ınios tradicionais

ex.: s´eries temporais, informa¸c˜oes geo-referenciadas, ...

compara¸c˜ao por similaridade: aplica¸c˜ao de fun¸c˜ao de distˆancia sobre os valores dos atributos que os comp˜oem

2 Objeto bin´ario BLOB

ex.: imagens, trilhas de ´audio, ...

compara¸c˜ao por similaridade: aplica¸c˜ao de fun¸c˜ao de distˆancia sobre um conjunto pr´e-definido de caracter´ısticas inerentes aos dados

(18)

Conceitos Fundamentais

Como representar dados complexos?

Representa¸c˜ao das Imagens

Imagem original

(19)

Conceitos Fundamentais

Como representar dados complexos?

Representa¸c˜ao das Imagens

Imagem original

Extrator de Características

(20)

Conceitos Fundamentais

Como representar dados complexos?

Representa¸c˜ao das Imagens

Imagem

original característicasVetor de Extrator de Características

x

1

x

2

x

n . . .

(21)

Conceitos Fundamentais

Como representar dados complexos?

Representa¸c˜ao das Imagens

Imagem

original característicasVetor de Extrator de Características

x

1

x

2

x

n . .

. espaço das Ponto no características

(22)

Como representar dados complexos?

Representa¸c˜ao das Imagens

Imagem

original característicasVetor de Extrator de Características

x

1

x

2

x

n . .

. espaço das Ponto no características

(23)
(24)

Como representar dados complexos? Extração x 1 x 2 x n . . . Extração Extração x 1 x 2 x n . . . x 1 x 2 x n . . .

(25)

Como representar dados complexos? Extração x 1 x 2 x n . . . Extração Extração x 1 x 2 . . . x 1 x 2 x n . . .

(26)

Como representar dados complexos? Extração x 1 x 2 x n . . . Extração Extração x 1 x 2 x n . . . x 1 x 2 x n . . . Menor similaridade Maior similaridade

(27)

Como representar dados complexos? Extração x 1 x 2 x n . . . Extração Extração x 1 x 2 . . . x 1 x 2 x n . . . Menor similaridade Maior similaridade Mais próximo Mais distante

(28)

Como representar dados complexos? Extração x 1 x 2 x n . . . Extração Extração x 1 x 2 x n . . . x 1 x 2 x n . . . Menor similaridade Maior similaridade Mais próximo Mais distante Cálculo da similaridade: função de distância

(29)
(30)
(31)

Como representar dados complexos?

Espaço multi-dimensional ou espaço métrico

(32)

Como comparar dados complexos?

Espa¸co M´etrico

Defini¸c˜ao: Um espa¸co m´etrico M ´e definido pelo par {S, d()}, onde S define o dom´ınio dos dados e d () ´e uma fun¸c˜ao de distˆancia que atende `

as propriedades:

Simetria: d (s1, s2) = d (s2, s1)

N˜ao-negatividade: 0 ≤ d (s1, s2) < ∞

Desigualdade triangular: d (s1, s2) ≤ d (s1, s3) + d (s3, s2)

(33)

Como comparar dados complexos?

Exemplo de fun¸c˜ao de distˆancia para dom´ınios vetoriais:

fun¸c˜ao de distˆancia Lp (Minkowski)

d (x , y ) =qp Pn

i =1|xi− yi| p

(34)

Como comparar dados complexos?

Exemplo de fun¸c˜ao de distˆancia para dom´ınios vetoriais:

fun¸c˜ao de distˆancia Lp (Minkowski)

d (x , y ) =qp Pn

i =1|xi− yi| p

onde n ´e a dimens˜ao do espa¸co vetorial

q

ξ

Manhattan 1 3 2

L

1 1

(35)

Como comparar dados complexos?

Exemplo de fun¸c˜ao de distˆancia para dom´ınios vetoriais:

fun¸c˜ao de distˆancia Lp (Minkowski)

d (x , y ) =qp Pn

i =1|xi− yi| p

onde n ´e a dimens˜ao do espa¸co vetorial

q

ξ

Manhattan 1 3 2

L

2

L

1 1 2 1

(36)

Como comparar dados complexos?

Exemplo de fun¸c˜ao de distˆancia para dom´ınios vetoriais:

fun¸c˜ao de distˆancia Lp (Minkowski)

d (x , y ) =qp Pn

i =1|xi− yi| p

onde n ´e a dimens˜ao do espa¸co vetorial

q

ξ

Manhattan Euclidiana Chebyshev 1 3 2

L

8

L

2

L

1 1 2 3 1 2 1

(37)

Como comparar dados complexos?

Exemplo de fun¸c˜ao de distˆancia para dom´ınios n˜ao-vetoriais:

Fun¸c˜ao de distˆancia LEDIT(x , y )⇒quantidade m´ınima de caracteres

que precisam ser substitu´ıdos, removidos ou inseridos em x , para que ela se torne igual a y

Exemplos:

LEDIT(’amora’,’aroma’) = 2 (duas substitui¸c˜oes)

(38)

Conceitos Fundamentais

Como consultar?

Na literatura apresentam-se:

Duas opera¸c˜oes que comparam um objeto de referˆencia com aqueles armazenados em uma cole¸c˜ao de objetos

sele¸c˜ao

Consulta por abrangˆencia (Range query)

Consulta aos k-vizinhos mais pr´oximos (k-Nearest neighbor query)

cole¸c˜oes de objetos

jun¸c˜ao

Jun¸c˜ao por abrangˆencia (Range Join)

Jun¸c˜ao pelos k-vizinhos mais pr´oximos (k-Nearest Neighbors Join) Jun¸c˜ao dos k-pares de vizinhos mais pr´oximos (k-Closest

(39)

Como consultar?

Na literatura apresentam-se:

Duas opera¸c˜oes que comparam um objeto de referˆencia com aqueles armazenados em uma cole¸c˜ao de objetos

sele¸c˜ao

Consulta por abrangˆencia (Range query)

Consulta aos k-vizinhos mais pr´oximos (k-Nearest neighbor query)

Trˆes opera¸c˜oes que comparam pares de objetos armazenados em duas cole¸c˜oes de objetos

jun¸c˜ao

Jun¸c˜ao por abrangˆencia (Range Join)

Jun¸c˜ao pelos k-vizinhos mais pr´oximos (k-Nearest Neighbors Join) Jun¸c˜ao dos k-pares de vizinhos mais pr´oximos (k-Closest

(40)

Como consultar?

Para exemplificar:

Conjunto de dados CidadeBR

Cada tupla⇒nome da cidade + coordenadas geogr´aficas

Medida de similaridade⇒distˆancia entre as cidades computada pela aplica¸c˜ao da fun¸c˜ao de distˆancia Euclidiana sobre as suas coordenadas

(41)

Como consultar? – Exemplo Sele¸c˜ao por Similaridade São Carlos Ibaté Araraquara Dourado Ribeirão Bonito Brotas Itirapina Corumbataí Analândia Araras Leme Descalvado (-22.02, 47.89)

(42)

Como consultar? – Exemplo Sele¸c˜ao por Similaridade

L

2 k = 5 São Carlos Ibaté Araraquara Dourado Ribeirão Bonito Brotas Itirapina Corumbataí Analândia Araras Leme Descalvado (-22.02, 47.89) CidadeBR k obj d NNq k c ) ( − < (),{ }, >

σ

^ Seleção dos k-vizinhos mais próximos:

(43)

Como consultar? – Exemplo Sele¸c˜ao por Similaridade São Carlos Ibaté Araraquara Dourado Ribeirão Bonito Brotas Itirapina Corumbataí Analândia Araras Leme Descalvado (-22.02, 47.89) k = 5 CidadeBR k obj d NNq k c ) ( − < (),{ }, >

σ

^ Seleção dos k-vizinhos mais próximos:

(44)

Como consultar? – Exemplo Sele¸c˜ao por Similaridade

L

2 São Carlos Ibaté Araraquara Dourado Ribeirão Bonito Brotas Itirapina Corumbataí Analândia Araras Leme Descalvado (-22.02, 47.89) 3 . 0 = ξ

CidadeBR

c obj d Rq

)

(

< (),{ },ξ>

σ

^

(45)

Como consultar? – Exemplo Sele¸c˜ao por Similaridade São Carlos Ibaté Araraquara Dourado Ribeirão Bonito Brotas Itirapina Corumbataí Analândia Araras Leme Descalvado (-22.02, 47.89) 3 . 0 = ξ

CidadeBR

c obj d Rq

)

(

< (),{ },ξ>

σ

^

(46)

Como consultar? – Exemplo Jun¸c˜ao por Similaridade

São Paulo Rio de

Janeiro Vitória Belo Horizonte 11 . 0 = ξ

CidadeBR

CapitalSERq<d(),ξ > L 2

(47)

Como consultar? – Exemplo Jun¸c˜ao por Similaridade

São Paulo Rio de

Janeiro Vitória Belo Horizonte

ξ

ξ

ξ

ξ

11 . 0 = ξ

CidadeBR

CapitalSERq<d(),ξ >

(48)

Como consultar? – Exemplo Jun¸c˜ao por Similaridade Rio de Janeiro Vitória Belo Horizonte

ξ

ξ

ξ

ξ

CapitalSE CidadeBR

São Paulo-SP São Caetano do Sul-SP Belo Horizonte-MG

Belo Horizonte-MG

Contagem-MG Nova Lima-MG Rio de Janeiro-RJ Niterói-RJ

Vitória-ES Vitória-ES Vila Velha-ES Cariacica-ES 11 . 0 = ξ

CidadeBR

CapitalSERq<d(),ξ >

(49)

Como consultar? – Exemplo Jun¸c˜ao por Similaridade

São Paulo Rio de

Janeiro Vitória Belo Horizonte

CidadeBR

CapitalSEkNNq<d(),k> k = 2

Junção pelos k-vizinhos mais próximos:

(50)

Como consultar? – Exemplo Jun¸c˜ao por Similaridade

São Paulo Rio de

Janeiro Vitória Belo Horizonte L 2

CidadeBR

CapitalSEkNNq<d(),k> k = 2

Junção pelos k-vizinhos mais próximos:

(51)

Como consultar? – Exemplo Jun¸c˜ao por Similaridade Rio de Janeiro Vitória Belo Horizonte CapitalSE CidadeBR

São Paulo-SP São Caetano do Sul-SP Belo Horizonte-MG

Belo Horizonte-MG

Contagem-MG Nova Lima-MG Rio de Janeiro-RJ Niterói-RJ

Vitória-ES Vila Velha-ES Rio de Janeiro-RJ Duque de Caxias-RJ

São Paulo-SP Diadema-SP

CidadeBR

CapitalSEkNNq<d(),k>

k = 2

Junção pelos k-vizinhos mais próximos:

(52)

Como consultar? – Exemplo Jun¸c˜ao por Similaridade

São Paulo Rio de

Janeiro Vitória Belo Horizonte k = 2

CidadeBR

CapitalSEkCNq<d(),k> L 2

Junção dos k-pares de vizinhos mais próximos:

(53)

Como consultar? – Exemplo Jun¸c˜ao por Similaridade

São Paulo Rio de

Janeiro Vitória Belo Horizonte k = 2

CidadeBR

CapitalSEkCNq<d(),k> Junção dos k-pares de vizinhos mais próximos:

(54)

Como consultar? – Exemplo Jun¸c˜ao por Similaridade Rio de Janeiro Vitória Belo Horizonte CapitalSE CidadeBR Vitória-ES Vitória-ES Vila Velha-ES Cariacica-ES k = 2

CidadeBR

CapitalSEkCNq<d(),k> Junção dos k-pares de vizinhos mais próximos:

(55)

Como indexar conjuntos de dados complexos?

Estruturas de Indexa¸c˜ao (M´etodos de Acesso)

S˜ao utilizadas para agilizar a realiza¸c˜ao de consultas por similaridade Para espa¸cos m´etricos: M´etodos de Acesso M´etrico (MAM)

s1 s1 s2 s2 s6 s6 s3 s3 s10 s10 s13 s13 s8 s8 s9 s9 s11 s11 ss1414 s7 s7 s5 s5 s12 s12 s 4 s4 s15 s15

(56)

Como indexar conjuntos de dados complexos?

Estruturas de Indexa¸c˜ao (M´etodos de Acesso)

S˜ao utilizadas para agilizar a realiza¸c˜ao de consultas por similaridade Para espa¸cos m´etricos: M´etodos de Acesso M´etrico (MAM)

s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s7 s7 s7 s7 s7 s7 s5 s5 s5 s5 ss66 s6 s6 s3 s3 ss1010 ss1212 ss88 s8 s8 s9 s9 ss1111 ss44 ss1515 ss1414 root node root node s6 s6 ss1313 index node index node leaf node leaf node s1 s1 s2 s2 s6 s6 s3 s3 s10 s10 s13 s13 s8 s8 s9 s9 s11 s11 ss1414 s7 s7 s5 s5 s12 s12 s 4 s4 s15 s15

(57)

Como indexar conjuntos de dados complexos?

Estruturas de Indexa¸c˜ao (M´etodos de Acesso)

S˜ao utilizadas para agilizar a realiza¸c˜ao de consultas por similaridade Para espa¸cos m´etricos: M´etodos de Acesso M´etrico (MAM)

s s s1 s1 s1 s1 s s s2 s2 s s s7 s7 s7 s7 s s s5 s5 ss66 s6 s6 s s ss ss ss s8 s8 s s ss ss ss ss ss ss s1 s1 s2 s2 s6 s6 s3 s3 s10 s10 s13 s13 s8 s8 s9 s9 s11 s11 ss1414 s7 s7 s5 s5 s12 s12 s 4 s4 s15 s15 root node root node index node index node leaf leaf

(58)

Como indexar conjuntos de dados complexos?

Estruturas de Indexa¸c˜ao (M´etodos de Acesso)

S˜ao utilizadas para agilizar a realiza¸c˜ao de consultas por similaridade Para espa¸cos m´etricos: M´etodos de Acesso M´etrico (MAM)

s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s7 s7 s7 s7 s7 s7 s5 s5 s5 s5 ss66 s6 s6 s3 s3 ss1010 ss1212 ss88 s8 s8 s9 s9 ss1111 ss44 ss1515 ss1414 ss66 ss1313 s1 s1 s2 s2 s6 s6 s3 s3 s10 s10 s13 s13 s8 s8 s9 s9 s11 s11 ss1414 s7 s7 s5 s5 s12 s12 s 4 s4 s15 s15 root node root node index node index node leaf node leaf node

(59)

Como indexar conjuntos de dados complexos?

Estruturas de Indexa¸c˜ao (M´etodos de Acesso)

S˜ao utilizadas para agilizar a realiza¸c˜ao de consultas por similaridade Para espa¸cos m´etricos: M´etodos de Acesso M´etrico (MAM)

s s s1 s1 s1 s1 s s s2 s2 s s s7 s7 s7 s7 s s s5 s5 ss66 s6 s6 s s ss ss ss s8 s8 s s ss ss ss ss ss ss s1 s1 s2 s2 s6 s6 s3 s3 s10 s10 s13 s13 s8 s8 s9 s9 s11 s11 ss1414 s7 s7 s5 s5 s12 s12 s 4 s4 s15 s15 root node root node index node index node leaf leaf

(60)

Como indexar conjuntos de dados complexos?

Estruturas de Indexa¸c˜ao (M´etodos de Acesso)

S˜ao utilizadas para agilizar a realiza¸c˜ao de consultas por similaridade Para espa¸cos m´etricos: M´etodos de Acesso M´etrico (MAM)

s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s7 s7 s7 s7 s7 s7 s5 s5 s5 s5 ss66 s6 s6 s3 s3 ss1010 ss1212 ss88 s8 s8 s9 s9 ss1111 ss44 ss1515 ss1414 ss66 ss1313 s1 s1 s2 s2 s6 s6 s3 s3 s10 s10 s13 s13 s8 s8 s9 s9 s11 s11 ss1414 s7 s7 s5 s5 s12 s12 s 4 s4 s15 s15 root node root node index node index node leaf node leaf node

(61)

Como indexar conjuntos de dados complexos?

Estruturas de Indexa¸c˜ao (M´etodos de Acesso)

S˜ao utilizadas para agilizar a realiza¸c˜ao de consultas por similaridade Para espa¸cos m´etricos: M´etodos de Acesso M´etrico (MAM)

s s s1 s1 s1 s1 s s s2 s2 s s s7 s7 s7 s7 s s s5 s5 ss66 s6 s6 s s ss ss ss s8 s8 s s ss ss ss ss ss ss s1 s1 s2 s2 s6 s6 s3 s3 s10 s10 s13 s13 s8 s8 s9 s9 s11 s11 ss1414 s7 s7 s5 s5 s12 s12 s 4 s4 s15 s15 root node root node index node index node leaf leaf

(62)

Descoberta de Conhecimento em Bases de Dados e Minera¸c˜ao de Dados

Processo interativo e iterativo que envolve trˆes etapas:

Base de Dados Base de Dados Flat Files Conhecimento Limpeza e Integração Seleção e Transformação Mineração de Dados Avaliação e Apresentação Padrões Pré-processamento Descoberta de Padrões Avaliação dos Resultados

(63)

Descoberta de Conhecimento em Bases de Dados e Minera¸c˜ao de Dados

Processo interativo e iterativo que envolve trˆes etapas:

Base de Dados Base de Dados Flat Files Conhecimento Limpeza e Integração Seleção e Transformação Mineração de Dados Avaliação e Apresentação Padrões Pré-processamento Descoberta de Padrões Avaliação dos Resultados

(64)

Conceitos Fundamentais

Descoberta de Conhecimento em Bases de Dados e Minera¸c˜ao de Dados

Demanda:

Algoritmos de minera¸c˜ao de dados escal´aveis

Disponibilizar opera¸c˜oes b´asicas pelos SGBD

Exemplo

T´ecnica: Detec¸c˜ao de Agrupamentos

(65)

Descoberta de Conhecimento em Bases de Dados e Minera¸c˜ao de Dados

Demanda:

Algoritmos de minera¸c˜ao de dados escal´aveis Estrat´egia:

Disponibilizar opera¸c˜oes b´asicas pelos SGBD

Exemplo

T´ecnica: Detec¸c˜ao de Agrupamentos

(66)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Detec¸c˜ao de Agrupamentos

Defini¸c˜ao: Processo de divis˜ao de objetos em classes (ou grupos) de objetos similares de acordo com uma medida de similaridade

Hier´arquico

cria uma hierarquia de agrupamentos, formada por v´arios n´ıveis de parti¸c˜oes aninhadas de um conjunto de dados

Particionamento

constr´oi um ´unico n´ıvel de parti¸c˜ao que divide os dados em k agrupamentos representados por

(67)

Detec¸c˜ao de agrupamentos

Detec¸c˜ao de Agrupamentos

Defini¸c˜ao: Processo de divis˜ao de objetos em classes (ou grupos) de objetos similares de acordo com uma medida de similaridade

Duas categorias de algoritmos Hier´arquico

cria uma hierarquia de agrupamentos, formada por v´arios n´ıveis de parti¸c˜oes aninhadas de um conjunto de dados

Particionamento

constr´oi um ´unico n´ıvel de parti¸c˜ao que divide os dados em k agrupamentos representados por

(68)

Detec¸c˜ao de agrupamentos

Detec¸c˜ao de Agrupamentos

Defini¸c˜ao: Processo de divis˜ao de objetos em classes (ou grupos) de objetos similares de acordo com uma medida de similaridade

Duas categorias de algoritmos Hier´arquico

cria uma hierarquia de agrupamentos, formada por v´arios n´ıveis de parti¸c˜oes aninhadas de um conjunto de dados

Particionamento

constr´oi um ´unico n´ıvel de parti¸c˜ao que divide os dados em k agrupamentos representados por

Centr´oides (k-m´edia) Med´oides (k-med´oide)

(69)

Detec¸c˜ao de agrupamentos

Detec¸c˜ao de Agrupamentos

Defini¸c˜ao: Processo de divis˜ao de objetos em classes (ou grupos) de objetos similares de acordo com uma medida de similaridade

Duas categorias de algoritmos Hier´arquico

cria uma hierarquia de agrupamentos, formada por v´arios n´ıveis de parti¸c˜oes aninhadas de um conjunto de dados

Particionamento

constr´oi um ´unico n´ıvel de parti¸c˜ao que divide os dados em k agrupamentos representados por

(70)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Raz˜oes para a escolha dos algoritmos baseados no k-med´oide

S˜ao menos sens´ıveis quanto `a presen¸ca de outliers N˜ao apresentam limita¸c˜oes quanto ao tipo de atributo N˜ao dependem da ordem de entrada dos dados

Desvantagens

Apresentam um custo computacional muito elevado

Estrat´egia de otimiza¸c˜ao: selecionar uma amostragem do conjunto de dados antes da realiza¸c˜ao do processo de agrupamento dos dados

(71)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Raz˜oes para a escolha dos algoritmos baseados no k-med´oide Vantagens

S˜ao menos sens´ıveis quanto `a presen¸ca de outliers N˜ao apresentam limita¸c˜oes quanto ao tipo de atributo N˜ao dependem da ordem de entrada dos dados

Apresentam um custo computacional muito elevado

Estrat´egia de otimiza¸c˜ao: selecionar uma amostragem do conjunto de dados antes da realiza¸c˜ao do processo de agrupamento dos dados

(72)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Raz˜oes para a escolha dos algoritmos baseados no k-med´oide Vantagens

S˜ao menos sens´ıveis quanto `a presen¸ca de outliers N˜ao apresentam limita¸c˜oes quanto ao tipo de atributo N˜ao dependem da ordem de entrada dos dados

Desvantagens

Apresentam um custo computacional muito elevado

Estrat´egia de otimiza¸c˜ao: selecionar uma amostragem do conjunto de dados antes da realiza¸c˜ao do processo de agrupamento dos dados

(73)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Raz˜oes para a escolha dos algoritmos baseados no k-med´oide Vantagens

S˜ao menos sens´ıveis quanto `a presen¸ca de outliers N˜ao apresentam limita¸c˜oes quanto ao tipo de atributo N˜ao dependem da ordem de entrada dos dados

Desvantagens

Apresentam um custo computacional muito elevado

(74)

Detec¸c˜ao de agrupamentos

Raz˜oes para a escolha dos algoritmos baseados no k-med´oide Vantagens

S˜ao menos sens´ıveis quanto `a presen¸ca de outliers N˜ao apresentam limita¸c˜oes quanto ao tipo de atributo N˜ao dependem da ordem de entrada dos dados

Desvantagens

Apresentam um custo computacional muito elevado

Estrat´egia de otimiza¸c˜ao: selecionar uma amostragem do conjunto de dados antes da realiza¸c˜ao do processo de agrupamento dos dados

(75)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Objetivo:

encontrar um conjunto de agrupamentos n˜ao sobrepostos de modo que cada agrupamento possua um objeto representante (med´oide)

Inicializa¸c˜ao

seleciona-se um conjunto inicial de k med´oides

Avalia¸c˜ao

uma fun¸c˜ao de pontua¸c˜ao, baseada na soma da distˆancia total entre os objetos n˜ao selecionados e seus med´oides ´e minimizada

Quanto menor a soma das distˆancias entre os med´oides e todos os outros objetos de seus agrupamentos, melhor o resultado do agrupamento

(76)

Detec¸c˜ao de agrupamentos

Objetivo:

encontrar um conjunto de agrupamentos n˜ao sobrepostos de modo que cada agrupamento possua um objeto representante (med´oide) Passos principais:

Inicializa¸c˜ao

seleciona-se um conjunto inicial de k med´oides

Avalia¸c˜ao

uma fun¸c˜ao de pontua¸c˜ao, baseada na soma da distˆancia total entre os objetos n˜ao selecionados e seus med´oides ´e minimizada

Quanto menor a soma das distˆancias entre os med´oides e todos os outros objetos de seus agrupamentos, melhor o resultado do agrupamento

(77)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Exemplo abordagem k-med´oide

Algoritmos utilizados no trabalho

Abordagem

K

-medóide

(78)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

k med´oides iniciais s˜ao escolhidos aleatoriamente

Algoritmos utilizados no trabalho

Abordagem

K

-medóide

m1

Y

2

m2

X

(79)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Os objetos s˜ao atribuidos aos med´oides mais pr´oximos

Algoritmos utilizados no trabalho

Abordagem

K

-medóide

m1

Y

2

m2

(80)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Muda-se os med´oides para os objetos centrais de cada agrupamento

Algoritmos utilizados no trabalho

Abordagem

K

-medóide

Y

m2

m2

m1

X

(81)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Atualizam-se os objetos mais pr´oximos dos novos med´oides

Algoritmos utilizados no trabalho

Abordagem

K

-medóide

Y

m2

m2

(82)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Novos med´oides s˜ao calculados. Repete-se at´e estabilizar

Algoritmos utilizados no trabalho

Abordagem

K

-medóide

Y

m2

m2

m1

X

(83)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Algoritmos mais conhecidos:

Melhor qualidade

Maior custo computacional

O(k(N − k)2)

CLARA (Clustering LARge Applications)

Baseado em amostragem

O(ks2+ k(N − k))

Conjunto de dados aumenta

qualidade degrada

CLARANS (Clustering Large Applications based upon RANdomized Search)

Baseado em busca aleat´oria

(84)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Algoritmos mais conhecidos:

PAM (Partitioning Around Medoids)

Melhor qualidade

Maior custo computacional

O(k(N − k)2)

Baseado em amostragem

O(ks2+ k(N − k))

Conjunto de dados aumenta

qualidade degrada

CLARANS (Clustering Large Applications based upon RANdomized Search)

Baseado em busca aleat´oria

(85)

Conceitos Fundamentais

Detec¸c˜ao de agrupamentos

Algoritmos mais conhecidos:

PAM (Partitioning Around Medoids)

Melhor qualidade

Maior custo computacional

O(k(N − k)2)

CLARA (Clustering LARge Applications)

Baseado em amostragem

O(ks2+ k(N − k))

Conjunto de dados aumenta

qualidade degrada

Search)

Baseado em busca aleat´oria

(86)

Detec¸c˜ao de agrupamentos

Algoritmos mais conhecidos:

PAM (Partitioning Around Medoids)

Melhor qualidade

Maior custo computacional

O(k(N − k)2)

CLARA (Clustering LARge Applications)

Baseado em amostragem

O(ks2+ k(N − k))

Conjunto de dados aumenta

qualidade degrada

CLARANS (Clustering Large Applications based upon RANdomized Search)

Baseado em busca aleat´oria

(87)

1 Introdu¸c˜ao

2 Conceitos Fundamentais

3 Suportando Consultas por Similaridade em SQL

4 Algoritmo PAM-SLIM

5 Prot´otipo SIREN

(88)

Suportando Consultas por Similaridade em SQL

Dom´ınios de dados complexos

Os dom´ınios de objetos complexos podem ser separados em:

Tipo de objeto: composto por uma cole¸c˜ao de atributos tradicionais Forma de compara¸c˜ao: os valores armazenados nos atributos tradicionais s˜ao utilizados para calcular a distˆancia entre cada par de objetos complexos

MONOLITHIC

Tipo de objeto: armazenado como um ´unico objeto bin´ario BLOB (atributo indivis´ıvel)

Forma de compara¸c˜ao: ´e necess´ario aplicar algoritmos de extra¸c˜ao de caracter´ısticas sobre eles

(89)

Suportando Consultas por Similaridade em SQL

Dom´ınios de dados complexos

Os dom´ınios de objetos complexos podem ser separados em: PARTICULATE

Tipo de objeto: composto por uma cole¸c˜ao de atributos tradicionais Forma de compara¸c˜ao: os valores armazenados nos atributos tradicionais s˜ao utilizados para calcular a distˆancia entre cada par de objetos complexos

Tipo de objeto: armazenado como um ´unico objeto bin´ario BLOB (atributo indivis´ıvel)

Forma de compara¸c˜ao: ´e necess´ario aplicar algoritmos de extra¸c˜ao de caracter´ısticas sobre eles

(90)

Dom´ınios de dados complexos

Os dom´ınios de objetos complexos podem ser separados em: PARTICULATE

Tipo de objeto: composto por uma cole¸c˜ao de atributos tradicionais Forma de compara¸c˜ao: os valores armazenados nos atributos tradicionais s˜ao utilizados para calcular a distˆancia entre cada par de objetos complexos

MONOLITHIC

Tipo de objeto: armazenado como um ´unico objeto bin´ario BLOB (atributo indivis´ıvel)

Forma de compara¸c˜ao: ´e necess´ario aplicar algoritmos de extra¸c˜ao de caracter´ısticas sobre eles

(91)

Tipos de dados complexos

Para realizar consultas por similaridade em dom´ınios complexos ´

E necess´ario definir cada dom´ınio onde a similaridade ser´a medida como um novo tipo de dados

Novos tipos de dados

PARTICULATE PARTICULATE MONOLITHIC STILLIMAGE AUDIO PARTICULATE PARTICULATE MONOLITHIC STILLIMAGE AUDIO

(92)

Passos para a realiza¸c˜ao de consultas por similaridade em SQL DDL

1 Definir medidas de similaridade (M´etricas)

2 Especificar tipos de dados complexos na defini¸ao de tabelas 3 Associar atributos complexos com medidas de similaridade 4 Definir ´ındices (opcional)

DML

5 Popular/atualizar a base de dados 6 Especificar consultas

(93)

Suportando Consultas por Similaridade em SQL

Definir medidas de similaridade – M´etricas

Novos comandos

CREATE METRIC ALTER METRIC DROP METRIC

CREATE METRIC Euclidiana2D USING LP2 FOR PARTICULATE

(Latitude FLOAT, Longitude FLOAT);

CREATE METRIC Histograma USING LP1 FOR STILLIMAGE

(94)

Definir medidas de similaridade – M´etricas Novos comandos CREATE METRIC ALTER METRIC DROP METRIC Exemplos:

CREATE METRIC Euclidiana2D USING LP2 FOR PARTICULATE

(Latitude FLOAT, Longitude FLOAT);

CREATE METRIC Histograma USING LP1 FOR STILLIMAGE

(95)

Suportando Consultas por Similaridade em SQL

Especificar tipos de dados complexos na defini¸c˜ao de tabelas – Exemplos

PARTICULATE

CREATE TABLE CidadeBR ( Nome CHAR(30) PRIMARY KEY,

Lat FLOAT,

Longit FLOAT,

Coordenada PARTICULATE, ...);

MONOLITHIC

CREATE TABLE Paisagem ( Id INTEGER PRIMARY KEY, Local CHAR(20),

Fotografo CHAR(30),

Foto STILLIMAGE,

... );

São Carlos-SP -22.02 47.89 1203

Id Local Fotografo Foto

Cristo Redentor

-RJ

Humberto 196

Nome Lat Longit Coordenada

São Carlos-SP -22.02 47.89 1203

Id Local Fotografo Foto

Cristo Redentor

-RJ

Humberto 196

(96)

Suportando Consultas por Similaridade em SQL

Especificar tipos de dados complexos na defini¸c˜ao de tabelas – Exemplos

PARTICULATE

CREATE TABLE CidadeBR ( Nome CHAR(30) PRIMARY KEY,

Lat FLOAT,

Longit FLOAT,

Coordenada PARTICULATE, ...);

MONOLITHIC

CREATE TABLE Paisagem ( Id INTEGER PRIMARY KEY, Local CHAR(20),

Fotografo CHAR(30),

Foto STILLIMAGE,

... );

São Carlos-SP -22.02 47.89 1203

Id Local Fotografo Foto

Cristo Redentor

-RJ

Humberto 196

Nome Lat Longit Coordenada

São Carlos-SP -22.02 47.89 1203

Id Local Fotografo Foto

Cristo Redentor

-RJ

Humberto 196

(97)

Especificar tipos de dados complexos na defini¸c˜ao de tabelas – Exemplos

PARTICULATE

CREATE TABLE CidadeBR ( Nome CHAR(30) PRIMARY KEY,

Lat FLOAT,

Longit FLOAT,

Coordenada PARTICULATE, ...);

MONOLITHIC

CREATE TABLE Paisagem ( Id INTEGER PRIMARY KEY, Local CHAR(20),

Fotografo CHAR(30),

Foto STILLIMAGE,

Nome Lat Longit Coordenada

São Carlos-SP -22.02 47.89 1203

Id Local Fotografo Foto

Cristo Redentor

-RJ

Humberto 196

Nome Lat Longit Coordenada

São Carlos-SP -22.02 47.89 1203

Id Local Fotografo Foto

Cristo Redentor

-RJ

Humberto 196

(98)

Associar atributos complexos com medidas de similaridade

A defini¸c˜ao de como comparar pares de dados de tipos complexos ´e expressa como uma restri¸c˜ao no comando CREATE TABLE:

Restri¸c˜ao de coluna Restri¸c˜ao de tabela

(99)

Associar atributos complexos com medidas de similaridade – Exemplo

PARTICULATE:

CREATE METRIC Euclidiana2D USING LP2

FOR PARTICULATE (Latitude FLOAT,

Longitude FLOAT); CREATE TABLE CidadeBR (

Nome CHAR(30) PRIMARY KEY,

Lat FLOAT,

Longit FLOAT,

Coordenada PARTICULATE,

METRIC (Coordenada) REFERENCES (Lat AS Latitude,

Longit AS Longitude)

USING (Euclidiana2D),

(100)

Associar atributos complexos com medidas de similaridade – Exemplo

MONOLITHIC:

CREATE METRIC Histograma USING LP1

FOR STILLIMAGE (HistogramaEXT (HistogramaC AS Histo));

CREATE METRIC Textura USING LP1

FOR STILLIMAGE (TexturaEXT (TexturaC AS Text));

CREATE TABLE Paisagem ( Id INTEGER PRIMARY KEY, Local CHAR(20),

Fotografo CHAR(30),

Foto STILLIMAGE METRIC USING (Histograma DEFAULT, Textura),

(101)

Suportando Consultas por Similaridade em SQL

Definir ´ındices (opcional)

Consultas por similaridade podem ser realizadas mais rapidamente se forem criados ´ındices sobre os atributos complexos

M´etodos de acesso m´etrico (MAM)

PARTICULATE:

CREATE INDEX Geografia ON CidadeBR (Coordenada)

REFERENCES (Lat AS Latitute, Longit AS Longitude)

USING Euclidiana2D;

MONOLITHIC:

CREATE INDEX FotoPaisagem ON Paisagem (Foto)

(102)

Definir ´ındices (opcional)

Consultas por similaridade podem ser realizadas mais rapidamente se forem criados ´ındices sobre os atributos complexos

M´etodos de acesso m´etrico (MAM)

Exemplos:

PARTICULATE:

CREATE INDEX Geografia ON CidadeBR (Coordenada)

REFERENCES (Lat AS Latitute, Longit AS Longitude)

USING Euclidiana2D;

MONOLITHIC:

CREATE INDEX FotoPaisagem ON Paisagem (Foto)

(103)

Popular/atualizar a base de dados

Para a sintaxe do comando INSERT n˜ao foi necess´ario nenhuma altera¸c˜ao

A sintaxe dos comandos UPDATE e DELETE necessitam de novas constru¸c˜oes para expressar predicados por similaridade

(104)

Suportando Consultas por Similaridade em SQL

Especificar consultas

Comando SELECT

Novas constru¸c˜oes para predicados por similaridade

cl´ausula WHERE Jun¸c˜oes por similaridade

cl´ausula FROM

Novas constru¸c˜oes para suportar a an´alise de agrupamento por similaridade

(105)

Suportando Consultas por Similaridade em SQL

Especificar consultas

Comando SELECT

Novas constru¸c˜oes para predicados por similaridade

Sele¸c˜oes e jun¸c˜oes por similaridade

cl´ausula WHERE

Jun¸c˜oes por similaridade

cl´ausula FROM

Novas constru¸c˜oes para suportar a an´alise de agrupamento por similaridade

(106)

Suportando Consultas por Similaridade em SQL

Especificar consultas

Comando SELECT

Novas constru¸c˜oes para predicados por similaridade

Sele¸c˜oes e jun¸c˜oes por similaridade

cl´ausula WHERE Jun¸c˜oes por similaridade

cl´ausula FROM

(107)

Especificar consultas

Comando SELECT

Novas constru¸c˜oes para predicados por similaridade

Sele¸c˜oes e jun¸c˜oes por similaridade

cl´ausula WHERE Jun¸c˜oes por similaridade

cl´ausula FROM

Novas constru¸c˜oes para suportar a an´alise de agrupamento por similaridade

(108)

Especificar consultas

Comando SELECT

Sintaxe b´asica para expressar sele¸c˜oes por similaridade: <atributo> NEAR <valor>

[STOP AFTER <k >] [RANGE <ξ>]

(109)

Especificar consultas

Exemplos de sele¸c˜oes por similaridade: PARTICULATE:

SELECT * FROM CidadeBR

WHERE Coordenada NEAR (-22.02 AS Latitude,

47.89 AS Longitude) RANGE 2; SELECT Nome FROM CidadeBR

WHERE Coordenada NEAR (SELECT Lat AS Latitude,

Longit AS Longitude

FROM CidadeBR

WHERE Nome = ‘S~ao Carlos-SP’)

(110)

Especificar consultas

Exemplos de sele¸c˜oes por similaridade: MONOLITHIC:

SELECT * FROM Paisagem

WHERE Foto NEAR ‘c:\img09.jpg’ STOP AFTER 5;

SELECT * FROM Paisagem

WHERE Foto NEAR (SELECT Foto FROM Paisagem

(111)

Suportando Consultas por Similaridade em SQL

Especificar consultas

Sintaxe b´asica para expressar jun¸c˜oes por similaridade na cl´ausula WHERE:

<tabela1>‘.’<atributo1> NEAR [ANY] <tabela2>‘.’<atributo2>

[STOP AFTER <k >] [RANGE <ξ>]

T1.atr1NEAR T2.atr2RANGE ξ

jun¸c˜ao por abrangˆencia

T1.atr1 NEAR T2.atr2 STOP AFTER k

jun¸c˜ao pelos k-vizinhos mais pr´oximos

T1.atr1 NEAR ANY T2.atr2 STOP AFTER k

jun¸c˜ao dos k-pares de vizinhos mais pr´oximos

(112)

Especificar consultas

Sintaxe b´asica para expressar jun¸c˜oes por similaridade na cl´ausula WHERE:

<tabela1>‘.’<atributo1> NEAR [ANY] <tabela2>‘.’<atributo2>

[STOP AFTER <k >] [RANGE <ξ>]

Tipos de constru¸c˜oes:

T1.atr1NEAR T2.atr2RANGE ξ

jun¸c˜ao por abrangˆencia

T1.atr1 NEAR T2.atr2 STOP AFTER k

jun¸c˜ao pelos k-vizinhos mais pr´oximos

T1.atr1 NEAR ANY T2.atr2 STOP AFTER k

jun¸c˜ao dos k-pares de vizinhos mais pr´oximos

(113)

Especificar consultas

Exemplo de jun¸c˜ao por similaridade:

São Paulo Rio de Janeiro Vitória Belo Horizonte ξ ξ ξ ξ 11 . 0 = ξ CidadeBR CapitalSERq<d(),ξ> L 2

(114)

Especificar consultas

Exemplo de jun¸c˜ao por similaridade:

São Paulo Rio de Janeiro Vitória Belo Horizonte ξ ξ ξ ξ 11 . 0 = ξ CidadeBR CapitalSERq<d(),ξ> L 2 SELECT *

FROM CapitalSE, CidadeBR WHERE CapitalSE.Coordenada NEAR

CidadeBR.Coordenada RANGE 0.11;

(115)

Especificar consultas

Sintaxe para expressar jun¸c˜oes por similaridade na cl´ausula FROM:

<tabela1> {RANGE|NEAREST|CLOSEST} JOIN <tabela2>

ON <nome atr complexo1> {NEAR|FAR}

<nome atr complexo2>

(116)

Especificar consultas

Sintaxe para expressar jun¸c˜oes por similaridade na cl´ausula FROM:

<tabela1> {RANGE|NEAREST|CLOSEST} JOIN <tabela2>

ON <nome atr complexo1> {NEAR|FAR}

<nome atr complexo2>

(117)

Suportando Consultas por Similaridade em SQL

Especificar consultas

Sintaxe para expressar opera¸c˜oes de agrupamento por similaridade: Como resultado do processo de detec¸c˜ao de agrupamentos

rela¸c˜ao de agrupamentos encontrados

Cluster

rela¸c˜ao que associa cada objeto do conjunto de dados ao objeto central de seu agrupamento

Clustering

Para mostrar os agrupamentos de cada instˆancia do atributoFoto da tabelaPaisagemresultantes do processoPam FP

SELECT * FROM Clustering(Pam FP);

Para mostrar todos os agrupamentos de um atributoFoto resultantes do processoPam FP

(118)

Especificar consultas

Sintaxe para expressar opera¸c˜oes de agrupamento por similaridade: Como resultado do processo de detec¸c˜ao de agrupamentos

rela¸c˜ao de agrupamentos encontrados

Cluster

rela¸c˜ao que associa cada objeto do conjunto de dados ao objeto central de seu agrupamento

Clustering

Exemplos:

Para mostrar os agrupamentos de cada instˆancia do atributoFoto da tabelaPaisagemresultantes do processoPam FP

SELECT * FROM Clustering(Pam FP);

Para mostrar todos os agrupamentos de um atributoFoto resultantes do processoPam FP

(119)

Suportando Consultas por Similaridade em SQL

Especificar consultas

Para parametrizar as opera¸c˜oes de agrupamento por similaridade ´e preciso definir:

1 A m´etrica que deve ser utilizada 2 O n´umero de agrupamentos k

3 Qual algoritmo de detec¸c˜ao de agrupamentos utilizar

SET CLUSTERING <nome processo> METHOD <nome m´etodo>, METRIC <nome m´etrica>, K <valor inteiro> ON <nome tabela>.<nome atributo>;

(120)

Especificar consultas

Para parametrizar as opera¸c˜oes de agrupamento por similaridade ´e preciso definir:

1 A m´etrica que deve ser utilizada 2 O n´umero de agrupamentos k

3 Qual algoritmo de detec¸c˜ao de agrupamentos utilizar

Sintaxe:

SET CLUSTERING <nome processo> METHOD <nome m´etodo>, METRIC <nome m´etrica>, K <valor inteiro> ON <nome tabela>.<nome atributo>;

(121)

Suportando Consultas por Similaridade em SQL

A sintaxe apresentada permite

entre si

com predicados tradicionais

Consultar por similaridade qualquer conjunto de objetos complexos para o qual seja poss´ıvel definir uma medida de similaridade

dom´ınio MONOLITHIC dom´ınio PARTICULATE

Otimizar consultas por similaridade

Especificar consultas sobre o resultado de processos de agrupamento por similaridade

(122)

Suportando Consultas por Similaridade em SQL

A sintaxe apresentada permite

Combinar predicados por similaridade

entre si

com predicados tradicionais

para o qual seja poss´ıvel definir uma medida de similaridade

dom´ınio MONOLITHIC dom´ınio PARTICULATE

Otimizar consultas por similaridade

Especificar consultas sobre o resultado de processos de agrupamento por similaridade

(123)

Suportando Consultas por Similaridade em SQL

A sintaxe apresentada permite

Combinar predicados por similaridade

entre si

com predicados tradicionais

Consultar por similaridade qualquer conjunto de objetos complexos para o qual seja poss´ıvel definir uma medida de similaridade

dom´ınio MONOLITHIC dom´ınio PARTICULATE

Especificar consultas sobre o resultado de processos de agrupamento por similaridade

(124)

Suportando Consultas por Similaridade em SQL

A sintaxe apresentada permite

Combinar predicados por similaridade

entre si

com predicados tradicionais

Consultar por similaridade qualquer conjunto de objetos complexos para o qual seja poss´ıvel definir uma medida de similaridade

dom´ınio MONOLITHIC dom´ınio PARTICULATE

Otimizar consultas por similaridade

por similaridade

(125)

Suportando Consultas por Similaridade em SQL

A sintaxe apresentada permite

Combinar predicados por similaridade

entre si

com predicados tradicionais

Consultar por similaridade qualquer conjunto de objetos complexos para o qual seja poss´ıvel definir uma medida de similaridade

dom´ınio MONOLITHIC dom´ınio PARTICULATE

Otimizar consultas por similaridade

Especificar consultas sobre o resultado de processos de agrupamento por similaridade

(126)

A sintaxe apresentada permite

Combinar predicados por similaridade

entre si

com predicados tradicionais

Consultar por similaridade qualquer conjunto de objetos complexos para o qual seja poss´ıvel definir uma medida de similaridade

dom´ınio MONOLITHIC dom´ınio PARTICULATE

Otimizar consultas por similaridade

Especificar consultas sobre o resultado de processos de agrupamento por similaridade

(127)

1 Introdu¸c˜ao

2 Conceitos Fundamentais

3 Suportando Consultas por Similaridade em SQL

4 Algoritmo PAM-SLIM

5 Prot´otipo SIREN

(128)

Algoritmo PAM-SLIM

Algoritmo desenvolvido: PAM-SLIM

k-medoid

Utilizando MAM para selecionar um sub-conjunto de objetos relevantes

(129)

Algoritmo PAM-SLIM

Algoritmo desenvolvido: PAM-SLIM

Melhora a eficiˆencia dos algoritmos de agrupamento baseados no k-medoid

(130)

Algoritmo desenvolvido: PAM-SLIM

Melhora a eficiˆencia dos algoritmos de agrupamento baseados no k-medoid

Utilizando MAM para selecionar um sub-conjunto de objetos relevantes

(131)

Algoritmo PAM-SLIM

Estrat´egia:

Realiza uma amostragem nos dados considerando certas caracter´ısticas dos MAM (Slim-tree)

representante para cada regi˜ao

Os centros dos n´os podem ser vistos como centros naturais das regi˜oes que eles representam

O centro de uma sub-´arvore pode ser considerado como centro de massa dos objetos armazenados nela

Apenas os objetos de um determinado n´ıvel podem ser considerados para a realiza¸c˜ao do agrupamento

(132)

Algoritmo PAM-SLIM

Estrat´egia:

Realiza uma amostragem nos dados considerando certas caracter´ısticas dos MAM (Slim-tree)

Divide o espa¸co de dados hierarquicamente em regi˜oes atribuindo um representante para cada regi˜ao

que eles representam

O centro de uma sub-´arvore pode ser considerado como centro de massa dos objetos armazenados nela

Apenas os objetos de um determinado n´ıvel podem ser considerados para a realiza¸c˜ao do agrupamento

(133)

Algoritmo PAM-SLIM

Estrat´egia:

Realiza uma amostragem nos dados considerando certas caracter´ısticas dos MAM (Slim-tree)

Divide o espa¸co de dados hierarquicamente em regi˜oes atribuindo um representante para cada regi˜ao

Os centros dos n´os podem ser vistos como centros naturais das regi˜oes que eles representam

massa dos objetos armazenados nela

Apenas os objetos de um determinado n´ıvel podem ser considerados para a realiza¸c˜ao do agrupamento

(134)

Algoritmo PAM-SLIM

Estrat´egia:

Realiza uma amostragem nos dados considerando certas caracter´ısticas dos MAM (Slim-tree)

Divide o espa¸co de dados hierarquicamente em regi˜oes atribuindo um representante para cada regi˜ao

Os centros dos n´os podem ser vistos como centros naturais das regi˜oes que eles representam

O centro de uma sub-´arvore pode ser considerado como centro de massa dos objetos armazenados nela

Apenas os objetos de um determinado n´ıvel podem ser considerados para a realiza¸c˜ao do agrupamento

(135)

Algoritmo PAM-SLIM

Estrat´egia:

Realiza uma amostragem nos dados considerando certas caracter´ısticas dos MAM (Slim-tree)

Divide o espa¸co de dados hierarquicamente em regi˜oes atribuindo um representante para cada regi˜ao

Os centros dos n´os podem ser vistos como centros naturais das regi˜oes que eles representam

O centro de uma sub-´arvore pode ser considerado como centro de massa dos objetos armazenados nela

(136)

Estrat´egia:

Realiza uma amostragem nos dados considerando certas caracter´ısticas dos MAM (Slim-tree)

Divide o espa¸co de dados hierarquicamente em regi˜oes atribuindo um representante para cada regi˜ao

Os centros dos n´os podem ser vistos como centros naturais das regi˜oes que eles representam

O centro de uma sub-´arvore pode ser considerado como centro de massa dos objetos armazenados nela

Apenas os objetos de um determinado n´ıvel podem ser considerados para a realiza¸c˜ao do agrupamento

(137)

Algoritmo PAM-SLIM

Estrat´egia:

Uma Slim-tree representa a divis˜ao do espa¸co de dados com uma granularidade que cresce da raiz para as folhas

Qual o n´ıvel da ´arvore possui informa¸c˜oes sobre a distribui¸c˜ao dos dados suficientes para gerar um agrupamento mais r´apido e com qualidade razo´avel?

(138)

Estrat´egia:

Uma Slim-tree representa a divis˜ao do espa¸co de dados com uma granularidade que cresce da raiz para as folhas

Quest˜ao:

Qual o n´ıvel da ´arvore possui informa¸c˜oes sobre a distribui¸c˜ao dos dados suficientes para gerar um agrupamento mais r´apido e com qualidade razo´avel?

(139)

s1 s1 s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s2 s2 s7 s7 s7 s7 s7 s7 s5 s5 s5 s5 s6 s6 s6 s6 s6 s6 s3 s3 s3 s3 s10 s10 s10 s10 s12 s12 s13 s13 s8 s8 s8 s8 s8 s8 s9 s9 s9 s9 s11 s11 s11 s11 s4 s4 ss1515 ss1414 s14 s14 nó raiz nó raiz s7 s7 s5 s5 s6 s6 s12 s12 s13 s13 s4 s4 s15 s15 nós índice nós índice nós folha nós folha

(140)

s1 s1 s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s2 s2 s7 s7 s7 s7 s7 s7 s5 s5 s5 s5 s6 s6 s6 s6 s6 s6 s3 s3 s3 s3 s10 s10 s10 s10 s12 s12 s13 s13 s8 s8 s8 s8 s8 s8 s9 s9 s9 s9 s11 s11 s11 s11 s4 s4 ss1515 ss1414 s14 s14 nó raiz nó raiz s7 s7 s5 s5 s6 s6 s12 s12 s13 s13 s4 s4 s15 s15 nós índice nós índice nós folha nós folha

(141)

s1 s1 s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s2 s2 s7 s7 s7 s7 s7 s7 s5 s5 s5 s5 s6 s6 s6 s6 s6 s6 s3 s3 s3 s3 s10 s10 s10 s10 s12 s12 s13 s13 s8 s8 s8 s8 s8 s8 s9 s9 s9 s9 s11 s11 s11 s11 s4 s4 ss1515 ss1414 s14 s14 nó raiz nó raiz s7 s7 s5 s5 s6 s6 s12 s12 s13 s13 s4 s4 s15 s15 nós índice nós índice nós folha nós folha

(142)

s1 s1 s1 s1 s1 s1 s1 s1 s2 s2 s2 s2 s2 s2 s7 s7 s7 s7 s7 s7 s5 s5 s5 s5 s6 s6 s6 s6 s6 s6 s3 s3 s3 s3 s10 s10 s10 s10 s12 s12 s13 s13 s8 s8 s8 s8 s8 s8 s9 s9 s9 s9 s11 s11 s11 s11 s4 s4 ss1515 ss1414 s14 s14 nó raiz nó raiz s7 s7 s5 s5 s6 s6 s12 s12 s13 s13 s4 s4 s15 s15 nós índice nós índice nós folha nós folha

(143)

Algoritmo PAM-SLIM

Algoritmo:

Escolha dos parˆametros para a constru¸c˜ao da ´arvore

Tamanho de p´agina

Pol´ıtica de escolha de sub-´arvore (ChooseSubtree)

Constru¸c˜ao da ´arvore

Inicializa¸c˜ao

Sele¸c˜ao do n´ıvel da ´arvore

Atribui¸c˜ao dos objetos do n´ıvel selecionado ao conjunto de objetos que ser˜ao utilizados no processo de agrupamento

Agrupamento

Aplica¸c˜ao do PAM sobre a amostra obtida no passo anterior Atribui¸c˜ao de cada objeto do conjunto de dados todo aos med´oides selecionados pelo PAM

(144)

Algoritmo PAM-SLIM

Algoritmo:

Pr´e-processamento

Escolha dos parˆametros para a constru¸c˜ao da ´arvore

Tamanho de p´agina

Pol´ıtica de escolha de sub-´arvore (ChooseSubtree)

Constru¸c˜ao da ´arvore

Sele¸c˜ao do n´ıvel da ´arvore

Atribui¸c˜ao dos objetos do n´ıvel selecionado ao conjunto de objetos que ser˜ao utilizados no processo de agrupamento

Agrupamento

Aplica¸c˜ao do PAM sobre a amostra obtida no passo anterior Atribui¸c˜ao de cada objeto do conjunto de dados todo aos med´oides selecionados pelo PAM

(145)

Algoritmo PAM-SLIM

Algoritmo:

Pr´e-processamento

Escolha dos parˆametros para a constru¸c˜ao da ´arvore

Tamanho de p´agina

Pol´ıtica de escolha de sub-´arvore (ChooseSubtree)

Constru¸c˜ao da ´arvore

Inicializa¸c˜ao

Sele¸c˜ao do n´ıvel da ´arvore

Atribui¸c˜ao dos objetos do n´ıvel selecionado ao conjunto de objetos que ser˜ao utilizados no processo de agrupamento

Aplica¸c˜ao do PAM sobre a amostra obtida no passo anterior Atribui¸c˜ao de cada objeto do conjunto de dados todo aos med´oides selecionados pelo PAM

(146)

Algoritmo:

Pr´e-processamento

Escolha dos parˆametros para a constru¸c˜ao da ´arvore

Tamanho de p´agina

Pol´ıtica de escolha de sub-´arvore (ChooseSubtree)

Constru¸c˜ao da ´arvore

Inicializa¸c˜ao

Sele¸c˜ao do n´ıvel da ´arvore

Atribui¸c˜ao dos objetos do n´ıvel selecionado ao conjunto de objetos que ser˜ao utilizados no processo de agrupamento

Agrupamento

Aplica¸c˜ao do PAM sobre a amostra obtida no passo anterior Atribui¸c˜ao de cada objeto do conjunto de dados todo aos med´oides selecionados pelo PAM

(147)

Resultados alcan¸cados

Algoritmos considerados

PAM, CLARA, CLARANS, PAM-SLIM-MD e PAM-SLIM-MO Medidas utilizadas

Qualidade

Distˆancia m´edia do agrupamento resultante

Eficiˆencia computacional

N´umero de c´alculos de distˆancia

Conjuntos de dados considerados Oito sint´eticos e um real

(148)

Resultados alcan¸cados

Mostra dos resultados obtidos

Tempo de execu¸c˜ao do PAM, CLARANS, CLARA e PAM-SLIM (horas:minutos:segundos)

Conjunto PAM CLARANS CLARA

PAM-SLIM-de dados MD MO

Sint10 5k 00:42:48 00:01:31 00:00:01 00:00:04 00:00:02 Sint10 10k 07:49:42 00:07:18 00:00:06 00:00:10 00:00:05 Sint10 15k 21:27:41 00:23:03 00:00:20 00:00:33 00:00:15 Sint10 20k 43:44:47 00:44:10 00:00:47 00:01:14 00:00:39

(149)

Resultados alcan¸cados

Mostra dos resultados obtidos

Tempo de execu¸c˜ao do PAM, CLARANS, CLARA e PAM-SLIM (horas:minutos:segundos)

Conjunto PAM CLARANS CLARA

PAM-SLIM-de dados MD MO

Sint10 5k 00:42:48 00:01:31 00:00:01 00:00:04 00:00:02 Sint10 10k 07:49:42 00:07:18 00:00:06 00:00:10 00:00:05 Sint10 15k 21:27:41 00:23:03 00:00:20 00:00:33 00:00:15 Sint10 20k 43:44:47 00:44:10 00:00:47 00:01:14 00:00:39

Referências

Documentos relacionados

ESTUDO DO EFEITO DE RAÇÕES NÃO CONVENCIONAIS PARA PEIXES, SOBRE A QUALIDADE DA AGUA DOS VIVEIROS.. Jorge José Henriques

and the Contentious History of Differentiation in International Law 2016 Journal of Environmental Law Inglês Austrália / Alemanha Duplo Movimento Teórico Meio Ambiente

Nesse sentido, interessa aqui, um dos aspectos centrais no processo de produção e reprodução do capital do qual decorre, se não todos, ao menos a grande parte

Samuel Tabosa de Castro.. Dedicamos esta proposta a todas as pessoas portadoras de deficiência atendidas pelas APAEs, por acreditarmos em seu potencial de aprendizagem e

É o movimento humano com determinado significado/sentido, que por sua vez, lhe é conferido pelo contexto histórico-cultural. O movimento que é tema da educação física é o que

O objetivo desta pesquisa foi investigar o papel da Educação Física na Educação Infantil, considerando-se os objetivos gerais, objetivos específicos, os conteúdos da

Entre em contato, terei prazer em trocar conhecimentos com você.. Entre em contato, terei prazer em trocar conhecimentos

Na sequência, distintos nanocompósitos híbridos foram preparados pelo método de polimerização química in situ na temperatura de 20 o C e diferentes razões molares de