Sei sulla pagina 1di 53

Outliers

Deteco de Anomalias
AULA
DATA MINING

Motivao/Caso unidimensional

Bill Gates ganha $500 milhes por ano. Ele


est numa sala com 9 professores, 4 que
recebem $40k/ano, 3 ganham $45k/ano, e 2
ganham $55k/ano. Qual a mdia de salrio
das pessoas na sala? Qual seria a mdia de
salrios se Gates no estivesse na sala?

Mdia com Gates:


$50,040,500

Mdia sem gates:


$45,000

Mdia e mediana
Qual a mdia e a mediana da
seguinte srie de nmeros:
3

12

40

Mdia 15
Mediana 14

14

18

15

17

Outlier
Em uma srie de nmeros,
um nmero que muito
MAIOR ou MENOR que o
resto dos nmeros
chamado de Outlier.

Uma abordagem
simples para encontrar
outliers encontrar os 5
nmeros que
sumarizam a srie

Encontrar os 5 nmeros que sumarizam a srie:


3

12

40

14

18

15

17

Passo 1: Ordene os nmeros do menor para o maior


3

12

14

15

17

18

40

14

15

17

18

40

15

17

18

40

Passo 2: Identificar a mediana


3

12

Passo 3: Identificar o menor e o maior nmero


3

12

14

Passo 4: Identificar a mediana entre o menor nmero e a mediana geral de toda a srie de
dados, e a mediana entre a mediana geral e o maior nmero na srie.
3

12

14

15

17

18

40

Cinco nmeros que sumarizam a srie


3 - Menor nmero no conjunto
9 - Mediana entre o menor nmero e a mediana geral
14 Mediana de toda a srie
17 Mediana entre o maior nmero e a mediana de toda a srie
40 Maior nmero da srie

Esses so os cinco nmeros que sumarizam a srie


3

12

14

15

17

18

40

Encontrar os 5 nmeros que sumarizam a srie abaixo:


42

16

16

38

18

50

24

24

24

29

27

41

29

36

33

18

36

37

33

38

37

41

24

42

27

45

45

50

Menor

24

Mediana

Mediana

Mediana

Maior

33

39.5

50

Encontrar os 5 nmeros que sumarizam a srie abaixo:


4

19

11

21

13

10

11

13

10

14

20

15

14

18

15

19

18

20

21

Menor = 2

Mediana = 5.5

Mediana = 10.5

Mediana = 16.5

Maior = 21

Esses 5 nmeros dividem os dado em quatro quartos.

12

14

15

17

18

1o

2o

3o

4o

Quartil

Quartil

Quartil

Quartil

40

O Quartil inferior (Q1) o segundo dos 5


nmeros que sumarizam os dados
25% de todos os nmeros da srie so menores que Q1
3

12

14

15

17

18

40

O Quartil superior (Q3) o quarto dos 5


nmeros que sumarizam os dados
25% de todos os nmeros da srie so maiores que Q3

Qual a porcentamgem de nmeros que est entre


Q1 e Q3?
50% de todos os nmeros esto entre Q1 e Q3
3

12

14

15

17

18

Esse intervalo chamado de Inter-Quartil (IQR)


O Tamanho do IQR a distncia entre Q1 e Q3

17 - 9 = 8

40

Para determinar se um nmero um outlier,


multiplique o IQR por 1.5
8 1.5 = 12
3

12

14

15

17

18

40

IQR = 8

Um outlier um nmero que seja cuja


diferena com com Q1 menor que 12 ou a
diferena com Q3 maior que 12

- 12

+ 12

12

14

15

17

18

40

IQR = 8

-3

39
OUTLIER

O que so 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.

Deteco de outliers - aplicaes

Deteco de fraudes

Deteco de intruses

Furaces, secas, enchentes, ondas de calor, incndios.

Sade pblica

Ataques em sistemas de computadores apresentam comportamento


diferente do comportamento usual dos sistemas.

Perturbaes em ecossistemas

o comportamento de compras de algum que rouba um carto de crdito


provavelmente diferente daquele do proprietrio do carto.

Casos de varola so considerados anomalias, que podem indicar um


problema com o processo de vacinao na cidade.

Medicina

Para um certo paciente, certos sintomas ou resultados de testes podem


indicar problemas de sade.

Tcnicas de deteco de anomalias

Enfoques estatsticos
Baseadas em distncia
Baseadas em densidade

Definio baseada em distncia


Um objeto O de um banco de dados BD
chamado de BD(p,d)-outlier se pelo menos
uma frao p (0 < p < 1) de objetos de BD
esto fora de uma vizinhana de raio d de O
p = 2/3
outlier

Processo no inteiramente automtico


Determinao dos parmetros p e d
Teste de validade: decidir se os objetos
identificados como outliers so realmente
outliers
Tarefa de um especialista humano

Problema

Entrada

Banco de dados D com N objetos


Um nmero p, 0 < p < 1
Um nmero d > 0
Dist = funo distncia considerada

