Outliers Detecção de Anomalias

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

ANÁLISE DISCRIMINANTE
Solved Exercises 1. Finding the Peak. Let A= a1,…,an be a sequence of n numbers with the following property: there is p in {1,…,n} for which (i) the.
PERCEPTRON (CONTINUAÇÃO)
Teste de Software Parte 3.
Prof. Júlio Cesar Nievola
Método Hierárquico Aglomerativo de Clusterização Algoritmo CURE
Método K-medóides Algoritmos PAM e CLARA
Bulk Loading – Algoritmo AULA 12 - COMPLEMENTO Profa. Sandra de Amo GBC053 – BCC Sandra de Amo.
Método de Clusterização baseado em Densidade Algoritmo DBSCAN
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
Algoritmos para Projeção eliminando Duplicatas
Algoritmos de Junção – BNL e IndexNL AULA 16 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Seleção com Condições Gerais AULA 17 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Seleção e Projeção
Correção – Completude – Performance – Escalabilidade
Algoritmos para Operações de Conjuntos AULA 19 Profa. Sandra de Amo GBC053 – BCC
AULA 23 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Projeção e Operações de Conjuntos AULA 22 Profa. Sandra de Amo GBC053 – BCC
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
Mutação de Interface Interface Mutation: An Approach for Integration Testing Marcio E. Delamaro José C. Maldonado Aditya P. Mathur.
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Medida do Tempo de Execução de um Programa
Algoritmos para Operação de Junção Loops Aninhados
II. M o d e l o s d e C o n h e c i m e n t o
Meta - heurísticas Prof. Aurora
Algoritmos em Grafos.
Informática Teórica Engenharia da Computação
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Informática Teórica Engenharia da Computação
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Aprendizado Baseado em Instâncias – Algoritmo k-NN
Aula prática 6 Vetores e Matrizes
Exercícios PAA- Grafos
Sistemas Operacionais
Produto cartesiano Mais parâmetros dos dados Algoritmo
Treinamento do Microsoft® Access® 2010
Operações com frações (semana 9).
Aulas 9,10 Fábio Nakano.
Ordenação Externa de Arquivos – Um exemplo
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
INTRODUÇÃO ÁS BASES DE DADOS
Avaliação de Clusteres Parte II
Profª Daniela TLBD.
Algoritmos para Operação de Junção Loops Aninhados AULA 17 Profa. Sandra de Amo GBC053 – BCC.
Sistemas Operacionais
Sistemas Operacionais
BCC 101 – Matemática Discreta I
Aula 8. Classificação Não Supervisonada por Regiões
Laboratório de Programação
AULA 20 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Operações Binárias entre blocos SQL AULA 19 – Parte I Profa. Sandra de Amo GBC053 – BCC.
Como analisar um algoritmo
Marcus Sampaio DSC/UFCG. Marcus Sampaio DSC/UFCG O Problema Dados –Um banco de transações de compra –Cada transação é um conjunto de ítens comprados Encontrar.
UFPE-CIN SeminárioSeminário Erivan A. Andrade Jacques Robin Mineração de Exceções.
Números Primos – algoritmos e aplicações
Algoritmos de Junção – IndexNL e Sort Merge Join AULA 19 Profa. Sandra de Amo GBC053 – BCC.
Optimização - 1 Optimização de perguntas 1 Processamento de selecções 2 Processamento de junções 3 Manipulação algébrica.
Complexidade de Computação Katia Guimarães. Avaliando a Qualidade de um Algoritmo É preciso ter bem definido –O que é dado de entrada e –O que é esperado.
Exercícios de Fluxo em Redes
Analise de Algoritmos e Notação Assintótica
Algoritmos de Junção – Sort Merge Join e Hash Join
Linguagem de Programação I Parte IV
Algoritmos para Seleção AULA 23 Profa. Sandra de Amo GBC053 – BCC.
FEATURE SELECTION. Introdução  Estudo de metodologias relacionadas a seleção de atributos  Maldição da dimensionalidade  O número de atributos do desenvolvedor.
Comportamento Assintótico
Questionário (Editando) Autor: Skyup Informática.
Universidade de Passo Fundo Tecnologia em Sistemas de Informação TSI109- Fundamentos de Banco de Dados (Restrições de Integridade) Prof. Alexandre Tagliari.
Transcrição da apresentação:

