66
Mineração de dados com o WEKA 3.7.6 Márcio Palheta Ludimila Gonçalves Workshop de Mineração de Dados Julho de 2012 1

Weka em aplicações java

Embed Size (px)

DESCRIPTION

Mini curso apresentado no I Workshop de Mineração de Dados - UFAM 2012

Citation preview

  • 1. Minerao de dados com oWEKA 3.7.6Mrcio PalhetaLudimila Gonalves Workshop de Minerao de Dados Julho de 20121

2. Agenda Ambiente de desenvolvimento WEKA na linha de comando rvore de deciso J4.8 Classificao de dados K-Means Regras de associao Apriori Discretizao de dados WEKA na IDE Eclipse JUNO 2 3. Ambiente de desenvolvimento Sistema Operacional: Linux - Ubuntu JAVA SDK 1.7: http://www.oracle.com/technetwork/java/javase/downloads/index.html WEKA 3.7.6: http://www.cs.waikato.ac.nz/ml/weka/index_downloading.html Eclipse JUNO: http://eclipse.org/downloads/ 3 4. Arquivos baixados4 5. Instalao do JDK 7 Por questes de licena, o JDK 7 no faz partedo repositrio oficial do Ubuntu 11.10 Baixe e descompacte a verso do JDK, deacordo com a verso do seu S.O. Para este treinamento, vamos criar uma pastapadro para armazenar nossos software: /usr/lib/java Vamos mover a pasta descompactada 5 6. Instalao do JDK 7 Para este exemplo, baixamos o arquivo: Jdk-7u5-linux-x64.tar.gz Executamos o seguinte script: 6 7. Definindo a verso correta do JAVA Verso do JAVA no terminal: $ java -version Temos problemas, caso aparea algo como: "java version 1.6" ou "Command not found" O Ubuntu trabalha com links para aplicaes Os links genricos podem ficar no diretrio: /usr/bin 7 8. Definio de links no Ubuntu Verifique se j existe um link java criado: $ cd /usr/bin $ ls -lath java Resultado da execuo: lrwxrwxrwx 1 root root 25 2012-07-11 10:18 java -> /XXX/YYY/bin/java sendo XXX e YYY o local onde a verso incorretado Java est instalada8 9. Definio de links no Ubuntu Vamos apagar o link errado: $ sudo rm java E criar o link para a verso correta: $ sudo ln -s /usr/lib/java/jdk1.7.0_05/bin/javajava Depois disso, vamos testar novamente averso do java: $ cd $ java -version9 10. Definio de links no Ubuntu 10 11. Instalao do Eclipse Baixamos os arquivo: eclipse-...-x86_64.tar.gz Descompacte, mova para a pasta padro e Crie um link e teste o eclipse: 11 12. Definio do workspace Selecione uma pasta para trabalhar:12 13. Tela de boas vindas13 14. Instalao do WEKA Baixe a verso adequada ao seu S.O. Descompacte na pasta padro Execute o arquivo weka.jar14 15. Variveis de ambiente Verifique se a varivel $JAVA_HOME foi definida echo $JAVA_HOME Para definio, edite o arquivo /etc/environment sudo gedit /etc/environment Inclua: PATH="/usr/lib/java/jdk1.7.0_05/bin:(outros...)" JAVA_HOME="/usr/lib/java/jdk1.7.0_05/bin/java" CLASSPATH="/usr/lib/java/weka-3-7-6/weka.jar15 16. Definio das variveis de ambiente Edio do arquivo /etc/environment 16 17. Teste das variveis de ambiente Encerre a sesso atual e realize novo login Teste as variveis de ambiente com echo:17 18. Agenda Ambiente de desenvolvimento WEKA na linha de comando rvore de deciso J4.8 Classificao de dados K-Means Regras de associao Apriori Discretizao de dados WEKA na IDE Eclipse JUNO 18 19. Problemas de Classificao Um classificador ou modelo de classificaoverifica a que classe pertence umadeterminada instncia da base de dados Estuda a relao entre os valores dos atributosda instncia para determinar a classe; Tipos de atributo: Classe: indica a classe de uma instncia; Preditivos: estudados para a descoberta darelao com o atributo classe 19 20. Classificao por rvore de Deciso20 21. rvore de deciso Indica se uma pessoa rica ou no, com baseem seus atributos preditivos: N interno: Teste do atributo N folha: Classe encontrada 21 22. Montando a rvore Usamos a rvore de Deciso para: Previso: um cliente ser um bom pagador? Descrio: informaes interessantes das relaes Regras de classificao (Escolaridade == Graduao) (Rico == No) (Escolaridade == Doutorado) (Rico == Sim) (Escolaridade == Mestrado) & (Idade = >30) (Rico = Sim) (Escolaridade = Mestrado) & (Idade = j48.txt28 29. Resultado do treinamento 29 30. Validao cruzada30 31. Agenda Ambiente de desenvolvimento WEKA na linha de comando rvore de deciso J4.8 Classificao de dados K-Means Regras de associao Apriori Discretizao de dados WEKA na IDE Eclipse JUNO 31 32. Classificao usando K-Means K-Means um algoritmo usado paraclassificao, baseado na descoberta degrupos de instncias com caractersticassemelhantes; K - representa o nmero de classes que oalgoritmo deve encontrar; Um objeto pode ser visto como um vetor desuas N caractersticas, em um espaoN-dimensional32 33. Passos do algoritmo Definio do nmero de classes: K Comparao da distncia entre cada instncia; Uso da distncia euclidiana; Depois de calcular a distncia entre objetos,so calculados os centroides de cada classe; A cada iterao, o valor do centroide refinado, at que ocorra a convergncia;33 34. Classificao usando K-Means O K-means algoritmo no supervisionado 34 35. Movendo os centroides35 36. K-means na prtica O arquivo .../data/iris.arff Classificao em {setosa, versicolor, virginica} Usa informaes como o tamanho das ptalas36 37. Arquivo iris.arff atualizado Iris-noclass.arff modificado: sem classes37 38. Execuo do K-Means Execuo usando a varivel de ambiente: $ java weka.clusterers.SimpleKMeans-t /usr/lib/java/weka-3-4-4/data/iris-noclass.arff-N 3 > /usr/lib/java/weka-3-4-4/data/resp-kmeans.txt 38 39. Resultado do processamento 39 40. Agenda Ambiente de desenvolvimento WEKA na linha de comando rvore de deciso J4.8 Classificao de dados K-Means Regras de associao Apriori Discretizao de dados WEKA na IDE Eclipse JUNO 40 41. Regras de associao 41 42. Regras de associao compras.arff Vamos criar o arquivocompras.arff Indica se um produtofoi comprado: sim ou no O arquivo possuivalores discretos ounominais;42 43. Buscando regras de associao Apriori algoritmo que encontra conjuntos deitens frequentes, chamados itemsets; Dada uma regra de associao onde A B Suporte: representa a porcentagem de transaesda base de dados que contm os itens de A e B,indicando a relevncia da regra; Confiana: representa, dentre as transaes quepossuem os itens de A, a porcentagem detransaes que possuem tambm os itens de B,indicando a validade da regra43 44. Execuo do algoritmo Execuo do algoritmo Apriori, na linha decomando: $ java weka.associations.Apriori-t compras.arff> resp-apriori.txt 44 45. Resultado do processamento Arquivo resp-apriori.txt gerado: valores padres 45 46. resp-apriori.txt (continuao) Lista de regras encontradas: default == 10 46 47. Exerccio Apriori Execute novamente o algoritmo, realizando asseguintes alteraes: Altere o valor do suporte mnimo: Argumento M Altere o nmero de regras listadas: Argumento N Liste os itemsets gerados: Argumento I 47 48. Agenda Ambiente de desenvolvimento WEKA na linha de comando rvore de deciso J4.8 Classificao de dados K-Means Regras de associao Apriori Discretizao de dados WEKA na IDE Eclipse JUNO 48 49. Discretizando dados contnuos s vezes, no poderemos executar o algoritmoApriori diretamente em um conjunto de dados Dados numricos dados discretos ounominais O Weka possui ferramenta para discretizao Rotina para trocar a categoria numrica poruma nominal, correspondente ao intervalo: weka.filters.unsupervised.attribute.Discretize.49 50. Discretizando dados contnuos Vamos discretizar o arquivo de dados das iris.arff,que tem quatro atributos numricos. cada atributo ter cinco valores nominais oudiscretos possveis. $ java weka.filters.unsupervised.attribute.Discretize R 1,2,3,4-R : ndices dos atributos que sero discretizados -B : indica quanto valores discretos teremos B 5-i: Arquivo de origem i iris.arff-o: Arquivo discretizado a ser gerado o iris-discretizado.arff50 51. Resultado do processamento Amostra do arquivo discretizado gerado: Iris-discretizado.arff51 52. Execuo do Apriori Execuo do algoritmo Apriori: $ java weka.associations.Apriori-t iris-discretizado.arff> resp-apriori-discretizado.txt52 53. Resultado do processamento 53 54. Resultado do processamento Lista de regras encontradas 54 55. Agenda Ambiente de desenvolvimento WEKA na linha de comando rvore de deciso J4.8 Classificao de dados K-Means Regras de associao Apriori Discretizao de dados WEKA na IDE Eclipse JUNO 55 56. Eclipse e a perspectiva Java 56 57. Criao de um projeto JAVA Ctrl+N 57 58. Projeto de Minerao de Dados58 59. Projeto de Minerao de Dados Estrutura do projeto JAVA:59 60. Cpia dos arquivos .arff e weka.jar Depois da cpia, inclua a API do weka no path: Boto direito em weka.jar Selecione as opes: Build path Add to build path Vamos criar classes para Leitura e Escrita em ARFF 60 61. Criao da classe LeitorArff 61 62. LeitorArff.java (continuao) Cdigo para mostrar os valores de cadainstncia: 62 63. Resultado da execuo63 64. Bibliografia Data Mining - practical machine learning toolsand techniques, Ian H. Witten, EibeFrank, Mark A. Hall Data Mining - practical machine learning toolsand techniques with JAVA implementations,Ian H. Witten, Eibe Frank 64 65. Apostilas WEKA na Munheca: http://www.ambientelivre.com.br/downloads/doc_details/81-weka-na-munheca.html An Introduction to the WEKA Data MiningSystem: http://www.cs.ccsu.edu/~markov/weka-tutorial.pdf DEVMEDIA:http://www.devmedia.com.br/extracao-de-arvores-de-decisao-com-a-ferramenta-de-data-mining-weka/3388 65 66. Minerao de dados com oWEKA 3.7.6 Mrcio Palheta Workshop de Minerao de Dados Julho de 201266