Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

44
1 de 44 Construção de Classificadores Marcos Vinicius Fidelis Analista de Informática – Universidade Estadual de Ponta Grossa Professor – Universidade Tecnológica Federal do Paraná [email protected] - [email protected]

description

Palestra FTSL 2014 - Construção de Classificadores utilizando Pentaho Data Mining (WEKA)

Transcript of Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

Page 1: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

1 de 44

Construção de Classificadores

Marcos Vinicius Fidelis

Analista de Informática – Universidade Estadual de Ponta GrossaProfessor – Universidade Tecnológica Federal do Paraná

[email protected] - [email protected]

Page 2: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

2 de 44

Surgiu com a necessidade de tratar a grande quantidade de dados disponíveis!

Page 3: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

3 de 44

A internet em um minuto

http://techwelkin.com/in-one-minute-of-internet-infographic

Page 4: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

4 de 44

KDD - DM

● Extração de conhecimento (Knowledge Discovery in Databases) é um processo de extração de informações de base de dados, que cria relações de interesse que não são observadas pelo especialista no assunto, bem como auxilia a validação de conhecimento extraído.

● Mineração de Dados (Data Mining) é um passo no processo de KDD que consiste na aplicação de análise de dados e algoritmos de descobrimento que produzem uma enumeração de padrões (ou modelos) particular sobre os dados.

Page 5: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

5 de 44

Processo de KDD

Page 6: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

6 de 44

SAD e MD

● O produto esperado da extração de conhecimento é uma informação relevante para ser utilizada pelos tomadores de decisão. Alguns autores, porém, defendem o ponto de vista de que o conhecimento descoberto não precisa necessariamente ser incorporado a um sistema de apoio à decisão (SAD).

● Áreas envolvidas: aprendizado de máquinas; banco de dados inteligente; computação de alto desempenho; estatística; inteligência artificial; visualização de dados; reconhecimento de padrões e sistemas especialistas.

Page 7: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

7 de 44

Data Warehouse

● Um data warehouse é um sistema de computação utilizado para armazenar informações relativas às atividades de uma organização em bancos de dados, de forma consolidada. O desenho da base de dados favorece os relatórios, a análise de grandes volumes de dados e a obtenção de informações estratégicas que podem facilitar a tomada de decisão.

Page 8: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

8 de 44

Business Intelligence

● O termo Business Intelligence (BI), pode ser traduzido como Inteligência de negócios, refere-se ao processo de coleta, organização, análise, compartilhamento e monitoramento de informações que oferecem suporte a gestão de negócios.

Page 9: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

9 de 44

Data Mining

● Mineração de dados é o processo de explorar grandes quantidades de dados à procura de padrões consistentes, como regras de associação ou sequências temporais, para detectar relacionamentos sistemáticos entre variáveis, detectando assim novos subconjuntos de dados.

Page 10: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

10 de 44

A quem interessa Mineração de Dados?

● Empresa– Identificar categorias de

consumidores

– Hábitos de consumo associados a categorias

– Retenção de clientes

– Afinidades entre produtos

– CRM

– Marketing

– Identificação de competências em currículos

● Saúde– Auxiliar o processo de triagem de

pacientes

– Melhorar diagnósticos

● Outros– Bioinformática

– Investimentos/Seguros

– Esportes

– Entretenimento

● Auditoria– Detecção de fraudes

– Identificação de desvios

Page 11: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

11 de 44

Escândalo dos cartões corporativos

Caso 3:Se {“Locação de automóvel sem condutor”,”R$1000-R$1500”} então {“Sec.Esp. De Políticas de Promoção da

Igualdade Racial”}suporte = 1,15% e confiança = 86,67%

Ressalta-se que esse exemplo é exatamente o pivô das discussões sobre cartões, configurado no aluguel de carros em viagens.

Page 12: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

12 de 44

Por que minerar dados?Para ter informações que ajudem no processo decisório

O que posso encontrar?Padrões preditivos, associativos e de agrupamento.

Page 13: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

13 de 44

Módulos Pentaho

A Suite Pentaho é composta pelo Pentaho BI Server, Pentaho Data Integration, Pentaho Analysis, Pentaho Reporting, Pentaho Dasboards e Pentaho Data Mining.– Pentaho Data Integration: Ta mbém conhecido como Kettle é uma solução robusta para integração de dados, recomendada para

processos de ETL (do inglês Extract, Transfomation and Load) responsáveis por popular um Data Warehouse, Migração de base de dados e Integração entre Aplicações. Não deixa nada a desejar para os principais player’s do mercado.