Saida

Conjunto dos outliers de D, i.e., conjunto dos objetos O


tais que o nmero mximo de objetos dentro de uma dvizinhana de O M = N (1-p)

Algoritmo Simples

Determinar para cada objeto do BD sua vizinhana de


tamanho d
Determinar aqueles objetos cuja vizinhana tem um nmero
de elementos M
Estrutura de ndice multidimensional
Executa-se uma busca dentro de um raio d para cada
objeto p de BD
No momento em que M+1 objetos so encontrados, a
busca termina e O declarado no-outlier
Os objetos que sobram so declarados outliers

Problemas: construo da estrutura de ndice e o


tempo da busca, para cada objeto p do BD.

Algoritmo NL (Nested Loop)

Evita a construo da estrutura de ndice


multidimensional
Foco: diminuir o custo de acesso a disco
Complexidade = O(kN2)

k = nmero de atributos do BD
N = nmero de tuplas do BD

Idia do algoritmo NL
Bloco A

Bloco A

Bloco B
Bloco C
Bloco D
Banco de Dados

Buffer
Para cada objeto t de A
- Cont := 0
- Para cada objeto s de A
se dist(t,s) d ento Cont:= Cont + 1
- se Cont M etiqueta-se t como no-outlier

Algoritmo NL
Bloco A

Bloco A

Bloco B

Bloco
BlocoDC
B

Bloco C
Bloco D
Banco de Dados

Buffer
Para cada objeto t de A no etiquetado
- Cont := 0
- Para cada objeto s de B
se dist(t,s) d ento Cont:= Cont + 1
- se Cont > M etiqueta-se t como no-outlier

4 acessos ao banco de dados

Algoritmo NL
Bloco A

Bloco A

Bloco B

Bloco D

Bloco C
Bloco D
Banco de Dados

Buffer

Ao final do loop so 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.

Algoritmo NL
Bloco A

Bloco D

Bloco B

Bloco C

Bloco C
Bloco D
Banco de Dados

Buffer

Ao final do loop so 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.

Algoritmo NL
Bloco A

Bloco C

Bloco B

Bloco B

Bloco C
Bloco D
Banco de Dados

Buffer

Ao final do loop so 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.

Algoritmo NL
Bloco A

Bloco B

Bloco B

Bloco D

Bloco C
Bloco D
Banco de Dados

Buffer

Algoritmo pra D j apareceu no primeiro array


Total de acessos ao disco: 10
Cada acesso: um bloco varrido
Nmero de blocos = 4
Total de varridas = 10/4 = 2,5

Algoritmo NL - generalizao

Capacidade do buffer = K ( 0 < K < 1)


