Upload
phamhuong
View
216
Download
0
Embed Size (px)
Citation preview
PGC201 - Mineracao de Dados
Marcelo K. Albertini
11 de Agosto de 2015
Organizacao da disciplina
Prof. Marcelo Keese Albertini
Sala: Bloco 1B - sala 1B150
Horario de atendimento: Sexta-feira 14h-17h ou comagendamento
E-mail: [email protected]
Site da disciplina:http://www.facom.ufu.br/~albertini/md
2/46
Atividades previstas
Dois trabalhos - 20 pontos estudo da area implementacao e aplicacao escrita de artigo
Tres provas - 80 pontos Prova 1 - 25 pontos - 15/09 - Conceitos basicos, classificacao
e agrupamento Prova 2 - 25 pontos - 26/10 - Mineracao de itens, sequencias e
grafos Prova 3 - 30 pontos - 07/12 - Sistemas de recomendacao e
mineracao de grandes quantidades de dados
3/46
Materiais de estudo
Data mining and analysis de Zaki e Meira (2010)
Mining massive datasets de Rajaraman, Leskovec e Ullman(2014)
Machine Learning de T. Mitchell. (1997)
Artigos cientıficos
4/46
Exemplos de areas com aplicacoes de Mineracao de Dados
Motor de busca Web: ≈ 40 bilhoes de documentos
Comercio: base de transacoes Wal-Mart de 24TB (1997)
Astronomia: Very Long Baseline Inteferometry com 16telescopios gera 1Gb/s
E-comercio: sistema de recomendacao da Amazon, Netflix
Genoma humano ≈ 3 bilhoes de pares de base
Robotica: carro autonomos
Redes sociais: Facebook, NSA
Biologia computacional: projeto de remedios
Redes de ligacoes telefonicas: Uberlandia > 1 milhao por dia
5/46
Quais perguntas podemos fazer sobre os dados?
Exemplo: dados sobre o ingresso de estudantes na UFU
Perguntas: Existe ligacao entre a nota do ENEM dos ingressantes e
situacao socio-economica? Correlacao, informacao mutua, comparacao de similaridade
6/46
Quais perguntas podemos fazer sobre os dados?
Exemplo: dados sobre o ingresso de estudantes na UFU
Perguntas: Existe ligacao entre a nota do ENEM dos ingressantes e
situacao socio-economica? Correlacao, informacao mutua, comparacao de similaridade
Quais grupos de estudantes tem mesmo desempenhoacademico?
Agrupamento, co-ocorrencia, associacao
6/46
Quais perguntas podemos fazer sobre os dados?
Exemplo: dados sobre o ingresso de estudantes na UFU
Perguntas: Existe ligacao entre a nota do ENEM dos ingressantes e
situacao socio-economica? Correlacao, informacao mutua, comparacao de similaridade
Quais grupos de estudantes tem mesmo desempenhoacademico?
Agrupamento, co-ocorrencia, associacao
Existem estudantes de destaque? Categorizacao, classificacao, deteccao de anomalias
6/46
Quais perguntas podemos fazer sobre os dados?
Exemplo: dados sobre o ingresso de estudantes na UFU
Perguntas: Existe ligacao entre a nota do ENEM dos ingressantes e
situacao socio-economica? Correlacao, informacao mutua, comparacao de similaridade
Quais grupos de estudantes tem mesmo desempenhoacademico?
Agrupamento, co-ocorrencia, associacao
Existem estudantes de destaque? Categorizacao, classificacao, deteccao de anomalias
Podemos sugerir ao estudante mudar de curso de acordo comseu perfil?
Recomendacao, predicao
6/46
Top 10 algorithms in data mining (2008) da IEEE
Computer Society
Classificacao: C4.5 (1), CART (10), kNN (7),Naive Bayes (7)
Aprendizado estatıstico: SVM (3), EM (5)
Bagging e Boosting: AdaBoost (7)
Agrupamento: K -means (2), BIRCH, DBSCAN (TTA 2014)
Analise de associacoes: Apriori (4), FP-Tree
Mineracao de links: PageRank (6) e HITS
Padroes sequenciais: GSP, PrefixSpan
Mineracao de Grafos: gSpan
Conjuntos Aproximados (Rough Sets): Finding reduct
7/46
Culturas em Mineracao de Dados
Banco de Dados: foco em grandes quantidades de dados Para um DBA, mineracao de dados e forma extrema de
consultas que geram muitos dados O resultado e a resposta a query
8/46
Culturas em Mineracao de Dados
Banco de Dados: foco em grandes quantidades de dados Para um DBA, mineracao de dados e forma extrema de
consultas que geram muitos dados O resultado e a resposta a query
Inteligencia Artificial/Aprendizado de maquina: foco emmetodos complexos e (mudando) poucos dados
Dedicam-se ao metodo de aprendizado O resultado e composto por modelos, funcoes ou outro
resultado de aprendizado
8/46
Culturas em Mineracao de Dados
Banco de Dados: foco em grandes quantidades de dados Para um DBA, mineracao de dados e forma extrema de
consultas que geram muitos dados O resultado e a resposta a query
Inteligencia Artificial/Aprendizado de maquina: foco emmetodos complexos e (mudando) poucos dados
Dedicam-se ao metodo de aprendizado O resultado e composto por modelos, funcoes ou outro
resultado de aprendizado
Estatıstica: foco em modelos Para estatısticos, mineracao de dados e usar tecnicas de
inferencia O resultado resume-se ao parametros inferidos
8/46
Mineracao de dados e aprendizado de maquina
Desafios em mineracao de dados
Atender a consultas e encontrar informacoes relevantes
Processar grandes quantidades de dados em tempo habil
Encontrar padroes interessantes automaticamente
Mineracao de dados
Boa parte de mineracao de dados hoje e realizada com algoritmosde aprendizado de maquina.
9/46
O que e Aprendizado de Maquina?
Mineracao de dados para automatizar automacao
Fazer computadores programarem eles mesmos
A escrita de software e um gargalo para tratar dadosdisponıveis
Permitir os dados fazerem o trabalho sozinhos
Programacao tradicional
Dados + Programa → computador → saıda
Aprendizado de Maquina
Dados + saıda → computador → programa
10/46
Metafora: agricultura
Mineracao de dados nao e
magica, e como agricultura
sementes = algoritmos
nutrientes = dados
agricultor = voce
plantas e frutos =programas, informacoes econhecimento
11/46
Funcionamento de algoritmos de mineracao de dados
Existem milhares de algoritmos de mineracao de dados
Algoritmos de mineracao costumam ter tres componentes: Representacao Avaliacao Otimizacao
12/46
Representacao: “a linguagem”
Qual linguagem usar?
Arvores de decisao
Conjuntos de regras
Programas logicos (Prolog)
Aprendizado Baseado em Instancias
Modelos baseados em grafos (Redes Bayesianas/Markovianas)
Representacao de dependencias
Redes neurais – “competicao” biologica
Maquinas de vetores suporte (instancias + redes neurais)
Mistura de modelos – “a melhor decisao e aquela maisvotada”
13/46
Avaliacao: medidas
Esta funcionando?Qual e a qualidade do obtido ate agora?
Suporte e confianca (frequencia de repeticao do padrao)
14/46
Avaliacao: medidas
Esta funcionando?Qual e a qualidade do obtido ate agora?
Suporte e confianca (frequencia de repeticao do padrao)
Acuracia – quantos acertos das tentativas?
14/46
Avaliacao: medidas
Esta funcionando?Qual e a qualidade do obtido ate agora?
Suporte e confianca (frequencia de repeticao do padrao)
Acuracia – quantos acertos das tentativas?
Precisao e recuperacao – ORI
14/46
Avaliacao: medidas
Esta funcionando?Qual e a qualidade do obtido ate agora?
Suporte e confianca (frequencia de repeticao do padrao)
Acuracia – quantos acertos das tentativas?
Precisao e recuperacao – ORI
Erro quadratico – erro em quantidade numerica
14/46
Avaliacao: medidas
Esta funcionando?Qual e a qualidade do obtido ate agora?
Suporte e confianca (frequencia de repeticao do padrao)
Acuracia – quantos acertos das tentativas?
Precisao e recuperacao – ORI
Erro quadratico – erro em quantidade numerica
Verossimilhanca – modelo obtido e provavel?
14/46
Avaliacao: medidas
Esta funcionando?Qual e a qualidade do obtido ate agora?
Suporte e confianca (frequencia de repeticao do padrao)
Acuracia – quantos acertos das tentativas?
Precisao e recuperacao – ORI
Erro quadratico – erro em quantidade numerica
Verossimilhanca – modelo obtido e provavel?
Probabilidade a posteriori – verossimilhanca + conhecimentoprevio
14/46
Avaliacao: medidas
Esta funcionando?Qual e a qualidade do obtido ate agora?
Suporte e confianca (frequencia de repeticao do padrao)
Acuracia – quantos acertos das tentativas?
Precisao e recuperacao – ORI
Erro quadratico – erro em quantidade numerica
Verossimilhanca – modelo obtido e provavel?
Probabilidade a posteriori – verossimilhanca + conhecimentoprevio
Custo/Utilidade – na pratica, custos diferentes para acertos eerros
14/46
Avaliacao: medidas
Esta funcionando?Qual e a qualidade do obtido ate agora?
Suporte e confianca (frequencia de repeticao do padrao)
Acuracia – quantos acertos das tentativas?
Precisao e recuperacao – ORI
Erro quadratico – erro em quantidade numerica
Verossimilhanca – modelo obtido e provavel?
Probabilidade a posteriori – verossimilhanca + conhecimentoprevio
Custo/Utilidade – na pratica, custos diferentes para acertos eerros
Margem – SVM: encontrar limite entre decisoes
14/46
Avaliacao: medidas
Esta funcionando?Qual e a qualidade do obtido ate agora?
Suporte e confianca (frequencia de repeticao do padrao)
Acuracia – quantos acertos das tentativas?
Precisao e recuperacao – ORI
Erro quadratico – erro em quantidade numerica
Verossimilhanca – modelo obtido e provavel?
Probabilidade a posteriori – verossimilhanca + conhecimentoprevio
Custo/Utilidade – na pratica, custos diferentes para acertos eerros
Margem – SVM: encontrar limite entre decisoes
Entropia – quantidade de informacao
14/46
Avaliacao: medidas
Esta funcionando?Qual e a qualidade do obtido ate agora?
Suporte e confianca (frequencia de repeticao do padrao)
Acuracia – quantos acertos das tentativas?
Precisao e recuperacao – ORI
Erro quadratico – erro em quantidade numerica
Verossimilhanca – modelo obtido e provavel?
Probabilidade a posteriori – verossimilhanca + conhecimentoprevio
Custo/Utilidade – na pratica, custos diferentes para acertos eerros
Margem – SVM: encontrar limite entre decisoes
Entropia – quantidade de informacao
Divergencia Kullback-Liebler – aumento relativo de informacao
14/46
Otimizacao
Como usar a linguagem para fazer funcionar?
Formas de busca de solucoes. Depende da linguagem e daavaliacao.
Otimizacao combinatorial Exemplo: busca greedy (gananciosa)
Otimizacao convexa Gradiente descendente – “qual e a melhor direcao”
Otimizacao com restricoes Programacao linear
15/46
Mineracao de dados e o processo de descoberta de
conhecimento
1. Entender o domınio, conhecimento a priori e objetivos Exemplo: projeto de novos remedios Duas pessoas: especialista no domınio e especialista em
mineracao
2. Coletar, integrar, selecionar, limpar e pre-processar dados Consumo da maior parte do tempo
3. Criacao de modelos de predicao, classificacao, agrupamentoou associacao
4. Interpretacao de resultados – caixa preta vs. branca
5. Consolidacao e uso do conhecimento descoberto
6. Iterar para melhorar aprendizado de maquina
16/46
Mineracao de dados na pratica: APIs
1. Busca de padroes (reducao de dimensionalidade)
Primeira opcao PCA, ouN > 10000 Isomap, Spectral embedding, LLEN < 10000 Kernel approximation
2. Identificacao de categorias Com dados rotulados (classificacao) Sem dados rotulados (agrupamento)
3. Predicao de quantidades (regressao)
4. Predicao de estruturas e sequencias Modelos baseados em grafos (HMM, Conditional Random
Fields) Modelos sequenciais: Perceptron estruturado
scikit-learn (Python) -http://scikit-learn.org/stable/tutorial/machine_learning_map/
Dlib C++ Library - http://dlib.net/ml_guide.svg
17/46
Princıpio de Bonferroni
Risco em mineracao de dados: torturar os dados ate elesconfessarem!
Princıpio de Bonferroni: descoberta de “padroes” semsignificado
Deve-se considerar um padrao como relevante se ele forsignificamente diferente do aleatorio
Experimentos de percepcao extra-sensorial de Rhine comcartas
18/46
Exercıcio mental
Objetivo: detectar terroristas que se encontram em hoteis
Metodo: listar pessoas que se hospedaram no mesmo hotelno mesmo dia pelo menos duas vezes
Detalhes: 109 pessoas em vigilancia durante 1000 dias Cada pessoa se hospeda em hotel por 10 dias Hoteis tem capacidade para 100 pessoas, ao todo, 105 hoteis
Pergunta: se todos sao aleatorios, quantos sao suspeitos?
19/46
Exercıcio mental: contas
Probabilidade de p e q estarem no mesmo hotel no dia d e10−9
P(p no hotel a) = 1/100, P(q no hotel b) = 1/100,P(a = b) = 1/(105)
Probabilidade p e q estarem no mesmo hotel nos dias d1 e d2e 10−18
Numero de pares de dias e(
10002
)
≈ 5× 105
Chance de p e q estarem no mesmo hotel em dois diasdurante o perıodo de 1000 dias
5× 105 × 10−18
Pares de pessoas ≈ 5× 1017
Numero esperado de pares de pessoas:5× 1017 × 5× 10−13 = 250000
Numero de suspeitos e 250000
Quer dizer que duas pessoas ficarem no mesmo dia erelativamente comum
20/46
Mineracao de grandes quantidades de dados: tempo
Sendo o tempo de um acesso a memoria principal 10−7s (10ns)
Tempo de acesso a memoria secundaria e 100 a 1000 vezesmais lento
Sendo que para cada elemento, faz-se um acesso
Custo
n itens ∼ n ∼ n log(n) ∼ n2
100 K 0.001s 0.005s 100s
1M 0.01s 0.06s 2.7 horas
100 M 1 s 8s 3.1 anos
100 G 20min 3 horas 0.015 ano galactico
Numeros de latencia por ano: http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html
21/46
Funcoes de complexidade
Funcao limitante superior Big-O O(n): limx→∞f (x)g(x) < ∞
Se f (n) ∈ O(g(n)), entao f (n) < cg(n) para algum c e x > a Se f ∈ O(g), entao crescimento f nao e maior que de g x2 ∈ O(x2), x2 ∈ O(x2 + x), x2 ∈ O(200x2)
Funcao limitante estritamente superior Little-O o(n) (mais
exigente): limx→∞f (x)g(x) = 0
Se f (n) ∈ o(g(n)), entao f (n) < cg(n) para todo c > 0 ex > a
Se f ∈ o(g), entao crescimento de f e estritamente menor queg
n2 ∈ o(x3), n2 /∈ o(n2)
Funcao limitante inferior Ω(n): limx→∞f (x)g(x) > 0
Funcao limitante estritamente inferior Ω(n):
limx→∞f (x)g(x) = ∞
Funcao limitante superior e inferior Θ(n): limx→∞f (x)g(x) ∈ ℜ+
22/46
Representacao de dados
Escalares, Vetores e Espacos Vetoriais Componentes pode ser chamados de: dimensoes,
caracterısticas, atributos ou features Componentes: numericos ou categoricos
Matrizes
Conjuntos e Sequencias
Variaveis aleatorias e Processos estocasticos
Arvores e Grafos
23/46
Vetores e Espacos vetoriais
Figura: Dataset Iris: xi = xi1, xi2, . . . , xid
24/46
Vetores e Espacos vetoriais
25/46
Vetores e Espacos vetoriais
26/46
Vetores e Espacos vetoriais
0 0.2
0.4 0.6
0.8 1 0
0.2 0.4
0.6 0.8
1
0
0.1
0.2
0.3
0.4
0.5
E[w]
w0
w1
E[w]
27/46
Matrizes
Marco Julio A Hamlet Otelo MacbethAntonio Cesar Tempestade
Antonio 157 73 0 0 0 1Brutus 4 157 0 2 0 0Cesar 232 227 0 2 1 0Calpurnia 0 10 0 0 0 0Cleopatra 57 0 0 0 0 0. . .
Cada documento e representado como vetor de contagem ∈ N|V |.
28/46
Matrizes
Marco Julio A Hamlet Otelo MacbethAntonio Cesar Tempestade
Antonio 157 73 0 0 0 1Brutus 4 157 0 2 0 0Cesar 232 227 0 2 1 0Calpurnia 0 10 0 0 0 0Cleopatra 57 0 0 0 0 0. . .
Cada documento e representado como vetor de contagem ∈ N|V |.
28/46
Conjuntos e sequencias
Um conjunto nao tem repeticoes C = 1, 2, 3, 4 = 1, 2, 4, 3
Uma sequencia tem ordem entre os elementosS = 1, 1, 2, 1, 1 6= 1, 2, 1, 1, 1
D A B C D E1 1 1 0 1 12 0 1 1 0 13 1 1 0 1 14 1 1 1 0 15 1 1 1 1 16 0 1 1 1 0
t i(t)
1 ABDE
2 BCE
3 ABDE
4 ABCE
5 ABCDE
6 BCD
x A B C D E
t(x) 1 1 2 1 13 2 4 3 24 3 5 5 35 4 6 6 4
5 56
Matriz binaria Conjuntos de itens Base vertical
29/46
Variaveis aleatorias e processos estocasticos
Variaveis aleatorias produzem amostras independentes dotempo
Variaveis aleatorias sao caracterizadas por funcoes deprobabilidade
P(Moeda = cara) = 0.5 P(Renda brasileira media em 2015 ≤ 2000) = 0.2
30/46
Variaveis aleatorias e processos estocasticos
Variaveis aleatorias produzem amostras independentes dotempo
Variaveis aleatorias sao caracterizadas por funcoes deprobabilidade
P(Moeda = cara) = 0.5 P(Renda brasileira media em 2015 ≤ 2000) = 0.2
Processos estocasticos produzem sequencias de amostrasindexadas com o tempo
Modelados como sequencias infinitas de variaveis aleatorias Series temporais
30/46
Variaveis aleatorias
Figura: Funcao de distribuicao de probabilidades de uma variavel normal31/46
Figura: Funcao de probabilidade cumulativa da distribuicao normal
f (x) = 1√
2πσ2exp
−(x−µ)2
2σ2
32/46
Figura: Funcao de probabilidade cumulativa da distribuicao normalbivariada
33/46
Grafos
OO
SS
OO
OO OO
HHHHHH
CC
HH
HH CC
OO
OO HH
CC
OO
OO OO
HH HH
NN
HH
HH HH
Amônia
Ácido carbônico
Ácido acéticoÁcido sulfúrico
Figura: Fonte: slides do livro “Practical Graph Mining With R”
34/46
Grafos
35/46
Grafos
Figura: Grafo inferido das distancias entre pontos do dataset Iris
36/46
Desafios computacionais em Mineracao de Dados
Tempo
Espaco
Modelo computacional Memoria principal Memoria secundaria (tempo de seek ≈ 0.01s) Dados sao obtidos em um fluxo contınuo
Exemplos de problemas
Como contar quais dois itens foram vendidos juntos em umsupermercado?
Como contar o numero de itens distintos em uma lista?
37/46
Problema da contagem dos itens distintos
Dada sequencia A = a1, . . . , an, onde ai ∈ 1 . . .m, contar onumero de elementos distintos em A.
Quantas palavras tem na web? Quantos clientes tem nessa lista de transacoes de bancarias?
Solucao depende do modelo computacional
38/46
Contagem dos itens distintos: modelo memoria principal
Algoritmo H Inicializar C = 0, um array B[1 . . .O(n)] e uma funcao hash
h : 1 . . .m → 1 . . .O(n) Para cada ai ∈ A:
Obter a hash j = h(ai ) Ver se ai esta na lista em B[j ] Se nao esta, incrementar contagem C = C + 1
Supondo que temos memoria suficiente, tempo e O(n)
39/46
Contagem dos itens distintos: modelo memoria secundaria
M unidades de memoria principal, sendo entrada de tamanhon, temos n >> M
Dados tem que ser armazenamos em disco Espaco em disco e organizado em blocos de tamanho B ≤ M
unidades Custo de acesso em disco e significativo (tempo de seek
> 0.00001s, media 0.004s a 0.015s) Operacoes em memoria principal sao negligıveis
Se usarmos o algoritmo anterior H, ele vai fazer Θ(n) acessos(inviavel, por que?)
40/46
Contagem dos itens distintos: modelo memoria secundaria
Algoritmo H2: Merge sort com M/B vias em memoriasecundaria
Separar elementos em M/B segmentos Ordenar recursivamente cada segmento Merge em M/B vias em O(n/B) tempo (acessos a disco)
n/B acessos
Recorrencia: T (N) = KT (nK ) + O(n/B)
Tempo de ordenacao O((n/B) logM/B n
Apos ordenar, e possıvel fazer contagem em uma passada: 1, 2, 2, 2, 4, 4, 5, 6, . . .
41/46
Modelo de fluxo contınuo de dados
Memoria secundaria tem M unidades e M << n
Dados sao produzidos continuamente: ai Problema: para resolver o problema de contagem precisamos
de Ω(n) de espaco!!!
42/46
Modelo de fluxo contınuo de dados
Memoria secundaria tem M unidades e M << n
Dados sao produzidos continuamente: ai Problema: para resolver o problema de contagem precisamos
de Ω(n) de espaco!!! Por contradicao. Assuma que precisamos apenas
M = f (n) ∈ o(n) no algoritmo F Pegar elementos S ⊂ 1 . . .m tal que n ≤ m Passar S para algoritmo F , sendo que estado de A no
momento e X Podemos verificar se i ∈ S , para todo i ∈ 1 . . .M
Passar i para F Numero de elementos distintos aumenta se, e so se, i ∈ S
Dessa forma, poderıamos verificar S a partir de X , entao onumero de diferentes estados X deve ser pelo menos 2m
42/46
O que veremos nesta disciplina
Classificacao
Agrupamento
Mineracao de itens e sequencias
Mineracao de grafos
Mineracao de grandes quantidades de dados
43/46
Comeco do trabalho 1
Procurar artigo de 2013 a 2015 sobre um problema demineracao de dados publicado em um veıculo Qualis A1
Qualis de periodicos: http://qualis.capes.gov.br Qualis de conferencias: link
Escrever um pequeno resumo contendo o seguinte: Porque o problema e interessante? Porque o artigo e interessante? Descreva 3 qualidades do artigo. Descreva 3 defeitos do artigo. Cite 2 artigos/referencias para algoritmos sobre o mesmo
problema.
Enviar resumo (em latex e PDF) por email albertini @ ufu br
44/46
Sugestoes de Conferencias e Periodicos
Journal of Machine Learning Research -http://www.jmlr.org
Machine Learning -http://link.springer.com/journal/10994
NIPS - http://papers.nips.cc
ICML - http://jmlr.org/proceedings/papers/v28/
SIGKDD -http://dl.acm.org/citation.cfm?id=2623330
SIGIR - http://dl.acm.org/citation.cfm?id=2600428
VLDB - http://dl.acm.org/citation.cfm?id=J1174
IJCAI - http://ijcai.org/papers15/contents.php
Best paper awards
http://jeffhuang.com/best_paper_awards.html
45/46
Referencias
Video lectures:http://videolectures.net/Top/Computer_Science/Data_Mining/
Data Science blogs:https://github.com/rushter/data-science-blogs
6.897 - Algorithms for Massive Data Sets, Piotr Indyk (MIT)
Machine Learning (CSE 446), Pedro Domingos (U.Washington)
46/46