– Pentaho Analysis: Também conhecido como Mondrian é um poderoso motor olap, baseado em uma arquitetura ROLAP, onde pode-se utilizar os principais SGBD’s do mercado. Possui diversas funcionalidades, como, camada de metadados, linguagem MDX, cache em memória, tabelas agregadas e muito mais.

– Pentaho Reporting: Este módulo da suite comtempla duas ferramentas, uma ferramenta de geração de relatórios, também conhecida como JFreeReport e outra para geração de metadados, a qual permite a criação Ad-Hoc de relatórios via web browser.

– Pentaho Dashboards: Este módulo da suite permite a criação de paineis de controle, mais conhecidos como Dashboards e através dele é possivel reunir em uma mesma tela, os principais indicadores de um departamento ou de toda a empresa.

– Pentaho Data Mining: Também conhecido como Weka é o módulo mais antigo da suite e possui poderosos recursos para mineração de dados.

Page 14: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

14 de 44

Comunidade Pentaho Brasil

http://www.pentahobrasil.com.br

https://www.facebook.com/pentahobrasil

Page 15: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

15 de 44

Pentaho Data Mining (PDM)

● Explorer: testar classificadores/filtros

● Experimenter: Comparação de desempenho

● KnowledgeFlow: Interface gráfica

● SimpleCli: Interface de linha de comando

Page 16: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

16 de 44

História

● 1992 – submissão do projeto ao governo de NZ (Ian Witten)

● 1993 – aprovado pelo governo● 1994 – Primeira versão (principalmente em C)● 1996 – Primeira versão pública – WEKA 2.1● 1997 – Convertido para Java● 1998 – WEKA 3 (completamente Java)● 2006 – O projeto foi incorporado ao Pentaho

Page 17: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

17 de 44

O que tenho disponível?

● 100+ algoritmos de classificação● 75 para pré-processamento de dados● 25 para apoiar o processo de Seleção de Atributos● 20 para agrupamento, regras de associação, etc

Page 18: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

18 de 44

Tarefas de Mineração de Dados

• Classificação: aprendizado de uma função que mapeia um dado em uma de várias classes conhecidas.

• Regressão (predição): aprendizado de uma função que mapeia um dado em um valor real.

• Agrupamento (clustering): identificação de grupos de dados onde os dados tem características semelhantes entre si e os grupos tem características diferentes.

• Sumarização: descrição do que caracteriza um conjunto de dados (ex. conjunto de regras).

• Detecção de desvios ou outliers: identificação de dados que deveriam seguir um padrão mas não o fazem.

Page 19: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

19 de 44

Predição

● Classificação● Regressão

● Missão: Dado um conjunto de exemplos pré-classificados, construir um modelo (Classificador) para classificar novos casos.

● Um classificador pode ser um conjunto de regras, uma árvore de decisão, uma rede neural, etc.

Page 20: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

20 de 44

Todos os padrões são interessantes?

Um padrão é interessante se:● Pode ser facilmente compreendido por humanos● É válido em dados de teste com um certo grau de

certeza● Potencialmente útil● Novo● valida uma hipótese do usuário

Page 21: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

21 de 44

Um exemplo de dataset

@relation tempo@attribute aparencia {ensolarado, nublado, chuvoso}@attribute temperature real@attribute humidity real@attribute windy {TRUE, FALSE}@attribute play {sim, nao}@dataensolarado,85,85,FALSE,naoensolarado,80,90,TRUE,naonublado,83,86,FALSE,simchuvoso,70,96,FALSE,simchuvoso,68,80,FALSE,simchuvoso,65,70,TRUE,naonublado,64,65,TRUE,simensolarado,72,95,FALSE,naoensolarado,69,70,FALSE,simchuvoso,75,80,FALSE,simensolarado,75,70,TRUE,simnublado,72,90,TRUE,simnublado,81,75,FALSE,simchuvoso,71,91,TRUE,nao

Page 22: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

22 de 44

Tipos de dados

● @attribute Nome string● @attribute Salario numeric● @attribute sexo {masculino, feminino}● @atttribute dtCompra date "yyyy-MM-dd"

Page 23: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

23 de 44

Outros datasets para treinar

Page 24: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

24 de 44

PDI - Extração de dados do Facebook com Pentaho

http://www.devmedia.com.br/extracao-de-dados-do-facebook-com-a-suite-pentaho/25523

Page 25: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

25 de 44

Weka – Explorer

Page 26: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

26 de 44

Visualização Gráfica

Page 27: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

27 de 44

Avaliando cada atributo

Page 28: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

28 de 44

Classificador ZeroR

O classificador ZeroR prevê a classe mais frequente para atributos categóricos e a média para Atributos numéricos. Útil para servir de “baseline” para avaliação de outros classificadores.

Page 29: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

29 de 44

Classificador OneR

Page 30: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

30 de 44

Classificador Bayes

