Marcus Sampaio DSC/UFCG Vários slides foram adaptados, traduzidos ou copiados de Pang-Ning Tan (ver Bibliografia) Sumário Contexto Mineração de Dados Exemplo de Motivação Modelos e Padrões Algoritmos de Mineração de Dados Métricas de Mineração de Dados Questões em Aberto Avaliação da Disciplina Marcus Sampaio DSC/UFCG Marcus Sampaio DSC/UFCG Contexto Mineração de Dados Exemplo de Motivação Modelos e Padrões Algoritmos de Mineração de Dados Métricas de Mineração de Dados Questões em Aberto Avaliação da Disciplina Por Que Minerar Dados? Marcus Sampaio DSC/UFCG • Enormes volumes de dados estão sendo coletados e armazenados – Web, e-commerce – Supermercados, lojas de departamento – Transações bancárias • Os computadores têm se tornado mais baratos e poderosos • A pressão competitiva é cada vez maior – Tenho a informação que ninguém tem? A mineração pode ajudar Ponto de vista comercial Marcus Sampaio DSC/UFCG • “Data streams” (GB/hora) – Sensores em satélites – Telescópios varrendo os céus – “Microarrays” gerando dados de expressão de genes – Simulações de tempo gerando terabytes de dados • Mineração de Dados pode ajudar os cientistas – A classificar e segmentar dados – A formular hipóteses Ponto de vista científico O Que É / Não É Mineração de Dados? O que não é? Marcus Sampaio DSC/UFCG O que é? – Achar um número de – Certos nomes são mais freqüentes em telefone em um catálogo certas regiões do Brasil (Cacciola, Armani, Gutierrez… na Grande São Paulo) – Procurar numa máquina de busca informação sobre “Amazônia” – Agrupar documentos por similaridade de contexto (p.e. Amazônia) Origens da Expressão Mineração de Dados Marcus Sampaio DSC/UFCG • Idéias mestras de “machine learning” / AI, “pattern recognition”, estatística e banco de dados Machine Learning / AI Estatística / Pattern Recognition Data Mining Banco de Dados Sumário Contexto Mineração de Dados Exemplo de Motivação Modelos e Padrões Algoritmos de Mineração de Dados Métricas de Mineração de Dados Questões em Aberto Avaliação da Disciplina Marcus Sampaio DSC/UFCG Mineração de Dados Marcus Sampaio DSC/UFCG • Mineração de Dados é uma tecnologia capaz de descobrir padrões de informação ‘escondidos’ em um BD – Padrão Freqüência, Repetição BD desnormalizado • Outras denominações – Análise de Dados Exploratória – Descoberta Dirigida a Dados – Aprendizagem Indutiva • Implementa o conceito de consulta aberta ou semiaberta – Consultas tradicionais são fechadas, ou completamente definidas Marcus Sampaio DSC/UFCG • Consultas Abertas ou Semi-Abertas – Consulta: Pode não ser bem formada, ou formulada imprecisamente. O minerador pode nem mesmo saber exatamente o que ele quer ver – Dados: Como se trata de descobrir padrões (repetições), dados normalizados (sem repetições) não facilitam a tarefa de mineração. A solução é gerar arquivos intermediários não normalizados do BD operacional normalizado – Saída: Não é um subconjunto do BD. Em vez disso, é o resultado de alguma análise sobre o conteúdo do BD Sumário Contexto Mineração de Dados Exemplo de Motivação Modelos e Padrões Algoritmos de Mineração de Dados Métricas de Mineração de Dados Questões em Aberto Avaliação da Disciplina Marcus Sampaio DSC/UFCG Exemplo de Motivação Marcus Sampaio DSC/UFCG • Um robot que prescreve lentes de contato – Oftalmologista: quais as condições gerais – padrões – pelas quais eu sempre tenho receitado lentes de contato duras? ou gelatinosas? ou não tenho recomendo o uso de lentes? Caracterização do Problema: Classificatório Tid 10 Idade Idade Acuidad Astigma Tipo e Visual tismo Lente Marcus Sampaio DSC/UFCG Acuidad Astigma Tipo e Visual tismo Lente 1 Jovem Míope Sim 1 Jovem Míope Não ? 2 Jovem Míope Sim 1 Jovem Hiperm Não ? 3 Velho Hiperm Não 2 Jovem Hiperm Sim ? 4 Velho Hiperm Não 2 Velho Míope Não ? 5 Velho Míope Não 2 Maduro Míope Não ? 6 Maduro Míope Não 1 Maduro Hiperm Sim ? 7 Jovem Hiperm Sim 3 8 Maduro Hiperm Não 3 9 Jovem Não 1 10 Maduro Míopr Sim 2 Hiperm 10 Conj. Treinamento Clasificador Induzido Conj. Teste Modelo Marcus Sampaio DSC/UFCG idade acuidade visual astigmatismo taxa de produção de lágrima tipo de lente jovem míope não reduzida nenhum jovem míope não normal gelatinosa jovem míope sim reduzida nenhum jovem míope sim normal dura jovem hipermétrope não reduzida nenhum jovem hipermétrope não normal gelatinosa Marcus Sampaio DSC/UFCG jovem hipermétrope sim reduzida nenhum jovem hipermétrope sim normal dura maduro míope não reduzida nenhum maduro míope não normal gelatinosa maduro míope sim reduzida nenhum maduro míope sim normal dura maduro hipermétrope não reduzida nenhum Marcus Sampaio DSC/UFCG maduro hipermétrope não normal gelatinosa maduro hipermétrope sim reduzida nenhum maduro hipermétrope sim normal nenhum idoso míope não reduzida nenhum idoso míope não normal nenhum idoso míope sim reduzida nenhum idoso míope sim normal dura Marcus Sampaio DSC/UFCG idoso hipermétrope não reduzida nenhum idoso hipermétrope não normal gelatinosa idoso hipermétrope sim reduzida nenhum idoso hipermétrope sim normal nenhum Marcus Sampaio DSC/UFCG • se taxa_de_produção_de_lágrima = ‘reduzida’ então tipo_de_lente = ‘nenhum’ – Padrão expressado em forma de regra se <condição> então <classe> – Regra se ... então é um modelo de conhecimento • Existem muitos modelos de conhecimento • A regra se verifica em todos os casos em que a taxa de produção de lágrima é reduzida? – Via de regra, não há certeza, apenas probabilidade • Quantas e quais são as outras regras para não receitar lente de contato (somente da amostra, podemos extrair mais três regras – verifique) Marcus Sampaio DSC/UFCG • Quão confiável é uma regra? • se idade = ‘maduro’ e acuidade_visual = ‘hipermétrope’ e astigmatismo = ‘sim’ e taxa_de_produção_de_lágrima = ‘normal’ então tipo_de_lente = ‘nenhum’ – Ela se verifica em somente um caso da amostra • Provavelmente, não tem validade estatística • Qual a freqüência mínima estatisticamente aceitável? Marcus Sampaio DSC/UFCG • Regras expressas em forma de árvore de decisão (próximo slide) – Algoritmo WEKA, J48 Marcus Sampaio DSC/UFCG Sumário Contexto Mineração de Dados Exemplo de Motivação Modelos e Padrões Algoritmos de Mineração de Dados Métricas de Mineração de Dados Questões em Aberto Avaliação da Disciplina Marcus Sampaio DSC/UFCG Modelos e Padrões Marcus Sampaio DSC/UFCG • Outra definição de Mineração de Dados – Tecnologia que visa extrair automaticamente conhecimento útil, confiável e não trivial ‘minério’ de um banco de dados ‘mina’ • O conhecimento deve ser apresentado segundo um modelo formal – Modelo de regras de classificação: se <condição> então <classe> – Instância do modelo: se taxa_de_produção_de_lágrima = ‘reduzida’ então tipo_de_lente = ‘nenhum’ • Não faremos mais distinção entre modelo e instância • Um modelo é confiável na medida em que ele possa ser considerado um padrão – Padrão freqüência significativa no banco de dados Marcus Sampaio DSC/UFCG • Modelos são induzidos (ou inferidos) por algoritmos de mineração – Existem muitos algoritmos de mineração • Não existe o melhor algoritmo – Que fazer? – Diversos algoritmos poderiam implementar o nosso robô – Experimentemos alguns deles • Biblioteca WEKA Marcus Sampaio DSC/UFCG • Tipos de modelo – Preditivo • Faz predição acerca de valores de dados usando resultados conhecidos de outros dados – O exemplo de motivação é de predição • Em geral, a modelagem é baseada em dados históricos, para fazer predição (ou previsão) sobre novos dados – Descritivo • Identifica padrões ou relacionamentos em dados, históricos ou não – Importante para se conhecer os dados Marcus Sampaio DSC/UFCG Modelo Preditivo Classificação Regressão Série Temporal Descritivo Clustering Síntese Regras de Associação Descoberta de Seqüências Sumário Contexto Mineração de Dados Exemplo de Motivação Modelos e Padrões Algoritmos de Mineração de Dados Métricas de Mineração de Dados Questões em Aberto Avaliação da Disciplina Marcus Sampaio DSC/UFCG Algoritmos de Mineração de Dados Marcus Sampaio DSC/UFCG • Os algoritmos diferem segundo os modelos de conhecimento que eles induzem (ou inferem) – – – – – – – – Classificação Supervisionada Classificação Não Supervisionada Regressão Síntese Associação Seqüência Detecção de Anomalias / Desvios Mineração de Texto / Dados Espaciais / Dados EspaçoTemporais / Dados Web / Dados Temporais Classificação Supervisionada Marcus Sampaio DSC/UFCG • Mapeia entidades em classes, ou grupos prédefinidos – Classes são valores de atributos, chamados de atributos de classificação • Exemplo 1: Nosso problema do robot – Classes: 1, 2 e 3 – Diz-se que o conjunto-treinamento está anotado, ou rotulado (“labelled”), daí o adjetivo supervisionado Marcus Sampaio DSC/UFCG • Exemplo 2: Concessão de crédito bancário - Suponha que, com base em informações históricas sobre clientes de um banco, cada cliente é colocado em uma de quatro classes: (c1) OK, (c2) pedir mais informações, (c3) ñOK e (c4) chamar a polícia. Como todo algoritmo de classificação supervisionada, trabalha em duas fases: Fase 1: Induzir um modelo para as classes, de um conjunto-treinamento (corpus) anotado Fase 2: Aplicar o modelo a um novo cliente, para predição (oráculo) - Problema: se a base não fosse anotada? Classificação Não Supervisionada Marcus Sampaio DSC/UFCG • Agrupamento (“Clustering”) – Os grupos (“clusters”) de um corpus são induzidos, por critérios abertos de similaridade • Segmentação dos dados em grupos, não necessariamente disjuntos – Dados similares são agrupados em um mesmo grupo • A única restrição é o número de grupos • “Clustering” é um modelo descritivo – Uma espécie de anotação automática de um corpus – O problema: as anotações não têm semântica (geralmente, cada grupo é identificado por um número) Marcus Sampaio DSC/UFCG • Como entender os grupos? – Indução de um modelo de classificação em que as classes são os grupos • Corpus automaticamente anotado • Um grupo é identificado pelas condições que levam ao número do grupo • “ Clustering” é uma possível solução para o problema apontado no exemplo de concessão de crédito bancário Marcus Sampaio DSC/UFCG • Exemplo (Mala Direta) – Uma cadeia nacional de lojas deseja criar catálogos específicos, baseados em atributos tais como renda, localização, características físicas, etc. Para determinar o público-alvo dos catálogos, bem como identificar novos e desconhecidos grupos visando à criação de outros catálogos específicos, ou ainda catálogos mais específicos do que os inicialmente pensados, um algoritmo de “clustering” agrupa os clientes (potenciais) da cadeia de lojas, segundo certos atributos dos clientes. Desta forma, um eficiente sistema de mala direta pode ser construído Regressão Marcus Sampaio DSC/UFCG • Um problema estatístico clássico é experimentar determinar o relacionamento entre duas variáveis aleatórias, X e Y, por meio de uma curva qualquer, aproximada – Y pode ser previsto de X, então trata-se de um modelo preditivo Regressão Linear Marcus Sampaio DSC/UFCG • A curva é uma reta Y= a+bX+e onde e é um resíduo e os coeficientes a and b are determinados de modo que o resíduo seja o menor possível Marcus Sampaio DSC/UFCG Rendimento de um Certo Investimento x x x x x x x x x x x x Aplicação no Tempo Regressão Não Linear Marcus Sampaio DSC/UFCG • Prediz um valor de uma dada variável contínua, baseado em valores de outras variáveis, segundo uma curva qualquer • Muito estudada em estatística • Exemplo – Predizer velocidades de vento, como uma função de temperatura, umidade, pressão atmosférica, etc. Série Temporal Marcus Sampaio DSC/UFCG • Uma série temporal é a variação, com o tempo, do valor de um certo atributo • A freqüência das medições pode ser diária, semanal, horária, etc. – Pelo exame de um conjunto de séries temporais, algoritmos podem • Fazer predição • Descobrir séries similares • Descobrir outras propriedades de séries – Modelo híbrido • Predição • Descrição Marcus Sampaio DSC/UFCG Nível de Estoque Produto B Produto A Produto C Tempo • Produto C é menos volátil do que produtos A e B • Mesma política de estoque para A e B • Com boa certeza, pode-se fazer predição para C Síntese Marcus Sampaio DSC/UFCG • Uma síntese agrega dados, segundo critérios de agregação previamente escolhidos • Também chamada de Caracterização ou Generalização • De forma sucinta, caracteriza o conteúdo de um banco de dados – Descritivo, essencialmente Marcus Sampaio DSC/UFCG • Exemplo (Ranking de Universidades) – Um dos muitos critérios usados para comparar universidades por um certo instituto de pesquisa americano é o chamado escore ACT um modelo de síntese de universidades. Trata-se de uma síntese usada para estimar o tipo e o nível intelectual dos corpos estudantis • Um modelo de síntese pode também ser pensado como um conjunto de métricas de alto nível de granularidade, relevantes a um contexto Análise de Associação Marcus Sampaio DSC/UFCG • Regras de Associação – Uma regra de associação é um modelo descritivo que identifica tipos específicos de associação entre dados diferentes • A associação entre certos nomes e regiões • O clássico exemplo das cervejas e fraldas – Quanto mais fralda comprada, mais cerveja comprada – Formalmente, é uma extensão de regra de classificação, em que vários pares atributo-valor podem aparecer no conseqüente (isto é, o que vem depois do então) • Atenção: regras de associação em geral não são comutativas! Marcus Sampaio DSC/UFCG • Exemplo (Gerência de Vendas) – O dono de um mercadinho está decidindo se coloca um produto X em promoção. A fim de determinar o impacto dessa decisão, o proprietário usa um algoritmo que infere regras de associação que mostram que outros produtos são freqüentemente comprados junto com o produto X. Baseado nesse conhecimento, ele toma algumas decisões: • Aproximar, nas prateleiras, os produtos associados • Não colocar em promoção, ao mesmo tempo, mais de um produto associado Seqüência Marcus Sampaio DSC/UFCG • Os padrões são similares a associações, porém as associações são, em geral, temporais • Exemplo 1: Padrões de compra ao longo do tempo – Pessoas que compram CD-players, também compram CDs no espaço de uma semana • O que não é trivial no exemplo é o espaço de uma semana • Note que, para que este conhecimento seja válido, é preciso que seja um padrão (número de repetições acima de um valor mínimo aceitável) – Isto vale para qualquer modelo Marcus Sampaio DSC/UFCG • Exemplo 2: Seqüência de disciplinas de um curso de ciência da computação – {Algoritmos e Estruturas de Dados, Introdução a Sistemas Operacionais} {Banco de Dados, Arquitetura de Computadores} {Redes de Computadores, Engenharia de Software} {Computação Gráfica, Computação Paralela) • Diz-se que a seqüência é composta de elementos (4) e eventos (8), e que os eventos são temporais • Uma seqüência pode ser não temporal – Ordenação espacial Marcus Sampaio DSC/UFCG • Exemplo 3: Padrões de navegação na Web – O webmaster de uma companhia X periodicamente usa um algoritmo que analisa os dados do log da Web, para saber como os usuários do site da empresa navegam nele – que seqüência de páginas são freqüentemente acessadas? Desta maneira, ele fica sabendo que 70% dos usuários da página A seguem um dos seguintes padrões de comportamento: <A,B,C> ou <A,D,B,C> ou <A,E,B,C>. Ele então determina criar um link diretamente da página A para a página C Um Capítulo à Parte: Detecção de Anomalia ou Desvios Marcus Sampaio DSC/UFCG • Detectam desvios significativos de comportamento padrão • Aplicações: – Fraude em cartões de crédito – Intrusão em redes de computadores Mineração de Dados Não Convencionais Marcus Sampaio DSC/UFCG • Todas as técnicas e exemplos vistos até aqui referem-se a dados estruturados (descritos por meta dados) • Como fazer para tratar com dados não estruturados (sem meta dados)? – Textos, Dados Espaciais, Dados EspaçoTemporais – A idéia central é a representação estruturada de dados não estruturados • Redução de um problema desconhecido a um problema conhecido Sumário Contexto Mineração de Dados Exemplo de Motivação Modelos e Padrões Algoritmos de Mineração de Dados Métricas de Mineração de Dados Questões em Aberto Avaliação da Disciplina Marcus Sampaio DSC/UFCG Métricas de Mineração de Dados Marcus Sampaio DSC/UFCG • Dado um problema de mineração, há potencialmente uma grande quantidade de processos de MD que podem resolver o problema – Um processo de MD é, simplificadamente, uma tripla <preparação de dados, execução de um algoritmo de mineração de dados, avaliação dos resultados> – Quantidade de processos: No. de técnicas de preparação X no. de algoritmos de MD • Qual o melhor processo de MD para o problema? – A resposta depende das métricas de desempenho escolhidas Marcus Sampaio DSC/UFCG • Métricas de Desempenho de Algoritmos – As tradicionais, como as de espaço e tempo, baseadas em análise de complexidade de algoritmos – Para algoritmos de classificação supervisionada, a acurácia do conhecimento induzido Acurácia = No.de acertos treinamento (teste) / Tamanho do conjunto de treinamento (teste) – Para algoritmos de mineração de dados não estruturados • Precisão • Cobertura (“Recall”) – Veremos depois essas definições Sumário Contexto Mineração de Dados Exemplo de Motivação Modelos e Padrões Algoritmos de Mineração de Dados Métricas de Mineração de Dados Questões em Aberto Avaliação da Disciplina Marcus Sampaio DSC/UFCG Desafios da Mineração de Dados • • • • • • • • • Mineração de Dados (MD) e SGBDs Modelos de Conhecimento Escala Dimensionalidade Dados complexos e heterogêneos Qualidade de dados Direitos autorais Privacidade “Streaming Data” Marcus Sampaio DSC/UFCG Agenda (Parcial) de Pesquisa em MD Marcus Sampaio DSC/UFCG • Integração com SGBDs – Os algoritmos de MD não lêem diretamente de SGBDs • Dados são extraídos de um BD, via comandos SQL, e armazenados em um arquivo "flat", desnormalizado • O arquivo "flat"é a entrada para os algoritmos de mineração – Note que desnormalização (repetição) favorece a descoberta de padrões – BDOR é desnormalizado implicações? • Termos relacionais (<atributo1> <opcomp> <atributo2>) – Os termos dos modelos de MD são da forma <atributo> <opcomp> valor • Uma enorme simplificação – Objetivo: produzir algoritmos de complexidade baixa • Preço a pagar: limitação da expressividade dos modelos Marcus Sampaio DSC/UFCG • Escala – Algoritmos de MD sem escala são de limitada utilidade – Otimização, principalmente de tempo, é um tema de pesquisa recorrente • Minas de Dados são Impuras – Dados do mundo real têm muita ‘sujeira’, e muito valor faltando (“null values”). Algoritmos de MD terão que ser capazes de trabalhar com minas impuras • Dinâmica dos Dados – Muitos algoritmos de MD trabalham com dados estáticos (comportamento invariável, ao longo do tempo). Isto pode não ser um modus operandi realista Marcus Sampaio DSC/UFCG • Facilidade de Assimilação – Embora alguns algoritmos possam trabalhar bem, eles podem induzir modelos muito complexos, de difícil assimilação mesmo por especialistas • Conhecimento inútil misturado com conhecimento útil • Padrões complexos • Padrões não sintetizados • Dimensionalidade – O que fazer se as entidades têm muitos atributos (dimensões)? Os algoritmos de hoje trabalham mal com muitas dimensões? • “Data streaming” – Como minerar dados que fluem continuamente? Marcus Sampaio DSC/UFCG • Atributos complexos ou estruturados – Os algoritmos de hoje só trabalham com atributos atômicos • Privacidade? – Google conhece todo-o-mundo! Sumário Contexto Mineração de Dados Exemplo de Motivação Modelos e Padrões Algoritmos de Mineração de Dados Métricas de Mineração de Dados Questões em Aberto Avaliação da Disciplina Marcus Sampaio DSC/UFCG Sistema de Avaliação Marcus Sampaio DSC/UFCG • Tarefas Laboratoriais – Caracterização de um problema de mineraçao – Solução do problema • Aplicação de processos de mineração ao problema • Interpretação dos resultados dos processos – Equipes de 2 • Seminário (Tópico Avançado) – Individual • Ver os temas propostos