Você está na página 1de 100

Anlise de Logs: Abordagens Tradicionais e por Data Mining

SSI 2006 8o. Simpsio Segurana em Informtica (http://www.ssi.org.br/)


Rafael Santos
Novembro/2006 http://www.lac.inpe.br/~rafael.santos 1

Data Mining: Introduo

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

Data Mining

We are drowning in information, but starving for knowledge John Naisbett Crescimento explosivo na capacidade de gerar, coletar e armazenar dados:

Cientcos: imagens, sinais. Sociais: censos, pesquisas. Econmicos e comerciais: transaes bancrias e comerciais, compras, ligaes telefnicas, transaes com cdigo de barras e RFID. Sistemas: logs.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

Data Mining

Alguns exemplos de grandes volumes dados coletados:

Walmart: 20 milhes de transaes por dia (em 1994), banco de dados de 24 terabytes. INPE: 130 terabytes de dados de imagens.

SLAC (Stanford Linear Accelerator Center): 200 terabytes/ano, 10 megabytes/segundo por 10 anos. 2 petabytes = 2.097.152 gigabytes =440.000 DVDs = pilha de 4.4km de altura. Estimativa que o CERN precisar de armazenamento duas ordens de magnitude superior.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

Data Mining

Europes Very Long Baseline Interferometry (VLBI): 16 telescpios, cada um produz 1 gigabit/segundo de dados astronmicos em sesses de 25 dias = 4 terabytes. Wayback machine: 1 petabyte, 20 terabytes/ms (55 bilhes de pginas em maro de 2006). Yahoo!: 100 terabytes. AT&T: 93 terabytes. Amazon: 24 terabytes. Verizon Communications: 7 terabytes.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

Data Mining

Justificativas para este aumento:


Temos um crescimento correspondente na capacidade de processar e analisar estes dados?


Barateamento de componentes computacionais. Exigncias cientficas/sociais. Mudana de paradigmas!

Dados por si no valem nada!

Quem v todos estes dados? Algum? Anlise visual vivel? automatizvel?

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

Data Mining

Como identicar...

O que existe de interessante nestes dados? Como denir interessante? Informao, e no dados, valem dinheiro/tempo/conhecimento!

Padres (X acontece se...) Excees (isto diferente de... por causa de...) Tendncias (ao longo do tempo, Y deve acontecer...) Correlaes (se M acontece, N tambm deve acontecer)

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

Dados, Informaes e Conhecimento

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

Data Mining: definio

Parte do processo de descoberta de conhecimentos em bancos de dados (Knowledge Discovery in Databases, KDD). KDD: Processo geral de descoberta de conhecimentos teis previamente desconhecidos a partir de grandes bancos de dados (adaptado de Fayyad, 1996)

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

KDD

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

10

KDD

Processo de KDD:

1. Compreender o domnio da aplicao, entender as expectativas do usurio nal do processo. 2. Criar/selecionar uma coleo de dados para aplicao. 3. Pr-processar e limpar os dados (eliminar impurezas e dados irrelevantes). 4. Transformar (reduzir e reprojetar) os dados (encontrar atributos teis e interessantes). 5. Escolher a tarefa, mtodos, modelos, parmetros etc. do processo de minerao de dados e executar este processo. 6. Interpretar os resultados, iterar se necessrio. 7. Consolidar o conhecimento adquirido, resolver conitos, iterar se necessrio.
http://www.lac.inpe.br/~rafael.santos 11

Novembro/2006

Data Mining: definio


um dos passos do processo de KDD. Envolve:


O processo de KDD iterativo, portanto Data Mining tambm o . Data Mining no mgica: Garbage in, garbage out.
Novembro/2006 http://www.lac.inpe.br/~rafael.santos 12

Estatstica e Matemtica. Computao aplicada (inteligncia articial, reconhecimento de padres, aprendizado por mquina). Visualizao de dados, computao grca. Bancos de dados. Sistemas distribudos, algoritmos paralelos, alta performance.

Data Mining: Tarefas

Classicao:

Regresso ou Predio:

Aprendizado de uma funo que mapeia um dado em uma de vrias classes conhecidas. Aprendizado de uma funo que mapeia um dado em um ou mais valores reais. Identicao de grupos de dados onde os dados tem caractersticas semelhantes com os do mesmo grupo e onde os grupos tenham caractersticas diferentes entre si.

Agrupamento (clustering):

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

13

Data Mining: Tarefas

Sumarizao:

Deteco de desvios ou outliers:

Descrio do que caracteriza um conjunto de dados (ex. conjunto de regras). Identicao de dados que deveriam seguir um padro mas no o fazem. Identicao de fenmenos que apresentam co-ocorrncia (ex. cesta de compras).

Identicao de regras de associao:

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

14

Data Mining

Alguns casos de sucesso:


Amazon.com: melhoria da customizao da interface com o usurio (melhoria de vendas por indicao), eliminao de fraudes. U.S. Census Bureau: anlise de dados espaciais de ensino pblico para determinar polticas para melhoria na educao. Columbia Interactive/Columbia University: Anlise de visitas a sites, coletando trilhas de usurios (como usam o site, que pginas so mais atraentes para usurios, quando usurios deixam o site) para melhorar interatividade e planejar contedo. Verizon Wireless: reduo de churn de 2 para menos de 1.5 por cento: de 34.6 milhes de usurios, aproximadamente 170.000 foram retidos.
http://www.lac.inpe.br/~rafael.santos 15

Novembro/2006

Data Mining

Alguns casos de sucesso:

argonauten360o: Consultoria para empresa de telecomunicaes que prov servios call-by-call de telefonia mvel. Estudou volume de trfego minuto a minuto e identicou possveis faixas de uso onde melhor competitividade podia ser alcanada. IMS America: Empresa de pesquisa de mercado farmacutico do mundo, mantm um banco de dados de 1.5 bilhes de prescries de 600.000 mdicos, usadas em 33.000 farmcias para identificar mudana de padro em prescries. Harrahs Entertainment Inc.: Dobrou lucros usando informaes de cartes de jogadores freqentes, identicando grupo de jogadores que gastavam pouco mas geravam muito lucro, criou promoes diferenciadas.
http://www.lac.inpe.br/~rafael.santos 16

Novembro/2006

Data Mining

Alguns casos de fracasso:


Existem poucos casos de fracasso publicados.


Novembro/2006 http://www.lac.inpe.br/~rafael.santos

Gazelle.com (caso simulado): Tentativa de segmentar e caracterizar clientes; custo de DM excedia lucro possvel. Drinking diet drinks leads to obesity, de Piero Bonissone: confuso entre causa e conseqncia. Total Information Awareness: Projeto do departamento de defesa dos EUA para detetar atividade terrorista: no tecnicamente um fracasso, mas causou forte reao pblica. Caso apcrifo: data mining de cartes de delidade achou padro especco de consumo de mulheres divorciadas (muitas divorciadas no indicavam este status nos cadastros).

17

Data Mining: Tcnicas

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

18

Conceitos

Colunas

Entradas, campos, registros, etc.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

19

Pr-Processamento

Etapa crucial de minerao de dados! No caso particular de anlise de logs, indispensvel, custosa e problemtica! Potencialmente deve ser feita e refeita juntamente com a aplicao das diversas tcnicas. Algumas tcnicas:

Transformao dos atributos Enriquecimento dos dados Reduo do conjunto de atributos Reduo de dados

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

20

Pr-Processamento: Transformao

Manipulao dos tipos dos atributos.

Converses, normalizaes, etc.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

21

Pr-Processamento: Transformao

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

22

Pr-Processamento

Enriquecimento: alterao/aumento do nmero de atributos.


Reduo do conjunto de atributos.


Exemplo: IPs podem ser mapeados para regies geogrficas. Documentos em um log de httpd podem ser verificados para informaes adicionais. Informaes auxiliares podem ser integradas, logs podem ser relacionados.

Atributos irrelevantes podem ser retirados ou transformados. Exemplo: diferentes representaes de tempo. Pode ser muito complexo determinar que atributos so relevantes ou no (usar conhecimento do domnio da aplicao!)

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

23

Pr-Processamento

Reduo do conjunto de dados.


Remover dados redundantes ou irrelevantes. Como determinar o que irrelevante? Uma alternativa quando temos muitas entradas com atributos incompletos ou pouco confiveis. Pode facilitar aplicao de alguns algoritmos: segmentao do problema e dos dados relacionados.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

24

Alguns conceitos

Espao de atributos:

Para cada evento ou entrada em um log temos medidas (numricas ou no) de atributos. Estas medidas podem ser visualizadas como pontos em grficos N-dimensionais, onde os eixos so os atributos. Visualizao um artifcio, usaremos o conceito de proximidade como semelhana.

Atributo 2

Atributo 1

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

25

Tcnicas: Classificao

Predio de uma categoria ou classe discreta.


Como entrada, temos muitos dados para os quais as classes so conhecidas. Criamos um classicador ou modelo (fase de treinamento). Como entrada em uma segunda fase, temos vrios dados para os quais as classes no so conhecidas. Usamos o classicador para indicar classes para estes dados. Assumimos que dados desconhecidos prximos de dados conhecidos tero a mesma classe dos dados conhecidos.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

26

Tcnicas: Classificao

?
Atributo 2 Atributo 2

?
Atributo 1 Atributo 1

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

27

Tcnicas: Classificao

Atributo 1

Atributo 2

Atributo 2

Atributo 1

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

28

Tcnicas: Classificao

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

29

Tcnicas: Associao

Descoberta de elementos que ocorrem (ou no!) em comum em colees de dados.


Dados de entrada: estruturas com associaes (ex. lista de artigos comprados, pequenas sries temporais multivariadas, etc.). Algoritmo identica a existncia de elementos em comum e suporte para esta existncia.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

30

Tcnicas: Associao

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

31

Tcnicas: Agrupamentos (Clustering)

Identicao de grupos semelhantes.


Dados em um grupo devem apresentar alguma semelhana entre si. Dados em um grupo devem ser diferentes de dados em outros grupos. Dados de entrada: no precisam ter indicaes de classe. Algoritmo identica determinado nmero de grupos de dados e calcula a associao dos dados de entrada aos grupos de sada. Adicionalmente estatsticas e outras informaes sobre os grupos podem ser criadas.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

32

Tcnicas: Agrupamentos (Clustering)

Atributo 2

Atributo 1

Atributo 2

Atributo 1

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

33

Tcnicas: Predio ou Regresso

Predio de uma categoria ou classe com valores contnuos.

Como entrada, temos muitos dados para os quais as classes (valores contnuos) so conhecidas. Com isso criamos um classicador ou funo de regresso. Como entrada em uma segunda fase, temos vrios dados para os quais os valores das classes no so conhecidos. Usaremos a funo de regresso para identificar a classe. Alguns pontos em comum com classicao (treinamento, criao de modelo, uso, vericao e avaliao).

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

34

Tcnicas: Predio ou Regresso

Salrio = 141.65 * idade + 955.95 (erro 29.3%) Poupana = 130.8 * idade + 1056.85 (erro 82.6%) Lazer = -24.53 * idade + 1909.07 (erro 88.3%)

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

35

Tcnicas: Predio ou Regresso

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

36

Visualizao

Etapa importante: apresentao grfica de resultados. Pode ser usada tambm como ferramenta no prprocessamento Permite visualizao de estruturas dos dados (separabilidade, distribuies). Tpico interessante, porm complexo (dimenses, tipos de atributos, etc.)

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

37

Visualizao

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

38

Visualizao
Prosection Views (Daniel Keim)

Chernoff Faces

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

39

Visualizao

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

40

Visualizao

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

41

Data Mining: Alguns Algoritmos e Implementaes

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

42

rvores de Deciso

Um dos tipos de algoritmo de classificao supervisionada mais popular.


A partir de dados rotulados de entrada, cria rvores que permitem tomar decises usando atributos. Divises na rvore so criadas considerando a minimizao da entropia dos dados em um galho. Criao recursiva.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

43

rvores de Deciso

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

44

rvores de Deciso

Cnodies:

Classificao: testes sobre uma base de dados que indica a classe a partir dos valores dos atributos de entrada.

Para determinar que ns sero criados temos que ter instncias com classes denidas. Devemos saber tambm qual o atributo a ser usado como classe.

Semelhana com sistemas especialistas.

Ns em uma rvore de deciso: testes sobre os atributos. Folhas: determinao das classes.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

45

Vizinhos Mais Prximos

Mtodo simples de classicao supervisionada.

Algoritmo bsico: para cada amostra com classe desconhecida, comparamos a distncia dela para cada amostra com classe conhecida. Usamos a classe da amostra mais prxima. Cria hipersuperfcies de separao.
Novembro/2006 http://www.lac.inpe.br/~rafael.santos 46

Bastante intuitivo: se uma amostra de classe desconhecida estiver bem prxima de uma de classe conhecida, as classes devem ser as mesmas. No criamos prottipos ou assinaturas para as classes conhecidas: usamos as amostras com classes conhecidas como prottipos.

Vizinhos Mais Prximos


Extenso mais aplicvel: K-Vizinhos mais prximos. Vantagens:


Desvantagens:

Permite boa classicao independentemente do modelo de distribuio dos dados. No sofre de problemas de criao de assinaturas causados por exemplo, por nmero pequeno de amostras. Resultado difcil de sumarizar (ex. comparado com regras ou rvores de deciso). Sujeito inuncia de outliers. Problemas para comparao de valores no-numricos.
http://www.lac.inpe.br/~rafael.santos 47

Novembro/2006

Vizinhos Mais Prximos

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

48

Redes Neurais Artificiais - MLP

Inspirada no funcionamento (simplificado) de neurnios naturais. Multi-Layer Perceptrons (MLPs):


Neurnios processam valores de entrada e apresentam um de sada (classe). Vrios neurnios articiais conectados com vrias camadasscompem uma rede neural.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

49

Redes Neurais Artificiais - MLP Esquema bsico de um neurnio articial (perceptron):


Cada entrada xn tem um peso multiplicativo associado wn. Podemos ter uma

entrada adicional (b ou bias) O neurnio calcula combinao linear das entradas e pesos e aplica um limiar (funo T) que determina a sada do neurnio. O treinamento feito atravs da apresentao de entradas e resultados conhecidos (classicao supervisionada) e ajuste dos pesos com algoritmos especcos.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

50

Redes Neurais Artificiais - MLP

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

51

Redes Neurais Artificiais - MLP

Vantagens:

Desvantagens:

Capacidade de separar bem classes no linearmente separveis (com mltiplas camadas). Existem vrias implementaes, muitos parmetros para ajuste fino. Complexidade do mecanismo de classicao (caixa preta) e interpretao dos resultados. Treinamento pode ser complexo (computacionalmente caro), denio da arquitetura tambm. Existem vrias implementaes, muitos parmetros para ajuste fino.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

52

Clustering K-Mdias

Algoritmo simples, iterativo, para agrupamento (nosupervisionado).


Entrada: instncias, medida de distncia, nmero de grupos (K). Sada: centrides dos grupos, pertinncia das instncias aos grupos, mtricas. O algoritmo tenta minimizar o erro quadrtico calculado entre as instncias e os centrides dos grupos.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

53

Clustering K-Mdias

Algoritmo:

1. Inicializamos os centrides dos K grupos. 2. Marcamos cada instncia como pertencente ao grupo (centride) mais prximo. 3. Recalculamos os centrides dos grupos considerando as pertinncias. 4. Recalculamos o erro quadrtico total. 5. Vericamos as condies de parada e repetimos a partir do passo 2.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

54

Clustering K-Mdias

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

55

Clustering K-Mdias

Problemas:

Somente dados numricos! Mltiplas iteraes com todos os dados: problemas de performance. Inicializao: como escolher centrides iniciais (impacto na convergncia). Converge para um mnimo local: pode ser bom o suciente. Singularidades: grupos sem instncias relacionadas.

Apresentao dos dados: ordem de apresentao de instncias pode alterar resultados.


No podemos calcular seus centrides. Podemos resolver com a eliminao de grupos vazios (complexo, caro?)

Escolha de K? Existe um K' melhor do que o K?

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

56

Clustering Hierrquico

Algoritmos hierrquicos de agrupamento formam uma srie de parties dos dados onde cada partio contm um nmero menor de grupos do que a partio anterior. Passos do algoritmo:

1. Considere todas as instncias como grupos. Os centros destes grupos so os valores da prpria instncia. 2. Crie uma matriz de distncias que indique a distncia de cada grupo a cada outro grupo. 3. Localize, nesta matriz, os dois grupos com menor distncia entre eles, e efetue a unio destes grupos. 4. Se ainda houver dois ou mais grupos, volte ao passo 2.
http://www.lac.inpe.br/~rafael.santos 57

Novembro/2006

Clustering Hierrquico

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

58

Clustering Hierrquico

Resultado: dendograma.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

59

Regras de Associao

Regras sobre relaes e co-ocorrncias em bases de dados:


Se X ocorre na base de dados, ento Y tambm ocorre (com alguma relao a X). Co-ocorrncia: se X, Y e Z ocorrem na base de dados ento A tambm ocorre (com alguma relao X, Y e Z).

Muito usado para vericar associaes em tabelas de transaes (carrinhos de compra)

X, Y e Z so os antecedentes da associao; A o conseqente.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

60

Regras de Associao

Regras devem ter mtricas que indiquem usabilidade: Signicncia em uma associao: ela pode existir mas ser muito rara em uma base de dados.

Conana em uma associao: o antecedente pode ocorrer vrias vezes na base de dados mas nem sempre com o mesmo conseqente associado.

Suporte X Y : nmero de casos que contm X e Y dividido pelo nmero total de registros.

Conana X Y : nmero de registros que contm X e Y dividido pelo nmero de registros que contm X.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

61

Regras de Associao

Algoritmo APriori Um dos mais conhecidos, base de muitos outros. Denies necessrias:

K-itemsets so conjuntos com K itens que podem aparecer na base de dados. Suporte mnimo o valor mnimo do suporte para que um K-itemset seja considerado. Conana mnima um limite para ltragem das associaes descobertas pelo algoritmo.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

62

Regras de Associao

Passos (simplicados) do algoritmo Apriori

1. Dados de entrada: coleo de dados associados, suporte mnimo, conana mnima. 2. Considerar K = 1 para criao de K-itemsets. 3. Criar uma tabela de K-itemsets com suporte acima do suporte mnimo. 4. Criar com os itemsets ltrados um conjunto de candidatos a (K+1) itemsets. 5. Usar propriedades do Apriori para eliminar itemsets infreqentes. 6. Repetir desde o passo 3 at que o conjunto gerado seja vazio. 7. Listar regras de associao (com permutaes) e aplicar limite de conana.
http://www.lac.inpe.br/~rafael.santos 63

Novembro/2006

Regras de Associao

Vantagens:

Desvantagens:

Um dos poucos algoritmos de processamento simblico, aplicvel para deteco de co-ocorrncias. Algoritmo simples, vrias implementaes. Tempo de processamento e uso intensivo de memria. Difcil decidir valores dos parmetros. No pode usar diretamente valores numricos. Freqentemente requer anlise das regras encontradas!

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

64

Estudo de caso: Classificao de Sesses em Servidores Web

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

65

Estudo de Caso: Classificao de Sesses

Logs em servidores HTTP foram coletados em um servidor normal e em um servidor em um Honeypot.

O objetivo da anlise vericar se possvel construir um mecanismo que separe o mais corretamente possvel sesses correspondentes a um acesso normal de sesses correspondentes a ataques ou tentativas de invaso. Pr-processamento j foi feito (sesses j foram reconstitudas). Usaremos tcnicas de classificao supervisionada.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

66

Estudo de Caso: Classificao de Sesses

Atributos usados:

Temos 1549 dados com classe normal e 2531 com classe attack.

session_time: Durao da sesso em segundos; cli_packets: Nmero de pacotes enviados pelo cliente; cli_bytes: Quantidade de bytes enviados pelo cliente; srv_packets: Nmero de pacotes enviados pelo servidor; srv_bytes: Quantidade de bytes enviados pelo servidor; class: Se a sesso foi pr-classicada como suspeita ou no. A classe pode ter dois valores: normal ou attack.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

67

Estudo de Caso: Classificao de Sesses

Arquivo .arff (formato do software Weka)


@relation logs @attribute cli_packets_num numeric @attribute srv_packets_num numeric @attribute cli_bytes numeric @attribute srv_bytes numeric @attribute session_time numeric @attribute class {normal,attack} @data 44,2,63432,591,460.92804,normal 2,2,2626,599,13.671535,normal 5,0,5162,0,0.514798,normal 35,40,5861,11882,89.268859,normal 108,128,22749,38478,894.124939,normal ..... 5,5,744,418,6.139626,attack 5,5,742,418,1.935146,attack 5,5,738,418,2.671999,attack 5,5,756,418,2.565365,attack 6,6,783,457,5.65425,attack
Novembro/2006 http://www.lac.inpe.br/~rafael.santos 68

Estudo de Caso: Classificao de Sesses

Como o comportamento destes dados?

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

69

Estudo de Caso: Classificao de Sesses

Classificao com uma rvore de deciso (bastante simplificada)

Correctly Classified Instances Incorrectly Classified Instances a 1513 45 b <-- classified as 36 | a = normal 2486 | b = attack

3999 81

98.0147 % 1.9853 %

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

70

Estudo de Caso: Classificao de Sesses

Classificao com uma rvore de deciso (bastante simplificada)

srv_packets_num <= 4 | cli_bytes <= 92: attack (142.0/5.0) | cli_bytes > 92 | | srv_bytes <= 120: attack (32.0/7.0) | | srv_bytes > 120: normal (1038.0/33.0) srv_packets_num > 4 | srv_bytes <= 1800: attack (2320.0/16.0) | srv_bytes > 1800 | | srv_bytes <= 2980 | | | srv_packets_num <= 13: normal (36.0/1.0) | | | srv_packets_num > 13: attack (25.0/4.0) | | srv_bytes > 2980: normal (487.0/10.0)

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

71

Estudo de Caso: Classificao de Sesses

Classificao com uma rvore de deciso (mais detalhada)

a b <-classified as 1516 33 | a = normal 36 2495 | b = attack Correctly Classified Instances 4011 Incorrectly Classified Instances 69
Novembro/2006

98.3088 % 1.6912 %
72

http://www.lac.inpe.br/~rafael.santos

Estudo de Caso: Classificao de Sesses

Explorao: quais atributos podem ser desconsiderados?

Usamos somente cli_bytes, srv_bytes e class.

Correctly Classified Instances Incorrectly Classified Instances

3954 126

96.9118 % 3.0882 %

a b <-- classified as 1482 67 | a = normal 59 2472 | b = attack

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

73

Classificao com uma rede neural MLP (arquitetura 5x5x2)


Correctly Classified Instances Incorrectly Classified Instances a b <-- classified as 1452 97 | a = normal 139 2392 | b = attack 3844 236

Estudo de Caso: Classificao de Sesses


94.2157 % 5.7843 %

1 minuto

Classificao com uma rede neural MLP (arquitetura 5x15x2)


Correctly Classified Instances Incorrectly Classified Instances a b <-- classified as 1504 45 | a = normal 155 2376 | b = attack 3880 200 95.098 4.902 % %

2 minutos

Classificao com uma rede neural MLP (arquitetura 5x50x2)


Correctly Classified Instances Incorrectly Classified Instances a b <-- classified as 1502 47 | a = normal 157 2374 | b = attack 3876 204 95 5

6 minutos

% %

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

74

Classificao com K-vizinhos mais prximos (K=1)


Correctly Classified Instances Incorrectly Classified Instances a b <-- classified as 1521 28 | a = normal 26 2505 | b = attack 4026 54

Estudo de Caso: Classificao de Sesses


98.6765 % 1.3235 %

Classificao com K-vizinhos mais prximos (K=5)


Correctly Classified Instances Incorrectly Classified Instances a b <-- classified as 1508 41 | a = normal 47 2484 | b = attack 3992 88 97.8431 % 2.1569 %

Classificao com K-vizinhos mais prximos (K=25)


Correctly Classified Instances Incorrectly Classified Instances a b <-- classified as 1515 34 | a = normal 68 2463 | b = attack
Novembro/2006

3978 102

97.5 2.5

% %

http://www.lac.inpe.br/~rafael.santos

75

Estudo de caso: Co-ocorrncia de termos de busca

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

76

Estudo de caso: Co-ocorrncia de termos


America On-Line: provedor de acesso. Tem aplicao com interface prpria e mecanismo de busca integrado. Funcionrios da empresa fizeram uma pesquisa:

Termos usados por mais de 650.000 usurios foram coletados entre maro e maio de 2006, totalizando quase onze milhes de entradas. Os usurios estavam anonimizados, isto , somente nmeros aparentemente seqenciais mas fora de um padro foram usados para identicar quem fez as buscas. Por um descuido, a base de dados (um arquivo de texto de aproximadamente 2.5 gigabytes, descompactado) acabou sendo disponibilizada temporariamente na Internet
http://www.lac.inpe.br/~rafael.santos 77

Novembro/2006

Estudo de caso: Co-ocorrncia de termos

Apesar da anonimizao dos usurios, padres de comportamento interessantes (e at mesmo bizarros!) puderam ser observados. possvel observar termos co-ocorrentes freqentes nesta base de dados?

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

78

Estudo de caso: Co-ocorrncia de termos

Pr-processamento:

Anonimizao total: nem mesmo o nmero de usurio ser usado. Todas as buscas de cada usurio foram consideradas. Procuramos a existncia de ao menos uma das palavras-chave nas buscas efetuadas. Palavras-chave: car, family, travel, loan, school, debt, mortgage, college, savings, marriage, wedding, children, work, money, dog, party, beer, pizza, wine e liquor. Somente 65.000 usurios foram considerados.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

79

Estudo de caso: Co-ocorrncia de termos


@RELATION queries @attribute car {sim, no} @attribute family {sim, no} @attribute travel {sim, no} @attribute loan {sim, no} @attribute school {sim, no} @attribute debt {sim, no} @attribute mortgage {sim, no} @attribute college {sim, no} @attribute savings {sim, no} @attribute marriage {sim, no} @attribute wedding {sim, no} @attribute children {sim, no} @attribute work {sim, no} @attribute money {sim, no} @attribute dog {sim, no} @attribute party {sim, no} @attribute beer {sim, no} @attribute pizza {sim, no} @attribute wine {sim, no} @attribute liquor {sim, no} @DATA ? , ? , ? , ? , ? , ? ,sim,sim,sim, ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , sim, ? , ? , ? ,sim, ? , ? ,sim, ? ,sim, ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? ,sim, ? , ? , ? , ? , ? , Novembro/2006

? ? ? ? ? ? ?

, ? , , ? , , ? , , ? , , ? , , ? , ,sim,

? ? ? ? ? ? ?

, ? ,sim, ? , , ? , ? , ? , , ? , ? , ? , , ? , ? , ? , , ? , ? ,sim, , ? , ? , ? , ,sim, ? ,sim,

? ? ? ? ? ? ?

, ? , , ? , , ? , , ? , , ? , , ? , ,sim,

? ? ? ? ? ? ?

, , , , , , ,

? ? ? ? ? ? ? 80

http://www.lac.inpe.br/~rafael.santos

Estudo de caso: Co-ocorrncia de termos

Algoritmo APriori foi aplicado.

Best rules found: 1. college=sim 2518 ==> school=sim 793 conf:(0.31) 2. family=sim 1325 ==> school=sim 399 conf:(0.3) 3. car=sim 2524 ==> school=sim 519 conf:(0.21) 4. school=sim 3955 ==> college=sim 793 conf:(0.2) 5. school=sim 3955 ==> car=sim 519 conf:(0.13) 6. school=sim 3955 ==> family=sim 399 conf:(0.1)

Uma interpretao simples da primeira regra :

interessante ver que as regras no so reexivas:

Se um usurio procurou por college tambm procurou por school. 2518 usurios procuraram por college e 793 por school, e a conana nesta regra 0.31. A regra 4 mostra quantas pessoas procuraram por school e tambm por college e a conana diferente (j que o antecedente e o conseqente trocaram de posio).
http://www.lac.inpe.br/~rafael.santos 81

Novembro/2006

Estudo de caso: Co-ocorrncia de termos

Apesar do algoritmo ser muito bom para encontrar itemsets ele pode ficar inaplicvel se usarmos muito mais palavraschave e/ou nmero de usurios. Busca por palavras-chave (tanto no exemplo quanto em mecanismos de busca) ineficiente:

Questo da semntica (faculdade, universidade). Representao no-hierrquica (lcool, bebida, cachaa)

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

82

Estudo de caso: E-mails da Enron

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

83

Estudo de caso: E-mails da Enron

Enron era uma companhia americana de energia...


Foi falncia em 2001, depois de um escndalo causado por declaraes contbeis fraudulentas (perdas no declaradas).

Considerada uma das maiores empresas do mundo (faturamento de 111 bilhes de dlares em 2000). Eleita por seis anos consecutivos como Companhia mais inovadora dos EUA pela revista Fortune. Altamente envolvida com financiamento de candidados polticos.

Preo das aes caiu de Us$ 90.00 para Us$ 0.30. Causou enorme tumulto social!

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

84

Estudo de caso: E-mails da Enron

Em Outubro de 2004 a Comisso Federal de Regulamentao de Energia disponibilizou mensagens de email de executivos da Enron como parte da investigao.

Usaremos como exemplo a verso raw.


Diferentes verses com diferentes caractersticas foram disponibilizadas. Houve algum esforo de proteo dos inocentes.

Aprox. 400 megabytes (.tar.gz) ~1.8 gigabytes (.tar) ~520.000 mensagens, organizadas por recipientes (153) e por folders.
http://www.lac.inpe.br/~rafael.santos 85

Novembro/2006

Estudo de caso: E-mails da Enron


Message-ID: <32213030.1075858183820.JavaMail.evans@thyme> Date: Wed, 25 Apr 2001 04:59:00 -0700 (PDT) From: mheffner@carrfut.com To: mike.maggi@enron.com Subject: margin financing Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-From: MHeffner@carrfut.com X-To: mike.maggi@enron.com X-cc: X-bcc: X-Folder: \Michael_Maggi_Jun2001\Notes Folders\All documents X-Origin: Maggi-M X-FileName: mmaggi.nsf we maybe slow, but we eventually get there,, as you know Carr has been trying to get approval from within and from Enron finance people to create margin financing to execute & clear Nymex (and e-nymex too) business for Enron. Well we are finally there.. We would love the opportunity to renew our realtionship of executing and/or clearing for you again.
Novembro/2006 http://www.lac.inpe.br/~rafael.santos 86

Estudo de caso: E-mails da Enron


O que queremos encontrar? Existe algum padro no uso de palavras-chave nas mensagens em funo do tempo? Que informaes e conhecimento podemos esperar de um processo automatizado?

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

87

Estudo de caso: E-mails da Enron

Existe algum padro no uso de palavras-chave nas mensagens em funo do tempo? Pr-Processamento:

Ler todas as mensagens, descartando folders. Armazenar nome do recipiente, ms/ano, ocorrncia das palavraschave business, investigation, sell, president, government, corruption, millions, bankruptcy, profit, scandal. Descartar entradas que no contm nenhuma das palavras-chave.

Das 517431 mensagens selecionamos 86396

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

88

@relation enron @attribute recipiente {stepenovitch-j, steffes-j, lavorato-j, parks-j, martin-t, hodge-j, lay-k, shapiro-r, scholtes-d, haedicke-m, keavey-p, corman-s, farmer-d, pereira-s, salisbury-h, gilbertsmith-d, quigley-d, ... , staab-t} @attribute data {Jun2002, Jun2001, Jun2000, Dec2043, Jan2000, Jan2001, Apr2002, Jan2002, Apr2001, Apr2000, Oct0001, May2024, Nov2000, Jan0002, Aug1999, Oct2002, Nov0001, Mar1997, Sep1997, Mar1999, Sep1998, Nov2012, Jul0001, Oct1997, Dec2000, Dec2001, Dec2002, Jul2001, Jul2000, May1986, Dec0001, Feb0002, Apr1986, Feb2007, Mar2002, Sep2002, Feb2004, Feb2002, Feb2001, Feb2000, Mar0002, Sep0001, ... Dec2020, Feb1999, Jan2044, May2000, May2001, May0001, Dec1979, Jan1997, Jan1998, Aug0001, Jun0001, Nov1998, Aug2001, Aug2000} @attribute business {Y,N} @attribute investigation {Y,N} @attribute sell {Y,N} @attribute president {Y,N} @attribute government {Y,N} @attribute Bush {Y,N} @attribute Clinton {Y,N} @attribute corruption {Y,N} @attribute millions {Y,N} @attribute bankruptcy {Y,N} @attribute profit {Y,N} @attribute illegal {Y,N} @attribute scandal {Y,N} @data wolfe-j,Feb2001,?,?,?,?,?,?,Y,?,?,?,?,?,? wolfe-j,Feb2001,?,?,?,Y,Y,?,?,?,?,?,?,?,? wolfe-j,Feb2001,Y,?,?,Y,?,?,?,?,?,?,?,?,? ... Novembro/2006 http://www.lac.inpe.br/~rafael.santos 89

Arquivo no formato .arff (para o software Weka):

Estudo de caso: E-mails da Enron

Estudo de caso: E-mails da Enron


1. recipiente=lay-k millions=Y bankruptcy=Y profit=Y 1021 ==> data=Jan2002 1021 conf:(1) 2. recipiente=lay-k data=Jan2002 bankruptcy=Y profit=Y 1022 ==> millions=Y 1021 conf:(1) 3. recipiente=lay-k millions=Y bankruptcy=Y 1122 ==> data=Jan2002 1120 conf:(1) 4. recipiente=lay-k bankruptcy=Y profit=Y 1024 ==> data=Jan2002 1022 conf:(1) ... 15. recipiente=lay-k data=Jan2002 profit=Y 1029 ==> millions=Y bankruptcy=Y 1021 conf:(0.99) 16. data=Jan2002 millions=Y profit=Y 1069 ==> bankruptcy=Y 1056 conf:(0.99) ... 20. sell=Y government=Y millions=Y 914 ==> business=Y 885 conf:(0.97) 21. data=Jan2002 millions=Y bankruptcy=Y profit=Y 1056 ==> recipiente=lay-k 1021 conf:(0.97) 22. business=Y sell=Y government=Y Bush=Y 1049 ==> president=Y 1008 conf:(0.96) 23. data=Jan2002 millions=Y profit=Y 1069 ==> recipiente=lay-k 1026 conf:(0.96) 24. recipiente=lay-k millions=Y 1177 ==> data=Jan2002 1128 conf:(0.96) ... 27. sell=Y president=Y millions=Y 1011 ==> business=Y 964 conf:(0.95) 28. recipiente=lay-k millions=Y 1177 ==> bankruptcy=Y 1122 conf:(0.95) 29. sell=Y president=Y government=Y profit=Y 1086 ==> business=Y 1034 conf:(0.95) ... 33. sell=Y president=Y government=Y bankruptcy=Y 914 ==> business=Y 868 conf:(0.95) ... 37. sell=Y president=Y government=Y Bush=Y 1065 ==> business=Y 1008 conf:(0.95) 38. president=Y government=Y millions=Y 966 ==> business=Y 914 conf:(0.95)
Novembro/2006 http://www.lac.inpe.br/~rafael.santos 90

Estudo de caso: E-mails da Enron


54. president=Y government=Y profit=Y 1325 ==> business=Y 1210 conf:(0.91) 55. president=Y government=Y bankruptcy=Y 1135 ==> business=Y 1035 conf:(0.91) 72. sell=Y president=Y bankruptcy=Y 1256 ==> business=Y 1126 conf:(0.9) 73. Bush=Y profit=Y 1154 ==> president=Y 1031 conf:(0.89) 78. recipiente=beck-s 2741 ==> business=Y 2438 conf:(0.89) 79. sell=Y president=Y Bush=Y 1367 ==> business=Y 1215 conf:(0.89) 110. recipiente=mcconnell-m 1192 ==> business=Y 996 conf:(0.84) 131. investigation=Y president=Y 1444 ==> business=Y 1150 conf:(0.8) 172. recipiente=jones-t 2262 ==> business=Y 1644 conf:(0.73) 197. data=Jul2000 1996 ==> business=Y 1366 conf:(0.68) 358. government=Y 11845 ==> business=Y 5499 conf:(0.46) 372. recipiente=shapiro-r 2188 ==> government=Y 973 conf:(0.44) 470. Bush=Y 5559 ==> president=Y government=Y 1754 conf:(0.32) 681. Bush=Y 5559 ==> government=Y profit=Y 865 conf:(0.16) 705. profit=Y 7099 ==> president=Y Bush=Y 1031 conf:(0.15) 777. government=Y 11845 ==> business=Y president=Y profit=Y 1210 conf:(0.1) 778. government=Y 11845 ==> business=Y bankruptcy=Y 1209 conf:(0.1) 779. government=Y 11845 ==> data=Oct2001 1200 conf:(0.1) 780. president=Y 17943 ==> business=Y profit=Y 1813 conf:(0.1) 781. business=Y president=Y 9274 ==> Bush=Y profit=Y 936 conf:(0.1) 782. government=Y 11845 ==> recipiente=dasovich-j business=Y 1187 conf:(0.1)
Novembro/2006 http://www.lac.inpe.br/~rafael.santos 91

Estudo de caso: E-mails da Enron

Podemos observar que...


Algumas regras so aparentemente bvias...


Vrias regras aparecem em combinaes ligeiramente diferentes. Muitas regras foram geradas por uma campanha de e-mails dirigida a um dos diretores da empresa. president e Bush. business e alguns destinatrios.

Foi solicitado um nmero grande de regras, mas tivemos que praticamente miner-las!

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

92

Estudo de caso: E-mails da Enron

Problemas com minerao de dados de e-mails:


Ainda problemas com semntica e hierarquia de conceitos... Problemas srios com falta de normalizao (ex. Jun2001 e Jun0001). Que outras buscas genricas podiam ser feitas?

Contedo no textual pode ser relevante, mas minerao multimdia difcil! Formatos alternativos de texto podem tambm complicar.

Aprecie a diferena entre uma busca com grep ou via SQL.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

93

Estudo de caso: E-mails da Enron

Referncias:

Questes a considerar:

O conjunto de dados (~400M!) pode ser copiado de http://www.cs.cmu.edu/~enron/ (cortesia de William Cohen) Ron Bekkerman da UMASS fez uma caracterizao da distribuio de mensagens em folders. Datasets parciais, comentrios e resultados podem ser vistos em http://www.cs.umass.edu/~ronb/enron_dataset.html Jitesh Shetty e Jafar Adibi (USC) tem informaes para enriquecimento em http://www.isi.edu/~adibi/Enron/Enron.htm O conjunto original tem problemas de integridade! Privacidade!
http://www.lac.inpe.br/~rafael.santos 94

Novembro/2006

Concluses

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

95

Problemas potenciais com Data Mining


O problema pode no ser corretamente interpretado. Padres encontrados podem no ser interessantes. Padres encontrados podem no ser explicveis. Padres podem ser incorretos (modelos construdos de dados inadequados), explicando o fenmeno medido de forma incorreta. Pr-processamento dos dados pode ser feito de forma incorreta, por exemplo, com relaes redundantes ou rudos, seleo de dados inadequada, etc.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

96

Problemas potenciais com Data Mining

Dados podem no ser conveis ou ser pouco representativos das classes/categorias/fenmenos existentes. Modelos, algoritmos, parmetros podem ser estimados incorretamente! Modelos, algoritmos, parmetros podem no representar a realidade adequadamente (ex. undertting e overtting). Lembrando: Data Mining no mgica!: Garbage in, Garbage out.

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

97

Problemas potenciais com Data Mining

O formato e tipo de dados coletados em logs extremamente complexo.


Pr-processamento crucial e deve ser feito por um especialista no domnio. Minerao de contedo (texto) extremamente complexa.

Como adequar para uso com algoritmos mais poderosos? Considere somente timestamp: como verificar periodicidade ou freqncia?

Considere a semntica!

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

98

Problema maior...

Privacidade. Cada vez mais dados coletados, sem conhecimento ou consentimento de usurios. Mesmo com anonimizao possvel inferir comportamentos de grupos! Problemas legais e sociais em potencial!

Novembro/2006

http://www.lac.inpe.br/~rafael.santos

99

Obrigado! Perguntas?
Novembro/2006 http://www.lac.inpe.br/~rafael.santos 100

Você também pode gostar