● Oposto do OneR: utiliza todos os atributos e regras Bayes para estimar a probabilidade de uma classe para uma instância

● Naive Bayes tem um desempenho muito bom● Pode ser prejudicado por muitos atributos

redundantes

Page 31: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

31 de 44

Classificador J48 (C4.5) – Árvore de Decisão

Page 32: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

32 de 44

Árvores de decisão

if X > 5 then blueelse if Y > 3 then blueelse if X > 2 then greenelse blue

Page 33: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

33 de 44

Redes Neurais

Podem selecionar regiões mais complexasPodem ser mais precisasPodem se ajustar aos dados - encontrar padrões em dados com ruído

Page 34: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

34 de 44

Output source code

Page 35: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

35 de 44

Dividindo o dataset

● Conjunto de treinamento– Utilizado para a construção do classificador

– Quanto maior, melhor o classificador gerado

● Conjunto de Teste (Validação)– Utilizado para estimar o desempenho

Page 36: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

36 de 44

Outras abordagens para classificadores

● Rules● Genetic Algorithms● Ensemble● E muitos outros

Page 37: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

37 de 44

Como avaliar um classificador?

● Taxa de erro = n° de erros / total● Validação Cruzada: Dividir os dados em n partições

treino/teste e calcular o erro médio● Matriz de Confusão: Separa os diversos tipos de

erro: Falso Positivo (o classificador prevê que é de uma classe e não é) e Falso Negativo (o classificador não detecta que é da classe)

Matriz de Conf. Classificado Sim Classificado Não

Realmente Sim TP FN

Realmente Não FP TN

Taxa de erro = (FP+FN)/nConfiança positiva = TP/(TP+FP)Confiança negativa = TN/(TN+FN)Sensibilidade = TP/(TP+FN)Precisão (acuracy) = (TP+TN)/n

Page 38: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

38 de 44

Seleção de Atributos

● Realizada no pré-processamento dos dados● Usada para investigar quais atributos (subconjuntos

deles) são mais preditivos ● 2 etapas:

– Um método de busca

– Um método de avaliação

● Flexibilidade: (quase) qualquer combinação de busca/avaliação

Page 39: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

39 de 44

Experimenter

● Determinar e o desvio padrão do desempenho de um algoritmo de classificação em um dataset …– Ou vários algoritmos em vários datasets

● Analisar se um algoritmo é melhor que outro em um dataset particular? Esta diferença é estatisticamente significante?

● Testar configurações de parâmetros de um mesmo algoritmo.● Os dados e resultados da análise podem ser armazenados em um

arquivo .ARFF● O processamento pode levar dias ou semanas, e pode ser

distribuído em vários computadores.

Page 40: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

40 de 44

MD e privacidade

● MD busca PADRÕES e não PESSOAS.● Soluções técnicas podem limitar a invasão de

privacidade– Substituir informações sigilosas com um id anônimo

– Fornecer saídas aleatórias

– Utilizar rótulos em instâncias que escondam o real significado.

Page 41: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

41 de 44

Minerando Big Data

● A partir da 3.7 - packages para MD distribuída – DistributedWekaBase: Tarefas básicas de “map” e “reduce”

– DistributedWekaHadoop: fornece Hadoop-specific wrappers e jobs para várias tarefas

● http://www.cs.waikato.ac.nz/ml/weka/bigdata.html● Algoritmos tradicionais precisam de todos os dados em memória

– Incremental schemes

– Stream algorithms

– MOA (Massive Online Analysis) - http://moa.cs.waikato.ac.nz/

● http://markahall.blogspot.com.br/2013/03/learning-linear-models-in-hadoop-with.html

Page 42: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

42 de 44

Referência

● Livro-texto– Data Mining: Practical machine learning tools and

techniques, by Ian H. Witten, Eibe Frank and Mark A. Hall. Morgan Kaufmann, 2011

● Download– http://www.cs.waikato.ac.nz/ml/weka

– para Windows, Mac, Linux

Page 43: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

43 de 44

Onde conseguir mais informações?

● https://www.facebook.com/pentahobrasil ● http://www.pentahobrasil.com.br● http://weka.pentaho.com/● Mineração de Dados - Conceitos, Aplicações e Experimentos com

Weka– http://www.lbd.dcc.ufmg.br/colecoes/erirjes/2004/004.pdf

● KDnuggets– news, software, jobs, courses,…

– www.KDnuggets.com

● ACM SIGKDD – data mining association– www.acm.org/sigkdd

Page 44: Construção de Classificadores utilizando Pentaho Data Mining (WEKA) - FTSL 2014

44 de 44

Contato

Obrigado a todos!

Marcos Vinicius Fidelis

[email protected] - [email protected]