Outliers Detecção de Anomalias AULA 18 DATA MINING

O que são outliers ? Um outlier é um fato que desvia tanto de outros fatos a ponto de gerar suspeitas de que foi gerado um mecanismo diferente. D.Hawkins: Identification of Outliers. Chapman and Hall, London, 1980.

Detecção de outliers - aplicações Detecção de fraudes o comportamento de compras de alguém que rouba um cartão de crédito é provavelmente diferente daquele do proprietário do cartão. Detecção de intrusões Ataques em sistemas de computadores apresentam comportamento diferente do comportamento usual dos sistemas. Perturbações em ecossistemas Furacões, secas, enchentes, ondas de calor, incêndios. Saúde pública Casos de varíola são considerados anomalias, que podem indicar um problema com o processo de vacinação na cidade. Medicina Para um certo paciente, certos sintomas ou resultados de testes podem indicar problemas de saúde.

Técnicas de detecção de anomalias Enfoques estatísticos Baseadas em distância Baseadas em densidade

Definição baseada em distância Um objeto O de um banco de dados BD é chamado de BD(p,d)-outlier se pelo menos uma fração p (0 < p < 1) de objetos de BD estão fora de uma vizinhança de raio d de O p = 2/3 outlier

Processo não inteiramente automático Determinação dos parâmetros p e d Teste de validade: decidir se os objetos identificados como outliers são realmente outliers Tarefa de um especialista humano

Problema Entrada Saida Banco de dados D com N objetos Um número p, 0 < p < 1 Um número d > 0 Dist = função distância considerada Saida Conjunto dos outliers de D, i.e., conjunto dos objetos O tais que o número máximo de objetos dentro de uma d-vizinhança de O é M = N (1-p)

Algoritmo Simples Determinar para cada objeto do BD sua vizinhança de tamanho d Determinar aqueles objetos cuja vizinhança tem um número de elementos ≤ M Estrutura de indice multidimensional Executa-se uma busca dentro de um raio d para cada objeto p de BD No momento em que M+1 objetos são encontrados, a busca termina e O é declarado não-outlier Os objetos que sobram são declarados outliers Problemas: construção da estrutura de indice e o tempo da busca, para cada objeto p do BD.

Algoritmo NL (Nested Loop) Evita a construção da estrutura de índice multidimensional Foco: diminuir o custo de acesso a disco Complexidade = O(kN2) k = número de atributos do BD N = número de tuplas do BD

Idéia do algoritmo NL Bloco A Bloco A Bloco B Bloco C Bloco D Buffer Para cada objeto t de A - Cont := 0 - Para cada objeto s de A se dist(t,s) ≤ d então Cont:= Cont + 1 - se Cont ≥ M etiqueta-se t como não-outlier Bloco D Banco de Dados

Algoritmo NL Bloco A Bloco A Bloco B Bloco D Bloco B Bloco C Bloco C Buffer Para cada objeto t de A não etiquetado - Cont := 0 - Para cada objeto s de B se dist(t,s) ≤ d então Cont:= Cont + 1 - se Cont > M etiqueta-se t como não-outlier Bloco D Banco de Dados 4 acessos ao banco de dados

Algoritmo NL Bloco A Bloco A Bloco B Bloco D Bloco C Buffer Ao final do loop são realizados 2 acessos ao banco de dados: 1 para carregar o bloco B no segundo array e outro para carregar o bloco C no segundo array No final do loop, tem-se o bloco C no segundo array. Bloco D Banco de Dados

Algoritmo NL Bloco D Bloco A Bloco B Bloco C Bloco C Bloco D Buffer Ao final do loop são realizados 2 acessos ao banco de dados: 1 para carregar o bloco A no segundo array e outro para carregar o bloco B no segundo array No final do loop, tem-se o bloco B no segundo array. Banco de Dados

Algoritmo NL Bloco C Bloco A Bloco B Bloco B Bloco C Bloco D Buffer Ao final do loop são realizados 2 acessos ao banco de dados: 1 para carregar o bloco A no segundo array e outro para carregar o bloco D no segundo array No final do loop, tem-se o bloco D no segundo array. Banco de Dados

