introdução a mineração de dados
TRANSCRIPT
Introducao a Mineracao de Dados
Marcelo K. Albertini
17 de Abril de 2014
Organizacao do curso
◮ Prof. Marcelo Keese Albertini
◮ Sala: Bloco 1A - sala 1A230
◮ Horario de atendimento: Sexta-feira 14h-17h ou comagendamento
◮ E-mail: marcelo.albertini arroba gmail
◮ Material da disciplina:http://www.facom.ufu.br/~albertini/md
2/1
A disciplina
Objetivos
◮ apresentar principais tarefas e tecnicas de mineracao de dados
◮ habilitar o aluno implementar suas proprias ferramentas demineracao de dados
◮ habilitar o aluno aplicar mineracao de dados em problemaspraticos
Habilidades para bom aproveitamento
◮ saber programar
◮ bom conhecimento de estruturas de dados (arvores)
◮ um pouco de geometria, calculo e estatıstica
◮ leitura de textos em ingles
3/1
Atividades previstas
◮ Tres trabalhos - 25 pontos◮ 3 semanas para fazer cada◮ mixto de
◮ implementacao de algoritmos◮ aplicacao a conjuntos de dados reais◮ exercıcios
◮ Tres provas - 80 pontos◮ Prova 1 - 25 - 22/05/2014◮ Prova 2 - 25 - 17/07/2014◮ Prova 3 - 30 - 21/08/2014
4/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
5/1
Mineracao de dados e aprendizado de maquina
Mineracao de dados
A maior parte de mineracao de dados hoje e realizada comalgoritmos de aprendizado de maquina.
◮ “Um avanco no paradigma de aprendizado de maquina valera10 Microsofts” (Bill Gates, Microsoft)
◮ “Aprendizado de maquina e a proxima Internet” (TonyTether, Ex-Diretor da DARPA)
◮ “Motores de busca atualmente sao uma questao deaprendizado de maquina” (Prabhakar Raghavan, Ex-Diretorde Pesquisa do Yahoo)
◮ “Machine Learning at Google raises deep scientific andengineering challenges.” (Google Research –http://goo.gl/EkPVH9)
◮ Google compra empresa de aprendizado de maquina“DeepMind NASA” por mais de US$500 milhoes –Janeiro/2014
6/1
O que e Aprendizado de Maquina?
◮ 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
◮ Mineracao de dados!
7/1
Mudanca de paradigma
Programacao tradicional
Dados + Programa → computador → saıda
Mineracao de dados
Dados + saıda → computador → programa
8/1
Metafora: agricultura
Mineracao de dados nao e
magica, e como agricultura
◮ sementes = algoritmos
◮ nutrientes = dados
◮ agricultor = voce
◮ plantas = programas
9/1
Exemplos de aplicacoes
◮ Motor de busca Web
◮ Financas
◮ E-comercio
◮ Robotica
◮ Redes sociais
◮ Extracao de informacao
◮ Biologia computacional (projeto de remedios)
◮ Depuracao de softwares
◮ Sua area favorita
10/1
Aprendizado de maquina
◮ Mineracao de dados e feita por algoritmos de aprendizado demaquina
◮ Existem dezenas de milhares de algoritmos de aprendizado demaquina
◮ Todo algoritmo de aprendizado de maquina tem trescomponentes
◮ Representacao◮ Avaliacao◮ Otimizacao
11/1
Representacao: “a linguagem”
Qual linguagem usar?
Componente mais estavel de aprendizado de maquina.
◮ 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”
12/1
Avaliacao: medidas
Esta funcionando?Apos gerar um “programa candidato”, como saber se esta bom?
◮ Acuracia – quantos acertos das tentativas?
13/1
Avaliacao: medidas
Esta funcionando?Apos gerar um “programa candidato”, como saber se esta bom?
◮ Acuracia – quantos acertos das tentativas?
◮ Precisao e recuperacao – ORI
13/1
Avaliacao: medidas
Esta funcionando?Apos gerar um “programa candidato”, como saber se esta bom?
◮ Acuracia – quantos acertos das tentativas?
◮ Precisao e recuperacao – ORI
◮ Erro quadratico – quantidade numerica
13/1
Avaliacao: medidas
Esta funcionando?Apos gerar um “programa candidato”, como saber se esta bom?
◮ Acuracia – quantos acertos das tentativas?
◮ Precisao e recuperacao – ORI
◮ Erro quadratico – quantidade numerica
◮ Verossimilhanca – o que esta acontecendo e provavel?
13/1
Avaliacao: medidas
Esta funcionando?Apos gerar um “programa candidato”, como saber se esta bom?
◮ Acuracia – quantos acertos das tentativas?
◮ Precisao e recuperacao – ORI
◮ Erro quadratico – quantidade numerica
◮ Verossimilhanca – o que esta acontecendo e provavel?
◮ Probabilidade a posteriori – verossimilhanca + conhecimentoprevio
13/1
Avaliacao: medidas
Esta funcionando?Apos gerar um “programa candidato”, como saber se esta bom?
◮ Acuracia – quantos acertos das tentativas?
◮ Precisao e recuperacao – ORI
◮ Erro quadratico – quantidade numerica
◮ Verossimilhanca – o que esta acontecendo e provavel?
◮ Probabilidade a posteriori – verossimilhanca + conhecimentoprevio
◮ Custo/Utilidade – na pratica, custos diferentes para acertos eerros
13/1
Avaliacao: medidas
Esta funcionando?Apos gerar um “programa candidato”, como saber se esta bom?
◮ Acuracia – quantos acertos das tentativas?
◮ Precisao e recuperacao – ORI
◮ Erro quadratico – quantidade numerica
◮ Verossimilhanca – o que esta acontecendo e provavel?
◮ Probabilidade a posteriori – verossimilhanca + conhecimentoprevio
◮ Custo/Utilidade – na pratica, custos diferentes para acertos eerros
◮ Margem – SVM: encontrar limite entre decisoes
13/1
Avaliacao: medidas
Esta funcionando?Apos gerar um “programa candidato”, como saber se esta bom?
◮ Acuracia – quantos acertos das tentativas?
◮ Precisao e recuperacao – ORI
◮ Erro quadratico – quantidade numerica
◮ Verossimilhanca – o que esta acontecendo 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
13/1
Avaliacao: medidas
Esta funcionando?Apos gerar um “programa candidato”, como saber se esta bom?
◮ Acuracia – quantos acertos das tentativas?
◮ Precisao e recuperacao – ORI
◮ Erro quadratico – quantidade numerica
◮ Verossimilhanca – o que esta acontecendo 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
13/1
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
14/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 nao-supervisionado◮ Supervisao pode custar caro◮ Mais difıcil avaliar◮ Dados de treino podem nao incluir saıdas desejadas◮ Uso de informacao “lateral”
15/1
Tipos de aprendizado
◮ Aprendizado supervisionado (indutivo)◮ Dados de treino incluem saıdas desejadas
◮ Aprendizado nao-supervisionado◮ Supervisao pode custar caro◮ Mais difıcil avaliar◮ Dados de treino podem nao incluir saıdas desejadas◮ Uso de informacao “lateral”
◮ Aprendizado semi-supervisionado◮ Dados de treino incluem algumas saıdas desejadas◮ Pouca supervisao + maior parte nao supervisionada
15/1
Tipos de aprendizado
◮ Aprendizado supervisionado (indutivo)◮ Dados de treino incluem saıdas desejadas
◮ Aprendizado nao-supervisionado◮ Supervisao pode custar caro◮ Mais difıcil avaliar◮ Dados de treino podem nao incluir saıdas desejadas◮ Uso de informacao “lateral”
◮ Aprendizado semi-supervisionado◮ Dados de treino incluem algumas saıdas desejadas◮ Pouca supervisao + maior parte nao supervisionada
◮ Aprendizado por reforco◮ Aprendizado de sequencia de acoes◮ Recompensa apos sequencia de acoes
15/1
Aplicacoes Aprendizado Indutivo
◮ Detexify http://detexify.kirelabs.org/classify.html
16/1
Aplicacoes Aprendizado Indutivo
◮ Akinator http://pt.akinator.com/personnages/
17/1
Aplicacoes Aprendizado Indutivo
◮ Amazon - concurso de identificacao de credenciais deempregados (2013)
http://www.kaggle.com/c/amazon-employee-access-challenge
19/1
Aprendizado indutivo
◮ Temos exemplos de uma funcao 〈~x, f (~x)〉
◮ Devemos predizer funcao f (~x) para exemplos ~xcompletamente novos
◮ f (~x) discreto: classificacao◮ Exemplo: spam vs. nao-spam
◮ f (~x) contınuo: regressao◮ Exemplo: predizer preco de imoveis
◮ f (~x) = Probabilidade(~x): Estimacao de probabilidades◮ Tipo especial de regressao◮ Exemplo: qual a probabilidade do Atletico Mineiro ganhar do
Corinthians?
20/1
O que veremos
◮ Aprendizado supervisionado
1. Inducao de arvores de decisao2. Inducao de regras3. Aprendizado baseado em instancias4. Aprendizado bayesiano/estatıstico5. Redes neurais6. Teoria do aprendizado7. Maquina de vetores-suporte8. Mistura de modelos
◮ Aprendizado nao supervisionado◮ Agrupamento (reducao do numero de exemplos)◮ Reducao de dimensionalidade (reducao do numero de
atributos)
21/1
Mineracao de dados na pratica
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. Integracao de dados, selecao, limpeza, pre-processamento, eoutros
◮ Consumo da maior parte do tempo
3. Modelos de aprendizado
4. Interpretacao de resultados – caixa preta vs. branca
5. Consolidacao e uso do conhecimento descoberto
6. Iterar para melhorar aprendizado de maquina
22/1