(=frao 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 nmero de blocos = 2/0.5 = 4

Algoritmo FindAllOutsM
baseado em clulas
Hipteses simplificadoras

Dados bi-dimensionais (nmero de atributos = 2).


Dados cabem na memria primria (tanto o BD
quanto as clulas que sero construidas a partir dele)

Generalizao

A idia pode ser generalizada para dados com


dimenses quaisquer.
Uma extenso deste algoritmo para bancos de dados
armazenados em disco : ver referncia

Estrutura de Clulas
Vizinhana de raio d
d

2 C2 = d2
C= d

2
L = tamanho da
clula =
d
22

As vizinhanas L1 e L2 de cada objeto


d
Vizinhana L2(Cx,y)
Clula Cx,y

Objeto (x,y)
Vizinhana L1(Cx,y)

Prop1: Mxima distncia entre objetos


de uma mesma clula

Objetos pertencentes a uma mesma clula tem


uma distncia mxima de L 2 = d 2 = d
22
2
L

L 2 = d/2

L
Logo : Toda d-vizinhana de um objeto em Cx,y contm a
clula inteira Cx,y

Prop2: Mxima distncia entre objetos de


uma clula e objetos de sua vizinhana L1

Se p est na clula Cx,y e q est em L1(Cx,y)


ento dist(p,q) d
d

Logo : Toda d-vizinhana de um objeto em Cx,y contm a


clula inteira Cx,y e sua vizinhana L1

Prop3: Mnima distncia entre objetos de


uma clula e objetos fora da vizinhana L2

= 3L = 3 d
22

= 1,06 d > d
Logo, se q um objeto dentro da d-vizinhana de um objeto
p de Cx,y ento dist(q,p) d portanto q deve estar dentro de L2 U L1 U Cx,y
Logo a d-vizinhana de p est contida em L2 U L1 U Cx,y

Condio para objetos de uma clula


no serem outliers

Se nmero de objetos em Cx,y > M ento


nenhum objeto de Cx,y um outlier

De fato: Propriedade 1

Toda d-vizinhana de um objeto p em Cx,y


contm toda a clula Cx,y
Portanto contm mais de M elementos

Portanto p no pode ser um outlier

Condio para objetos de uma clula


no serem outliers
Se o nmero de elementos em Cx,y junto com
sua vizinhana L1 maior do que M ento
nenhum objeto de Cx,y um outlier
De fato: Propriedade 2

Toda d-vizinhana de um objeto p em Cx,y


contm toda a clula Cx,y e sua vizinhana L1
Portanto contm mais de M elementos

Portanto p no pode ser um outlier

Condio para objetos de uma clula


serem outliers

Se o nmero de objetos em Cx,y U L1 U L2 M


ento TODO objeto p de Cx,y um outlier.

De fato:
a d-vizinhana de p est contida em Cx,y U L1 U
L2
Portanto, a d-vizinhana de qualquer objeto de Cx,y
no contm mais do que M objetos.
Portanto, os objetos de Cx,y so todos outliers.

Algoritmo FindAllOutsM
baseado em clulas
Hipteses simplificadoras

Dados bi-dimensionais (nmero de atributos = 2).


Dados cabem na memria primria (tanto o BD
quanto as clulas que sero construidas a partir dele)

Generalizao

A idia pode ser generalizada para dados com


dimenses quaisquer.
Uma extenso deste algoritmo para bancos de dados
armazenados em disco : ver referncia

Algoritmo FindAllOutsM
Seja m = nmero de clulas (calculado em
funo de d e do tamanho do BD )
1. Para cada q = 1, ..., m
Ct-q := 0
2.

% (vai contar o nmero de objetos em cada clula)

Para cada objeto p do BD

Associe a p uma clula Cq (a clula em que est inserido)


2.
Ct-q:= Ct-q + 1
Aps estes dois passos, todas as clulas esto construidas e sabemos o
nmero de elementos de cada clula.
1.

Algoritmo FindAllOutsM cont.


Os passos seguintes vo determinar quais objetos
p do BD so outliers, verificando-se somente:

O nmero de elementos de sua clula C


O nmero de elementos da vizinhana L1 de C
O nmero de elementos da vizinhana L2 de C

Algoritmo FindAllOutsM cont.


Idia
Clulas com mais de M elementos so
etiquetadas de Vermelho

Clulas na vizinhana L1 de uma clula vermelha


so etiquetadas de Azul.
Clulas coloridas no tem chance de conter
outliers

Algoritmo FindAllOutsM cont.


Idia (continuao)

Para cada clula branca, contamos o nmero de seus elementos e da vizinhana


L1
Se for > M, no tem chance nenhuma de conter outliers etiquetada de Azul
Para cada clula branca restante, calcula-se o nmero
de seus elementos junto com L1 e L2.
Se for M : com certeza todos os elementos desta clula
sero outliers.

Algoritmo FindAllOutsM cont.


Idia (continuao)
Para as clulas brancas onde a soma total de seus elementos
junto com as vizinhanas L1e L2 for > M,
faz-se a checagem das vizinhanas para cada objeto da clula.

Algoritmo FindAllOutsM cont.


3. Para cada q=1,...,m
se Ct-q > M

etiqueta clula Cq Vermelha


Todas as outras clulas so etiquetadas Branca

4. Para cada clula vermelha, verifica as clulas


em sua vizinhana que so brancas. Etiqueteas de Azul

Algoritmo FindAllOutsM cont.


5. Para cada clula branca Cw

Ct-w1:= Ct-w + i L1(Cw) Ct-i


Se Ct-w1 > M ento 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-vizinhana de p contm 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 no-outlier


Se Ct-p M, p etiquetado como outlier

Caso k-dimensional

Algoritmo FindAllOutsM baseado nas


propriedades 1, 2 e 3.
Estas propriedades do as condies suficientes
para que um objeto seja classificado como outlier ou
no-outlier.
Precisamos determinar

O valor de L (tamanho de cada clula)


A espessura da vizinhana L2

para que as propriedades 1, 2 e 3 continuem valendo.

Caso k-dimensional
No caso k =2
L = tamanho da clula = d
22
Diagonal de um hipercubo k-dimensional de lado
L = Lk
Quanto deve valer L em funo de d para que as
propriedades 1 e 2 continuem valendo ?
L= d
2k

Caso k-dimensional
No caso bi-dimensional a espessura da vizinhana L2
2
Mostre que para que a propriedade 3 continue valendo
(distncia mnima entre um objeto de Cx,y e um
objeto fora de L2 deve ser > d)
suficiente que a espessura da vizinhana L2 deve
ser o primeiro inteiro maior ou igual a 2k - 1

Complexidade

O(ck + N)

N = Tamanho do BD
k = dimenso do BD

Para dimenses pequenas ( 4), complexidade


razovel.
Fixada a dimenso do BD, a complexidade linear
em funo do tamanho do BD
A verso do algoritmo que trata o caso em que os
dados so armazenados em disco: cada pgina de
dados no acessada mais do que 3 vezes.

Complexidade

Resultados empricos mostram que

Algoritmos baseados em estruturas de clula so


superiores a outros algoritmos para k 4.
Para k > 4, algoritmo NL a melhor escolha.

Referncias
Anlise 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.

Potrebbero piacerti anche