Algoritmo NL Bloco B Bloco A Bloco B Bloco D Bloco C Buffer Algoritmo pára – D já apareceu no primeiro array Bloco D Banco de Dados Total de acessos ao disco: 10 Cada acesso: um bloco é varrido Número de blocos = 4 Total de varridas = 10/4 = 2,5

Algoritmo NL - generalização Capacidade do buffer = K ( 0 < K < 1) (=fração do BD) No exemplo K = 0,5 Divide-se o buffer em duas partes B1 e B2 Divide-se o banco de dados em 2K blocos (no exemplo número de blocos = 2/0.5 = 4

Algoritmo FindAllOutsM – baseado em células Hipóteses simplificadoras Dados bi-dimensionais (número de atributos = 2). Dados cabem na memória primária (tanto o BD quanto as células que serão construidas a partir dele) Generalização A idéia pode ser generalizada para dados com dimensões quaisquer. Uma extensão deste algoritmo para bancos de dados armazenados em disco : ver referência

Estrutura de Células √ 2 2 C2 = d2 C = d L = tamanho da célula = d 2√2 Vizinhança de raio d d 2 C2 = d2 C = d √ 2 L = tamanho da célula = d 2√2

As vizinhanças L1 e L2 de cada objeto Vizinhança L2(Cx,y) Célula Cx,y Objeto (x,y) Vizinhança L1(Cx,y)

Prop1: Máxima distância entre objetos de uma mesma célula Objetos pertencentes a uma mesma célula tem uma distância máxima de L √2 = d √2 = d 2√2 2 L L √2 = d/2 L Logo : Toda d-vizinhança de um objeto em Cx,y contém a célula inteira Cx,y

Prop2: Máxima distância entre objetos de uma célula e objetos de sua vizinhança L1 Se p está na célula Cx,y e q está em L1(Cx,y) então dist(p,q) ≤ d d Logo : Toda d-vizinhança de um objeto em Cx,y contém a célula inteira Cx,y e sua vizinhança L1

Prop3: Mínima distância entre objetos de uma célula e objetos fora da vizinhança L2 = 3L = 3 d 2√2 = 1,06 d > d Logo, se q é um objeto dentro da d-vizinhança de um objeto p de Cx,y então dist(q,p) ≤ d portanto q deve estar dentro de L2 U L1 U Cx,y Logo a d-vizinhança de p está contida em L2 U L1 U Cx,y

Condição para objetos de uma célula não serem outliers Se número de objetos em Cx,y > M então nenhum objeto de Cx,y é um outlier De fato: Propriedade 1 Toda d-vizinhança de um objeto p em Cx,y contém toda a célula Cx,y Portanto contém mais de M elementos Portanto p não pode ser um outlier

Condição para objetos de uma célula não serem outliers Se o número de elementos em Cx,y junto com sua vizinhança L1 é maior do que M então nenhum objeto de Cx,y é um outlier De fato: Propriedade 2 Toda d-vizinhança de um objeto p em Cx,y contém toda a célula Cx,y e sua vizinhança L1 Portanto contém mais de M elementos Portanto p não pode ser um outlier

Condição para objetos de uma célula serem outliers Se o número de objetos em Cx,y U L1 U L2 é ≤ M então TODO objeto p de Cx,y é um outlier. De fato: a d-vizinhança de p está contida em Cx,y U L1 U L2 Portanto, a d-vizinhança de qualquer objeto de Cx,y não contém mais do que M objetos. Portanto, os objetos de Cx,y são todos outliers.

Algoritmo FindAllOutsM – baseado em células Hipóteses simplificadoras Dados bi-dimensionais (número de atributos = 2). Dados cabem na memória primária (tanto o BD quanto as células que serão construidas a partir dele) Generalização A idéia pode ser generalizada para dados com dimensões quaisquer. Uma extensão deste algoritmo para bancos de dados armazenados em disco : ver referência

Algoritmo FindAllOutsM Seja m = número de células (calculado em função de d e do tamanho do BD ) Para cada q = 1, ..., m Ct-q := 0 % (vai contar o número de objetos em cada célula) Para cada objeto p do BD Associe a p uma célula Cq (a célula em que está inserido) Ct-q:= Ct-q + 1 Após estes dois passos, todas as células estão construidas e sabemos o número de elementos de cada célula.

Algoritmo FindAllOutsM – cont. Os passos seguintes vão determinar quais objetos p do BD são outliers, verificando-se somente: O número de elementos de sua célula C O número de elementos da vizinhança L1 de C O número de elementos da vizinhança L2 de C

Algoritmo FindAllOutsM – cont. Idéia Células com mais de M elementos são etiquetadas de Vermelho Células na vizinhança L1 de uma célula vermelha são etiquetadas de Azul. Células coloridas não tem chance de conter outliers

Algoritmo FindAllOutsM – cont. Idéia (continuação) Idéia Para cada célula branca, contamos o número de seus elementos e da vizinhança L1 Se for > M, não tem chance nenhuma de conter outliers – é etiquetada de Azul Para cada célula branca restante, calcula-se o número de seus elementos junto com L1 e L2. Se for ≤ M : com certeza todos os elementos desta célula serão outliers.

Algoritmo FindAllOutsM – cont. Idéia (continuação) Para as células brancas onde a soma total de seus elementos junto com as vizinhanças L1e L2 for > M, faz-se a checagem das vizinhanças para cada objeto da célula.

Algoritmo FindAllOutsM – cont. 3. Para cada q=1,...,m se Ct-q > M etiqueta célula Cq ‘Vermelha’ Todas as outras células são etiquetadas ‘Branca’ 4. Para cada célula vermelha, verifica as células em sua vizinhança que são brancas. Etiquete-as de Azul

Algoritmo FindAllOutsM – cont. 5. Para cada célula branca Cw Ct-w1:= Ct-w + Σi ɛ L1(Cw) Ct-i Se Ct-w1 > M então Cw é etiquetada de Azul Se Ct-w1 ≤ M Ct-w2:= Ct-w1 + Σi ɛ L2(Cw) Ct-i Se Ct-w2 ≤ M, marque todos os elementos de Cw como outliers Se Ct-w2 > M

Algoritmo FindAllOutsM – cont. Se Ct-w2 > M Para cada p ɛ Cw Ct-p = Ct-w1 (pois toda d-vizinhança de p contém Cw U L1) Para cada q ɛ L2(Cw) : Se dist(p,q) ≤ d : Ct-p = Ct-p + 1 Se Ct-p > M , p é etiquetado como “não-outlier” Se Ct-p ≤ M, p é etiquetado como “outlier”

Caso k-dimensional Algoritmo FindAllOutsM é baseado nas propriedades 1, 2 e 3. Estas propriedades dão as condições suficientes para que um objeto seja classificado como outlier ou não-outlier. Precisamos determinar O valor de L (tamanho de cada célula) A espessura da vizinhança L2 para que as propriedades 1, 2 e 3 continuem valendo.

Caso k-dimensional No caso k =2 L = tamanho da célula = d 2√2 Diagonal de um hipercubo k-dimensional de lado L = L√k Quanto deve valer L em função de d para que as propriedades 1 e 2 continuem valendo ? L = d 2√k

Caso k-dimensional No caso bi-dimensional a espessura da vizinhança L2 é 2 Mostre que para que a propriedade 3 continue valendo (distância mínima entre um objeto de Cx,y e um objeto fora de L2 deve ser > d) é suficiente que a espessura da vizinhança L2 deve ser o primeiro inteiro maior ou igual a 2√k - 1

Complexidade O(ck + N) N = Tamanho do BD k = dimensão do BD Para dimensões pequenas (≤ 4), complexidade é razoável. Fixada a dimensão do BD, a complexidade é linear em função do tamanho do BD A versão do algoritmo que trata o caso em que os dados são armazenados em disco: cada página de dados não é acessada mais do que 3 vezes.

Complexidade Resultados empíricos mostram que Algoritmos baseados em estruturas de célula são superiores a outros algoritmos para k≤ 4. Para k > 4, algoritmo NL é a melhor escolha.

Referências Análise comparativa de performance quando varia-se N, p, d, k Edwin M. Knorr, Raymond T. Ng: : Algorithms for Mining Distance-Based Outliers in Large Datasets. In Proc. 24th International Conference on Very Large Databases, VLDB 1998, New York, USA. D.Hawkins: Identification of Outliers. Chapman and Hall, London, 1980.