30/10/2012 Data Mining Software Weka Prof. Luiz Antonio do Nascimento Software Weka Ferramenta para mineração de dados. Weka é um Software livre desenvolvido em Java. Weka é um É um pássaro típico da Nova Zelândia. Software Weka • O sistema foi desenvolvido por um grupo de pesquisadores da Universidade de Waikato, Nova Zelândia. • Pode ser utilizada no modo console ou através da interface gráfica Weka Explorer. 1 30/10/2012 Software Weka • Universidade de Waikato - Nova Zelândia • Waikato Environment for Knowledge Analysis • Coleção de algoritmos de aprendizagem de máquina para resolução de problemas de Data Mining • implementado em Java • open source software • http://www.cs.waikato.ac.nz/ml/weka/ Métodos de Aprendizagem Weka utiliza alguns métodos para a mineração de dados: • • • • • Árvore de decisão Regras de aprendizagem Tabelas de decisão Regressão Regressão logística, etc. Processo de Descoberta do Conhecimento (KDD) O processo de KDD é interativo, iterativo, cognitivo e exploratório. O analista deve seguir os passos: 1. Definição do tipo de conhecimento a descobrir: o que pressupõe uma compreensão do domínio da aplicação bem como do tipo de decisão que tal conhecimento pode contribuir para melhorar. 2. Criação de um conjunto de dados alvo (Selection): selecionar um conjunto de dados onde a descoberta deve ser realizada. 2 30/10/2012 3. Limpeza de dados e pré-processamento (Preprocessing): operações básicas tais como remoção de ruídos quando necessário, escolha de estratégias para manipular campos de dados ausentes e formatação de dados de forma a adequá-los à ferramenta de mineração. 4. Redução de dados e projeção (Transformation): localização de características úteis para representar os dados dependendo do objetivo da tarefa, visando a redução do número de variáveis e/ou instâncias a serem consideradas para o conjunto de dados, bem como o enriquecimento semântico das informações. 70% do Tempo Processo de Descoberta do Conhecimento (KDD) Processo de Descoberta do Conhecimento (KDD) 5. Mineração de dados (Data Mining): selecionar os métodos utilizados para localizar padrões nos dados, seguida da efetiva busca por padrões de interesse numa forma particular de representação ou conjunto de representações; busca pelo melhor ajuste dos parâmetros do algoritmo para a tarefa em questão. 6. Interpretação dos padrões minerados (Interpretation/Evaluation), com um possível retorno aos passos anteriores para posterior iteração (repetição dos passos). 7. Implantação do conhecimento descoberto (Knowledge): incorporar o conhecimento ao sistema, ou documentá-lo e reportá-lo às partes interessadas. Processo de Descoberta do Conhecimento (KDD) Conhecimento Padrões Dados Dados Transformados Dados Alvo Preprocessados Dados 3 30/10/2012 • Processo de Descoberta do Conhecimento (KDD) Observação: O processo de descoberta do conhecimento é incremental. Para melhorar os resultados do processo deve haver iteração quando necessário. Preparação dos Dados • O weka lê os dados no formato .arff – Uma lista de todas as instâncias, onde o valor dos atributos são separados por vírgula mais um cabeçalho • Ex(weather.arff): @relation weather %Nome do arquivo @attribute outlook {sunny, overcast, rainy} @attribute temperature real %Atributo e tipo @attribute humidity real @attribute windy {TRUE, FALSE} @attribute play {yes, no} @data %Início dos dados sunny,85,85,FALSE,no overcast,83,86,FALSE,yes Árvores de Decisão • Dados do tempo • Algoritmo weka.classifier.j48.J48 >75 <=75 4 30/10/2012 Árvores de Decisão J48 pruned tree -----------------outlook = sunny | humidity <= 75: yes (2.0) | humidity > 75: no (3.0) outlook = overcast: yes (4.0) outlook = rainy | windy = TRUE: no (2.0) | windy = FALSE: yes (3.0) Number of Leaves : 5 Size of the tree : 8 Gerando regras de associação • APRIORI • Algoritmo para minerar regras de associação. IF umidade = normal AND vento = não THEN jogar = sim IF umidade = normal AND jogar = sim THEN vento = não IF vento = não AND jogar = sim THEN umidade = normal IF umidade = normal THEN vento = não AND jogar = sim IF vento = não THEN umidade = normal AND jogar = sim IF jogar = sim THEN vento = não AND umidade = normal IF ? THEN vento = não AND umidade = normal AND jogar = sim Saída do algoritmo Best rules found: 1.temperature=cool humidity=normal windy=FALSE ==> play=yes conf:(1) 2. temperature=cool windy=FALSE play=yes ==> humidity=normal conf:(1) 3. outlook=overcast temperature=hot windy=FALSE ==> play=yes conf:(1) 4. temperature=cool windy=FALSE ==> humidity=normal play=yes conf:(1) 5. outlook=rainy temperature=mild windy=FALSE ==> play=yes conf:(1) 5 30/10/2012 Classificação • Observe a saida dos diferentes tipos de classificadores. === Classifier model (full training set) === J48 pruned tree -----------------outlook = sunny | humidity = high: no (3.0) | humidity = normal: yes (2.0) outlook = overcast: yes (4.0) outlook = rainy | windy = TRUE: no (2.0) | windy = FALSE: yes (3.0) Number of Leaves 6 30/10/2012 Arquivo ARFF O formato ARFF é utilizado como padrão para estruturar as bases de dados do Weka. Arquivo ARFF Arquivo ARFF 7 30/10/2012 Arquivo ARFF Arquivo ARFF Exemplo: Classificação 8 30/10/2012 Exemplo: BD locadora de veículos Exemplo: BD locadora de veículos Exemplo: Manipulação do Weka 9 30/10/2012 Exemplo: Manipulação do Weka Exemplo: Manipulação do Weka Exemplo: Manipulação do Weka 10 30/10/2012 Exemplo: Manipulação do Weka Exemplo: Manipulação do Weka Exemplo: Manipulação do Weka 11 30/10/2012 Exemplo: Manipulação do Weka Exemplo: Manipulação do Weka Exemplo: Manipulação do Weka 12 30/10/2012 Exemplo: Manipulação do Weka Exemplo: Manipulação do Weka Exemplo: Manipulação do Weka 13 30/10/2012 Exemplo: Manipulação do Weka Exemplo: Manipulação do Weka Exemplo: Manipulação do Weka 14 30/10/2012 Exemplo: Manipulação do Weka Exemplo: Manipulação do Weka 15