Introdução a Mineração de Dados Marcelo K. Albertini 17 de Abril de 2014
2/1 Organização do curso Prof. Marcelo Keese Albertini Sala: Bloco 1A - sala 1A230 Horário de atendimento: Sexta-feira 14h-17h ou com agendamento E-mail: marcelo.albertini arroba gmail Material da disciplina: http://www.facom.ufu.br/~albertini/md
3/1 A disciplina Objetivos apresentar principais tarefas e técnicas de mineração de dados habilitar o aluno implementar suas próprias ferramentas de mineração de dados habilitar o aluno aplicar mineração de dados em problemas práticos Habilidades para bom aproveitamento saber programar bom conhecimento de estruturas de dados (árvores) um pouco de geometria, cálculo e estatística leitura de textos em inglês
4/1 Atividades previstas Três trabalhos - 25 pontos 3 semanas para fazer cada mixto de implementação de algoritmos aplicação a conjuntos de dados reais exercícios Três provas - 80 pontos Prova 1-25 - 22/05/2014 Prova 2-25 - 17/07/2014 Prova 3-30 - 21/08/2014
5/1 Materiais de estudo Machine Learning, T. Mitchell. Pattern Classification (2nd ed.), R. Duda, P. Hart & D. Stork. Pattern recognition and machine learning, Christopher M. Bishop. Artigos científicos
Mineração de dados e aprendizado de máquina Mineração de dados A maior parte de mineração de dados hoje é realizada com algoritmos de aprendizado de máquina. Um avanço no paradigma de aprendizado de máquina valerá 10 Microsofts (Bill Gates, Microsoft) Aprendizado de máquina é a próxima Internet (Tony Tether, Ex-Diretor da DARPA) Motores de busca atualmente são uma questão de aprendizado de máquina (Prabhakar Raghavan, Ex-Diretor de Pesquisa do Yahoo) Machine Learning at Google raises deep scientific and engineering challenges. (Google Research http://goo.gl/ekpvh9) Google compra empresa de aprendizado de máquina DeepMind NASA por mais de US$500 milhões Janeiro/2014 6/1
7/1 O que é Aprendizado de Máquina? Automatizar automação Fazer computadores programarem eles mesmos A escrita de software é um gargalo para tratar dados disponíveis Permitir os dados fazerem o trabalho sozinhos Mineração de dados!
8/1 Mudança de paradigma Programação tradicional Dados + Programa computador saída Mineração de dados Dados + saída computador programa
9/1 Metáfora: agricultura Mineração de dados não é mágica, é como agricultura sementes = algoritmos nutrientes = dados agricultor = você plantas = programas
10/1 Exemplos de aplicações Motor de busca Web Finanças E-comércio Robótica Redes sociais Extração de informação Biologia computacional (projeto de remédios) Depuração de softwares Sua área favorita
11/1 Aprendizado de máquina Mineração de dados é feita por algoritmos de aprendizado de máquina Existem dezenas de milhares de algoritmos de aprendizado de máquina Todo algoritmo de aprendizado de máquina tem três componentes Representação Avaliação Otimização
12/1 Representação: a linguagem Qual linguagem usar? Componente mais estável de aprendizado de máquina. Árvores de decisão Conjuntos de regras / programas lógicos (Prolog) Aprendizado Baseado em Instâncias Modelos baseados em grafos (Redes Bayesianas/Markovianas) Representação de dependências Redes neurais competição biológica Máquinas de vetores suporte (instâncias + redes neurais) Mistura de modelos a melhor decisão é aquela mais votada
13/1 Avaliação: medidas Está funcionando? Após gerar um programa candidato, como saber se está bom? Acurácia quantos acertos das tentativas?
13/1 Avaliação: medidas Está funcionando? Após gerar um programa candidato, como saber se está bom? Acurácia quantos acertos das tentativas? Precisão e recuperação ORI
13/1 Avaliação: medidas Está funcionando? Após gerar um programa candidato, como saber se está bom? Acurácia quantos acertos das tentativas? Precisão e recuperação ORI Erro quadrático quantidade numérica
13/1 Avaliação: medidas Está funcionando? Após gerar um programa candidato, como saber se está bom? Acurácia quantos acertos das tentativas? Precisão e recuperação ORI Erro quadrático quantidade numérica Verossimilhança o que está acontecendo é provável?
13/1 Avaliação: medidas Está funcionando? Após gerar um programa candidato, como saber se está bom? Acurácia quantos acertos das tentativas? Precisão e recuperação ORI Erro quadrático quantidade numérica Verossimilhança o que está acontecendo é provável? Probabilidade a posteriori verossimilhança + conhecimento prévio
13/1 Avaliação: medidas Está funcionando? Após gerar um programa candidato, como saber se está bom? Acurácia quantos acertos das tentativas? Precisão e recuperação ORI Erro quadrático quantidade numérica Verossimilhança o que está acontecendo é provável? Probabilidade a posteriori verossimilhança + conhecimento prévio Custo/Utilidade na prática, custos diferentes para acertos e erros
13/1 Avaliação: medidas Está funcionando? Após gerar um programa candidato, como saber se está bom? Acurácia quantos acertos das tentativas? Precisão e recuperação ORI Erro quadrático quantidade numérica Verossimilhança o que está acontecendo é provável? Probabilidade a posteriori verossimilhança + conhecimento prévio Custo/Utilidade na prática, custos diferentes para acertos e erros Margem SVM: encontrar limite entre decisões
13/1 Avaliação: medidas Está funcionando? Após gerar um programa candidato, como saber se está bom? Acurácia quantos acertos das tentativas? Precisão e recuperação ORI Erro quadrático quantidade numérica Verossimilhança o que está acontecendo é provável? Probabilidade a posteriori verossimilhança + conhecimento prévio Custo/Utilidade na prática, custos diferentes para acertos e erros Margem SVM: encontrar limite entre decisões Entropia quantidade de informação
13/1 Avaliação: medidas Está funcionando? Após gerar um programa candidato, como saber se está bom? Acurácia quantos acertos das tentativas? Precisão e recuperação ORI Erro quadrático quantidade numérica Verossimilhança o que está acontecendo é provável? Probabilidade a posteriori verossimilhança + conhecimento prévio Custo/Utilidade na prática, custos diferentes para acertos e erros Margem SVM: encontrar limite entre decisões Entropia quantidade de informação Divergência Kullback-Liebler aumento relativo de informação
14/1 Otimização Como usar a linguagem para fazer funcionar? Formas de busca de soluções. Depende da linguagem e da avaliação. Otimização combinatorial Exemplo: busca greedy (gananciosa) Otimização convexa Gradiente descendente qual é a melhor direção Otimização com restrições Programação linear
15/1 Tipos de aprendizado Aprendizado supervisionado (indutivo) Dados de treino incluem saídas desejadas
15/1 Tipos de aprendizado Aprendizado supervisionado (indutivo) Dados de treino incluem saídas desejadas Aprendizado não-supervisionado Supervisão pode custar caro Mais difícil avaliar Dados de treino podem não incluir saídas desejadas Uso de informação lateral
15/1 Tipos de aprendizado Aprendizado supervisionado (indutivo) Dados de treino incluem saídas desejadas Aprendizado não-supervisionado Supervisão pode custar caro Mais difícil avaliar Dados de treino podem não incluir saídas desejadas Uso de informação lateral Aprendizado semi-supervisionado Dados de treino incluem algumas saídas desejadas Pouca supervisão + maior parte não supervisionada
15/1 Tipos de aprendizado Aprendizado supervisionado (indutivo) Dados de treino incluem saídas desejadas Aprendizado não-supervisionado Supervisão pode custar caro Mais difícil avaliar Dados de treino podem não incluir saídas desejadas Uso de informação lateral Aprendizado semi-supervisionado Dados de treino incluem algumas saídas desejadas Pouca supervisão + maior parte não supervisionada Aprendizado por reforço Aprendizado de sequência de ações Recompensa após sequência de ações
16/1 Aplicações Aprendizado Indutivo Detexify http://detexify.kirelabs.org/classify.html
17/1 Aplicações Aprendizado Indutivo Akinator http://pt.akinator.com/personnages/
18/1 Aplicações Aprendizado Indutivo Nciku http://www.nciku.com/
19/1 Aplicações Aprendizado Indutivo Amazon - concurso de identificação de credenciais de empregados (2013) http://www.kaggle.com/c/amazon-employee-access-challenge
Aprendizado indutivo Temos exemplos de uma função x,f( x) Devemos predizer função f( x) para exemplos x completamente novos f( x) discreto: classificação Exemplo: spam vs. não-spam f( x) contínuo: regressão Exemplo: predizer preço de imóveis f( x) = Probabilidade( x): Estimação de probabilidades Tipo especial de regressão Exemplo: qual a probabilidade do Atlético Mineiro ganhar do Corinthians? 20/1
21/1 O que veremos Aprendizado supervisionado 1. Indução de árvores de decisão 2. Indução de regras 3. Aprendizado baseado em instâncias 4. Aprendizado bayesiano/estatístico 5. Redes neurais 6. Teoria do aprendizado 7. Máquina de vetores-suporte 8. Mistura de modelos Aprendizado não supervisionado Agrupamento (redução do número de exemplos) Redução de dimensionalidade (redução do número de atributos)
22/1 Mineração de dados na prática 1. Entender o domínio, conhecimento a priori e objetivos Exemplo: projeto de novos remédios Duas pessoas: especialista no domínio e especialista em mineração 2. Integração de dados, seleção, limpeza, pré-processamento, e outros Consumo da maior parte do tempo 3. Modelos de aprendizado 4. Interpretação de resultados caixa preta vs. branca 5. Consolidação e uso do conhecimento descoberto 6. Iterar para melhorar aprendizado de máquina