introdução a mineração de dados

33
Introdu¸ ao a Minera¸c˜ ao de Dados Marcelo K. Albertini 17 de Abril de 2014

Upload: others

Post on 12-May-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução a Mineração de Dados

Introducao a Mineracao de Dados

Marcelo K. Albertini

17 de Abril de 2014

Page 2: Introdução a Mineração de Dados

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

Page 3: Introdução a Mineração de Dados

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

Page 4: Introdução a Mineração de Dados

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

Page 5: Introdução a Mineração de Dados

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

Page 6: Introdução a Mineração de Dados

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

Page 7: Introdução a Mineração de Dados

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

Page 8: Introdução a Mineração de Dados

Mudanca de paradigma

Programacao tradicional

Dados + Programa → computador → saıda

Mineracao de dados

Dados + saıda → computador → programa

8/1

Page 9: Introdução a Mineração de Dados

Metafora: agricultura

Mineracao de dados nao e

magica, e como agricultura

◮ sementes = algoritmos

◮ nutrientes = dados

◮ agricultor = voce

◮ plantas = programas

9/1

Page 10: Introdução a Mineração de Dados

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

Page 11: Introdução a Mineração de Dados

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

Page 12: Introdução a Mineração de Dados

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

Page 13: Introdução a Mineração de Dados

Avaliacao: medidas

Esta funcionando?Apos gerar um “programa candidato”, como saber se esta bom?

◮ Acuracia – quantos acertos das tentativas?

13/1

Page 14: Introdução a Mineração de Dados

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

Page 15: Introdução a Mineração de Dados

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

Page 16: Introdução a Mineração de Dados

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

Page 17: Introdução a Mineração de Dados

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

Page 18: Introdução a Mineração de Dados

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

Page 19: Introdução a Mineração de Dados

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

Page 20: Introdução a Mineração de Dados

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

Page 21: Introdução a Mineração de Dados

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

Page 22: Introdução a Mineração de Dados

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

Page 23: Introdução a Mineração de Dados

Tipos de aprendizado

◮ Aprendizado supervisionado (indutivo)◮ Dados de treino incluem saıdas desejadas

15/1

Page 24: Introdução a Mineração de Dados

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

Page 25: Introdução a Mineração de Dados

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

Page 26: Introdução a Mineração de Dados

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

Page 27: Introdução a Mineração de Dados

Aplicacoes Aprendizado Indutivo

◮ Detexify http://detexify.kirelabs.org/classify.html

16/1

Page 28: Introdução a Mineração de Dados

Aplicacoes Aprendizado Indutivo

◮ Akinator http://pt.akinator.com/personnages/

17/1

Page 29: Introdução a Mineração de Dados

Aplicacoes Aprendizado Indutivo

◮ Nciku http://www.nciku.com/

18/1

Page 30: Introdução a Mineração de Dados

Aplicacoes Aprendizado Indutivo

◮ Amazon - concurso de identificacao de credenciais deempregados (2013)

http://www.kaggle.com/c/amazon-employee-access-challenge

19/1

Page 31: Introdução a Mineração de Dados

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

Page 32: Introdução a Mineração de Dados

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

Page 33: Introdução a Mineração de Dados

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