A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Outliers Detecção de Anomalias

Apresentações semelhantes


Apresentação em tema: "Outliers Detecção de Anomalias"— Transcrição da apresentação:

1 Outliers Detecção de Anomalias
AULA 18 DATA MINING

2 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.

3 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.

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

5 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

6 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

7 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)

8 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.

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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)

20 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√ 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

21 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

22 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

23 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

24 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

25 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.

26 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

27 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.

28 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

29 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

30 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.

31 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.

32 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

33 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

34 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”

35 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.

36 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

37 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

38 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.

39 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.

40 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.


Carregar ppt "Outliers Detecção de Anomalias"

Apresentações semelhantes


Anúncios Google