SlideShare uma empresa Scribd logo
1 de 66
Baixar para ler offline
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
Agenda

•   Ambiente de desenvolvimento
•   WEKA na linha de comando
•   Árvore de decisão – J4.8
•   Classificação de dados – K-Means
•   Regras de associação – Apriori
•   Discretização de dados
•   WEKA na IDE Eclipse JUNO

                                       2
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_dow
    nloading.html
• Eclipse JUNO: http://eclipse.org/downloads/

                                                 3
Arquivos baixados




                    4
Instalação do JDK 7

• Por questões de licença, o JDK 7 não faz parte
  do repositório oficial do Ubuntu 11.10
• Baixe e descompacte a versão do JDK, de
  acordo com a versão do seu S.O.
• Para este treinamento, vamos criar uma pasta
  padrão para armazenar nossos software:
  – /usr/lib/java
• Vamos mover a pasta descompactada

                                                   5
Instalação do JDK 7

• Para este exemplo, baixamos o arquivo:
  – Jdk-7u5-linux-x64.tar.gz
• Executamos o seguinte script:




                                           6
Definindo a versão correta do JAVA

• Versão do JAVA no terminal:
  – $ java -version
• Temos problemas, caso apareça algo como:
  – "java version 1.6" ou "Command not found"
• O Ubuntu trabalha com links para aplicações
• Os links genéricos podem ficar no diretório:
  – /usr/bin


                                                 7
Definição de links no Ubuntu

• Verifique se já existe um link java criado:
  – $ cd /usr/bin
  – $ ls -lath java
• Resultado da execução:
  – lrwxrwxrwx 1 root root 25 2012-07-11 10:18 java -
    > /XXX/YYY/bin/java
  – sendo XXX e YYY o local onde a versão incorreta
    do Java está instalada


                                                    8
Definição de links no Ubuntu
• Vamos apagar o link errado:
  – $ sudo rm java
• E criar o link para a versão correta:
  – $ sudo ln -s /usr/lib/java/jdk1.7.0_05/bin/java
    java
• Depois disso, vamos testar novamente a
  versão do java:
  – $ cd
  – $ java -version

                                                      9
Definição de links no Ubuntu




                               10
Instalação do Eclipse

• Baixamos os arquivo: eclipse-...-x86_64.tar.gz
• Descompacte, mova para a pasta padrão e
• Crie um link e teste o eclipse:




                                                   11
Definição do workspace

• Selecione uma pasta para trabalhar:




                                        12
Tela de boas vindas




                      13
Instalação do WEKA

• Baixe a versão adequada ao seu S.O.
• Descompacte na pasta padrão
• Execute o arquivo weka.jar




                                        14
Variáveis de ambiente
• Verifique se a variável $JAVA_HOME foi definida
   – echo $JAVA_HOME
• Para definição, 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.jar


                                                        15
Definição das variáveis de ambiente

• Edição do arquivo /etc/environment




                                       16
Teste das variáveis de ambiente

• Encerre a sessão atual e realize novo login
• Teste as variáveis de ambiente com echo:




                                                17
Agenda

•   Ambiente de desenvolvimento
•   WEKA na linha de comando
•   Árvore de decisão – J4.8
•   Classificação de dados – K-Means
•   Regras de associação – Apriori
•   Discretização de dados
•   WEKA na IDE Eclipse JUNO

                                       18
Problemas de Classificação
• Um classificador ou modelo de classificação
  verifica a que classe pertence uma
  determinada instância da base de dados
• Estuda a relação entre os valores dos atributos
  da instância para determinar a classe;
• Tipos de atributo:
  – Classe: indica a classe de uma instância;
  – Preditivos: estudados para a descoberta da
    relação com o atributo classe

                                                 19
Classificação por Árvore de Decisão




                                  20
Árvore de decisão

• Indica se uma pessoa é rica ou não, com base
  em seus atributos preditivos:

• Nó interno:
  – Teste do atributo
• Nó folha:
  – Classe encontrada


                                                 21
Montando a árvore
• Usamos a Árvore de Decisão para:
  – Previsão: um cliente será um bom pagador?
  – Descrição: informações interessantes das relações
• Regras de classificação
  – (Escolaridade == “Graduação”) Þ (Rico == “Não”)
  – (Escolaridade == “Doutorado”) Þ (Rico == “Sim”)
  – (Escolaridade == “Mestrado”) & (Idade = “>30”)
     • Þ (Rico = “Sim”)
  – (Escolaridade = “Mestrado”) & (Idade = “<=30”)
     • Þ (Rico = “Não”)


                                                        22
Classificação na prática – Jogar golfe?




                                     23
Arquivos .arff
• Arquivos de texto usados como base pelo WEKA
• @relation: primeira linha que indica relação ou
  tarefa de estudo
• @attribute: nome e tipo de cada atributo
  – Nominal: lista de itens separados por “,”.Ex {true,false}
  – Numérico: nome seguido da palavra-chave real;
  – O último representa a classe - classificação
• @data: cada linha representa uma instância, com
  valores separados por “,”, na ordem dos atributos

                                                            24
Arquivos .arff comuns

• O weka disponibiliza alguns arquivos com
  dados para teste da aplicação
• Os arquivos ficam na pasta .../weka/data/
• Neste curso, a pasta data está em:
  – /usr/lib/java/weka-3-7-6/data
• O arquivo .../data/weather.arff
  – Previsão de jogar ou não jogar golfe
  – Usa informações meteorológicas básicas

                                              25
.../weka/data/weather.arff




                             26
Árvore de decisão com weather.arff

• O Algoritmo J4.8 executa a árvore de decisão
• Execução definindo o classpath (-cp):
  – $ java -cp /usr/lib/java/weka-3-4-4/weka.jar
    weka.classifiers.trees.J48
    -t /usr/lib/java/weka-3-4-4/data/weather.arff
• Execução usando a variável de ambiente:
  – $ java weka.classifiers.trees.J48
    -t /usr/lib/java/weka-3-4-4/data/weather.arff

                                                    27
Resultado do processamento

• Arquivo resultado do J4.8 > j48.txt




                                        28
Resultado do treinamento




                           29
Validação cruzada




                    30
Agenda

•   Ambiente de desenvolvimento
•   WEKA na linha de comando
•   Árvore de decisão – J4.8
•   Classificação de dados – K-Means
•   Regras de associação – Apriori
•   Discretização de dados
•   WEKA na IDE Eclipse JUNO

                                       31
Classificação usando K-Means
• K-Means é um algoritmo usado para
  classificação, baseado na descoberta de
  grupos de instâncias com características
  semelhantes;
• K - representa o número de classes que o
  algoritmo deve encontrar;
• Um objeto pode ser visto como um vetor de
  suas N características, em um espaço
  N-dimensional
                                              32
Passos do algoritmo

• Definição do número de classes: K
• Comparação da distância entre cada instância;
• Uso da distância euclidiana;
• Depois de calcular a distância entre objetos,
  são calculados os centroides de cada classe;
• A cada iteração, o valor do centroide é
  refinado, até que ocorra a convergência;


                                              33
Classificação usando K-Means

• O K-means é algoritmo não supervisionado




                                             34
Movendo os centroides




                        35
K-means na prática

• O arquivo .../data/iris.arff
   – Classificação em {setosa, versicolor, virginica}
   – Usa informações como o tamanho das pétalas




                                                        36
Arquivo iris.arff atualizado

• Iris-noclass.arff modificado: sem classes




                                              37
Execução do K-Means

• Execução usando a variável 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
Resultado do processamento




                             39
Agenda

•   Ambiente de desenvolvimento
•   WEKA na linha de comando
•   Árvore de decisão – J4.8
•   Classificação de dados – K-Means
•   Regras de associação – Apriori
•   Discretização de dados
•   WEKA na IDE Eclipse JUNO

                                       40
Regras de associação




                       41
Regras de associação – compras.arff
• Vamos criar o arquivo
  compras.arff
• Indica se um produto
  foi comprado:
  – sim ou não
• O arquivo possui
  valores discretos ou
  nominais;

                                  42
Buscando regras de associação
• Apriori – algoritmo que encontra conjuntos de
  itens frequentes, chamados itemsets;
• Dada uma regra de associação onde A Þ B
  – Suporte: representa a porcentagem de transações
    da base de dados que contêm os itens de A e B,
    indicando a relevância da regra;
  – Confiança: representa, dentre as transações que
    possuem os itens de A, a porcentagem de
    transações que possuem também os itens de B,
    indicando a validade da regra

                                                  43
Execução do algoritmo

• Execução do algoritmo Apriori, na linha de
  comando:
• $ java weka.associations.Apriori
    -t compras.arff
    > resp-apriori.txt




                                               44
Resultado do processamento

• Arquivo resp-apriori.txt gerado: valores padrões




                                               45
resp-apriori.txt (continuação)

• Lista de regras encontradas: default == 10




                                               46
Exercício Apriori

• Execute novamente o algoritmo, realizando as
  seguintes alterações:
• Altere o valor do suporte mínimo:
  – Argumento – M
• Altere o número de regras listadas:
  – Argumento – N
• Liste os itemsets gerados:
  – Argumento – I

                                             47
Agenda

•   Ambiente de desenvolvimento
•   WEKA na linha de comando
•   Árvore de decisão – J4.8
•   Classificação de dados – K-Means
•   Regras de associação – Apriori
•   Discretização de dados
•   WEKA na IDE Eclipse JUNO

                                       48
Discretizando dados contínuos

• Às vezes, não poderemos executar o algoritmo
  Apriori diretamente em um conjunto de dados
• Dados numéricos dados discretos ou
  nominais
• O Weka possui ferramenta para discretização
• Rotina para trocar a categoria numérica por
  uma nominal, correspondente ao intervalo:
  – weka.filters.unsupervised.attribute.Discretize.

                                                      49
Discretizando dados contínuos
• Vamos discretizar o arquivo de dados das iris.arff,
  que tem quatro atributos numéricos.
• cada atributo terá cinco valores nominais ou
  discretos possíveis.
   – $ java weka.filters.unsupervised.attribute.Discretize
     –R 1,2,3,4          -R : índices dos atributos que serão 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.arff

                                                                              50
Resultado do processamento

• Amostra do arquivo discretizado gerado:
• Iris-discretizado.arff




                                            51
Execução do Apriori

• Execução do algoritmo Apriori:
• $ java weka.associations.Apriori
    -t iris-discretizado.arff
    > resp-apriori-discretizado.txt




                                      52
Resultado do processamento




                             53
Resultado do processamento

• Lista de regras encontradas




                                 54
Agenda

•   Ambiente de desenvolvimento
•   WEKA na linha de comando
•   Árvore de decisão – J4.8
•   Classificação de dados – K-Means
•   Regras de associação – Apriori
•   Discretização de dados
•   WEKA na IDE Eclipse JUNO

                                       55
Eclipse e a perspectiva Java




                               56
Criação de um projeto JAVA – Ctrl+N




                                 57
Projeto de Mineração de Dados




                                58
Projeto de Mineração de Dados

• Estrutura do projeto JAVA:




                                  59
Cópia dos arquivos .arff e weka.jar
               • Depois da cópia, inclua a
                 API do weka no path:
               • Botão direito em weka.jar
               • Selecione as opções:
                 – Build path
                 – Add to build path
               • Vamos criar classes para
                 Leitura e Escrita em ARFF

                                         60
Criação da classe LeitorArff




                               61
LeitorArff.java (continuação)

• Código para mostrar os valores de cada
  instância:




                                           62
Resultado da execução




                        63
Bibliografia

• Data Mining - practical machine learning tools
  and techniques, Ian H. Witten, Eibe
  Frank, Mark A. Hall
• Data Mining - practical machine learning tools
  and techniques with JAVA implementations,
  Ian H. Witten, Eibe Frank



                                               64
Apostilas
• WEKA na Munheca:
  – http://www.ambientelivre.com.br/downloads/doc_de
    tails/81-weka-na-munheca.html
• An Introduction to the WEKA Data Mining
  System: http://www.cs.ccsu.edu/~markov/weka-
  tutorial.pdf
• DEVMEDIA:http://www.devmedia.com.br/extrac
  ao-de-arvores-de-decisao-com-a-ferramenta-de-
  data-mining-weka/3388

                                                   65
Mineração de dados com o
      WEKA 3.7.6
         Márcio Palheta
     Workshop de Mineração de Dados
             Julho de 2012




                                      66

Mais conteúdo relacionado

Destaque

Implementação de Sockets em JAVA
Implementação de Sockets em JAVAImplementação de Sockets em JAVA
Implementação de Sockets em JAVAMarcio Palheta
 
Weka – Ferramenta Livre para Mineração de Dados
Weka – Ferramenta Livre para Mineração de DadosWeka – Ferramenta Livre para Mineração de Dados
Weka – Ferramenta Livre para Mineração de DadosRubem Ventura Alves
 
Pentaho: Inteligência de Negócios utilizando software livre @Campus Party 2011
Pentaho: Inteligência de Negócios utilizando software livre @Campus Party 2011Pentaho: Inteligência de Negócios utilizando software livre @Campus Party 2011
Pentaho: Inteligência de Negócios utilizando software livre @Campus Party 2011Caio Moreno
 
Segurança na Internet - Estudos de caso
Segurança na Internet - Estudos de casoSegurança na Internet - Estudos de caso
Segurança na Internet - Estudos de casoJoão Gabriel Lima
 
Filiação partidária e risco de corrupção de servidores públicos federais
Filiação partidária e risco de corrupção de servidores públicos federaisFiliação partidária e risco de corrupção de servidores públicos federais
Filiação partidária e risco de corrupção de servidores públicos federaisRommel Carvalho
 
Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...Rommel Carvalho
 
Aprendizado de Máquinas com Azure Machine Learning e R
Aprendizado de Máquinas com Azure Machine Learning e RAprendizado de Máquinas com Azure Machine Learning e R
Aprendizado de Máquinas com Azure Machine Learning e RDiego Nogare
 
Turbinando sua aplicação com Lucene, Solr e Hibernate Search
Turbinando sua aplicação com Lucene, Solr e Hibernate SearchTurbinando sua aplicação com Lucene, Solr e Hibernate Search
Turbinando sua aplicação com Lucene, Solr e Hibernate SearchPaulo César M Jeveaux
 
Capítulo 08 - desenvolvimento de layouts customizados
Capítulo 08 - desenvolvimento de layouts customizadosCapítulo 08 - desenvolvimento de layouts customizados
Capítulo 08 - desenvolvimento de layouts customizadosMarcio Palheta
 
Guia metodologicos de doenças crônicas 2007
Guia metodologicos de doenças crônicas 2007Guia metodologicos de doenças crônicas 2007
Guia metodologicos de doenças crônicas 2007Márcia Rocha
 
Aplicação de técnicas de mineração de textos para classificação automática de...
Aplicação de técnicas de mineração de textos para classificação automática de...Aplicação de técnicas de mineração de textos para classificação automática de...
Aplicação de técnicas de mineração de textos para classificação automática de...Rommel Carvalho
 
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceCapítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceMarcio Palheta
 
Extração de informações de texto e cálculo de similaridade usando Apache Lucene
Extração de informações de texto e cálculo de similaridade usando Apache LuceneExtração de informações de texto e cálculo de similaridade usando Apache Lucene
Extração de informações de texto e cálculo de similaridade usando Apache LuceneAndré Luis Schwerz
 

Destaque (20)

Implementação de Sockets em JAVA
Implementação de Sockets em JAVAImplementação de Sockets em JAVA
Implementação de Sockets em JAVA
 
Weka – Ferramenta Livre para Mineração de Dados
Weka – Ferramenta Livre para Mineração de DadosWeka – Ferramenta Livre para Mineração de Dados
Weka – Ferramenta Livre para Mineração de Dados
 
Exemplo arquivo arff
Exemplo arquivo arffExemplo arquivo arff
Exemplo arquivo arff
 
Pentaho: Inteligência de Negócios utilizando software livre @Campus Party 2011
Pentaho: Inteligência de Negócios utilizando software livre @Campus Party 2011Pentaho: Inteligência de Negócios utilizando software livre @Campus Party 2011
Pentaho: Inteligência de Negócios utilizando software livre @Campus Party 2011
 
Weka básico
Weka básicoWeka básico
Weka básico
 
Segurança na Internet - Estudos de caso
Segurança na Internet - Estudos de casoSegurança na Internet - Estudos de caso
Segurança na Internet - Estudos de caso
 
Filiação partidária e risco de corrupção de servidores públicos federais
Filiação partidária e risco de corrupção de servidores públicos federaisFiliação partidária e risco de corrupção de servidores públicos federais
Filiação partidária e risco de corrupção de servidores públicos federais
 
Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...Uso de mineração de dados e textos para cálculo de preços de referência em co...
Uso de mineração de dados e textos para cálculo de preços de referência em co...
 
Aprendizado de Máquinas com Azure Machine Learning e R
Aprendizado de Máquinas com Azure Machine Learning e RAprendizado de Máquinas com Azure Machine Learning e R
Aprendizado de Máquinas com Azure Machine Learning e R
 
Turbinando sua aplicação com Lucene, Solr e Hibernate Search
Turbinando sua aplicação com Lucene, Solr e Hibernate SearchTurbinando sua aplicação com Lucene, Solr e Hibernate Search
Turbinando sua aplicação com Lucene, Solr e Hibernate Search
 
Qualidade em serviços de saúde indicadores
Qualidade em serviços de saúde indicadoresQualidade em serviços de saúde indicadores
Qualidade em serviços de saúde indicadores
 
Capítulo 08 - desenvolvimento de layouts customizados
Capítulo 08 - desenvolvimento de layouts customizadosCapítulo 08 - desenvolvimento de layouts customizados
Capítulo 08 - desenvolvimento de layouts customizados
 
Oficina Pentaho
Oficina PentahoOficina Pentaho
Oficina Pentaho
 
Guia metodologicos de doenças crônicas 2007
Guia metodologicos de doenças crônicas 2007Guia metodologicos de doenças crônicas 2007
Guia metodologicos de doenças crônicas 2007
 
Instrumentos de avaliação dos indicadores de Saúde da Pessoa Idosa: uma exper...
Instrumentos de avaliação dos indicadores de Saúde da Pessoa Idosa: uma exper...Instrumentos de avaliação dos indicadores de Saúde da Pessoa Idosa: uma exper...
Instrumentos de avaliação dos indicadores de Saúde da Pessoa Idosa: uma exper...
 
Curriculum lattes
Curriculum lattesCurriculum lattes
Curriculum lattes
 
Aplicação de técnicas de mineração de textos para classificação automática de...
Aplicação de técnicas de mineração de textos para classificação automática de...Aplicação de técnicas de mineração de textos para classificação automática de...
Aplicação de técnicas de mineração de textos para classificação automática de...
 
Cv em power point atualizado
Cv em power point atualizadoCv em power point atualizado
Cv em power point atualizado
 
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceCapítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
 
Extração de informações de texto e cálculo de similaridade usando Apache Lucene
Extração de informações de texto e cálculo de similaridade usando Apache LuceneExtração de informações de texto e cálculo de similaridade usando Apache Lucene
Extração de informações de texto e cálculo de similaridade usando Apache Lucene
 

Semelhante a Mineração de dados com WEKA

001 cesep - turma java
001   cesep - turma java001   cesep - turma java
001 cesep - turma javaJunior Souza
 
Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J  Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J Daniel San Martin
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineOtávio Calaça Xavier
 
Python x R: mas e o Weka?
Python x R: mas e o Weka? Python x R: mas e o Weka?
Python x R: mas e o Weka? pichiliani
 
TDC2016SP - Python x R: mas e o Weka?
TDC2016SP - Python x R: mas e o Weka?TDC2016SP - Python x R: mas e o Weka?
TDC2016SP - Python x R: mas e o Weka?tdc-globalcode
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxDell Technologies
 
Curso de CVS - Parte 4 - Avançado
Curso de CVS - Parte 4 - AvançadoCurso de CVS - Parte 4 - Avançado
Curso de CVS - Parte 4 - AvançadoMarden Neubert
 
Workshop ExtJS4
Workshop ExtJS4Workshop ExtJS4
Workshop ExtJS4javamanrj
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorAllyson Barros
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensAlessandro Binhara
 
Servidor de autenticação centralizada com OpenLDAP
Servidor de autenticação centralizada com OpenLDAPServidor de autenticação centralizada com OpenLDAP
Servidor de autenticação centralizada com OpenLDAPThiago Finardi
 
Servidor de Autenticação Centralizada com OpenLDAP - Thiago Finardi
Servidor de Autenticação Centralizada com OpenLDAP - Thiago FinardiServidor de Autenticação Centralizada com OpenLDAP - Thiago Finardi
Servidor de Autenticação Centralizada com OpenLDAP - Thiago FinardiTchelinux
 

Semelhante a Mineração de dados com WEKA (20)

001 cesep - turma java
001   cesep - turma java001   cesep - turma java
001 cesep - turma java
 
Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J  Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J
 
Tecnologias Netflix OSS
Tecnologias Netflix OSSTecnologias Netflix OSS
Tecnologias Netflix OSS
 
Java 03
Java 03Java 03
Java 03
 
LDAP
LDAPLDAP
LDAP
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP Doctrine
 
Python x R: mas e o Weka?
Python x R: mas e o Weka? Python x R: mas e o Weka?
Python x R: mas e o Weka?
 
TDC2016SP - Python x R: mas e o Weka?
TDC2016SP - Python x R: mas e o Weka?TDC2016SP - Python x R: mas e o Weka?
TDC2016SP - Python x R: mas e o Weka?
 
01 introducao ao java
01   introducao ao java01   introducao ao java
01 introducao ao java
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - Linux
 
Aula 1 - Seja um programador Java
Aula 1 - Seja um programador JavaAula 1 - Seja um programador Java
Aula 1 - Seja um programador Java
 
UML - parte 1
UML - parte 1UML - parte 1
UML - parte 1
 
Curso de CVS - Parte 4 - Avançado
Curso de CVS - Parte 4 - AvançadoCurso de CVS - Parte 4 - Avançado
Curso de CVS - Parte 4 - Avançado
 
Workshop ExtJS4
Workshop ExtJS4Workshop ExtJS4
Workshop ExtJS4
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Tecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvensTecnologias para mineração de dados nas nuvens
Tecnologias para mineração de dados nas nuvens
 
Servidor de autenticação centralizada com OpenLDAP
Servidor de autenticação centralizada com OpenLDAPServidor de autenticação centralizada com OpenLDAP
Servidor de autenticação centralizada com OpenLDAP
 
Servidor de Autenticação Centralizada com OpenLDAP - Thiago Finardi
Servidor de Autenticação Centralizada com OpenLDAP - Thiago FinardiServidor de Autenticação Centralizada com OpenLDAP - Thiago Finardi
Servidor de Autenticação Centralizada com OpenLDAP - Thiago Finardi
 
Java 8 e futuro
Java 8 e futuroJava 8 e futuro
Java 8 e futuro
 

Mais de Marcio Palheta

Capítulo 12 - Fragments
Capítulo 12 - FragmentsCapítulo 12 - Fragments
Capítulo 12 - FragmentsMarcio Palheta
 
Capítulo 11 - Melhorando a usabilidade com qualifiers
Capítulo 11 - Melhorando a usabilidade com qualifiersCapítulo 11 - Melhorando a usabilidade com qualifiers
Capítulo 11 - Melhorando a usabilidade com qualifiersMarcio Palheta
 
Capítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSONCapítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSONMarcio Palheta
 
Capítulo 09 - Serviços em Background
Capítulo 09 - Serviços em BackgroundCapítulo 09 - Serviços em Background
Capítulo 09 - Serviços em BackgroundMarcio Palheta
 
Capítulo 06 - Comunicação entre Activities e Intents Implícitas
Capítulo 06 - Comunicação entre Activities e Intents ImplícitasCapítulo 06 - Comunicação entre Activities e Intents Implícitas
Capítulo 06 - Comunicação entre Activities e Intents ImplícitasMarcio Palheta
 
Capítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de AlunoCapítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de AlunoMarcio Palheta
 
Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteMarcio Palheta
 
Capítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telasCapítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telasMarcio Palheta
 
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoCapítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoMarcio Palheta
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldMarcio Palheta
 

Mais de Marcio Palheta (10)

Capítulo 12 - Fragments
Capítulo 12 - FragmentsCapítulo 12 - Fragments
Capítulo 12 - Fragments
 
Capítulo 11 - Melhorando a usabilidade com qualifiers
Capítulo 11 - Melhorando a usabilidade com qualifiersCapítulo 11 - Melhorando a usabilidade com qualifiers
Capítulo 11 - Melhorando a usabilidade com qualifiers
 
Capítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSONCapítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSON
 
Capítulo 09 - Serviços em Background
Capítulo 09 - Serviços em BackgroundCapítulo 09 - Serviços em Background
Capítulo 09 - Serviços em Background
 
Capítulo 06 - Comunicação entre Activities e Intents Implícitas
Capítulo 06 - Comunicação entre Activities e Intents ImplícitasCapítulo 06 - Comunicação entre Activities e Intents Implícitas
Capítulo 06 - Comunicação entre Activities e Intents Implícitas
 
Capítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de AlunoCapítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de Aluno
 
Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLite
 
Capítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telasCapítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telas
 
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoCapítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorld
 

Último

Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfLuizaAbaAba
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 

Último (20)

Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 

Mineração de dados com WEKA

  • 1. 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
  • 2. Agenda • Ambiente de desenvolvimento • WEKA na linha de comando • Árvore de decisão – J4.8 • Classificação de dados – K-Means • Regras de associação – Apriori • Discretização 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_dow nloading.html • Eclipse JUNO: http://eclipse.org/downloads/ 3
  • 5. Instalação do JDK 7 • Por questões de licença, o JDK 7 não faz parte do repositório oficial do Ubuntu 11.10 • Baixe e descompacte a versão do JDK, de acordo com a versão do seu S.O. • Para este treinamento, vamos criar uma pasta padrão para armazenar nossos software: – /usr/lib/java • Vamos mover a pasta descompactada 5
  • 6. Instalação do JDK 7 • Para este exemplo, baixamos o arquivo: – Jdk-7u5-linux-x64.tar.gz • Executamos o seguinte script: 6
  • 7. Definindo a versão correta do JAVA • Versão do JAVA no terminal: – $ java -version • Temos problemas, caso apareça algo como: – "java version 1.6" ou "Command not found" • O Ubuntu trabalha com links para aplicações • Os links genéricos podem ficar no diretório: – /usr/bin 7
  • 8. Definição de links no Ubuntu • Verifique se já existe um link java criado: – $ cd /usr/bin – $ ls -lath java • Resultado da execução: – lrwxrwxrwx 1 root root 25 2012-07-11 10:18 java - > /XXX/YYY/bin/java – sendo XXX e YYY o local onde a versão incorreta do Java está instalada 8
  • 9. Definição de links no Ubuntu • Vamos apagar o link errado: – $ sudo rm java • E criar o link para a versão correta: – $ sudo ln -s /usr/lib/java/jdk1.7.0_05/bin/java java • Depois disso, vamos testar novamente a versão do java: – $ cd – $ java -version 9
  • 10. Definição de links no Ubuntu 10
  • 11. Instalação do Eclipse • Baixamos os arquivo: eclipse-...-x86_64.tar.gz • Descompacte, mova para a pasta padrão e • Crie um link e teste o eclipse: 11
  • 12. Definição do workspace • Selecione uma pasta para trabalhar: 12
  • 13. Tela de boas vindas 13
  • 14. Instalação do WEKA • Baixe a versão adequada ao seu S.O. • Descompacte na pasta padrão • Execute o arquivo weka.jar 14
  • 15. Variáveis de ambiente • Verifique se a variável $JAVA_HOME foi definida – echo $JAVA_HOME • Para definição, 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.jar 15
  • 16. Definição das variáveis de ambiente • Edição do arquivo /etc/environment 16
  • 17. Teste das variáveis de ambiente • Encerre a sessão atual e realize novo login • Teste as variáveis de ambiente com echo: 17
  • 18. Agenda • Ambiente de desenvolvimento • WEKA na linha de comando • Árvore de decisão – J4.8 • Classificação de dados – K-Means • Regras de associação – Apriori • Discretização de dados • WEKA na IDE Eclipse JUNO 18
  • 19. Problemas de Classificação • Um classificador ou modelo de classificação verifica a que classe pertence uma determinada instância da base de dados • Estuda a relação entre os valores dos atributos da instância para determinar a classe; • Tipos de atributo: – Classe: indica a classe de uma instância; – Preditivos: estudados para a descoberta da relação com o atributo classe 19
  • 20. Classificação por Árvore de Decisão 20
  • 21. Árvore de decisão • Indica se uma pessoa é rica ou não, com base em seus atributos preditivos: • Nó interno: – Teste do atributo • Nó folha: – Classe encontrada 21
  • 22. Montando a árvore • Usamos a Árvore de Decisão para: – Previsão: um cliente será um bom pagador? – Descrição: informações interessantes das relações • Regras de classificação – (Escolaridade == “Graduação”) Þ (Rico == “Não”) – (Escolaridade == “Doutorado”) Þ (Rico == “Sim”) – (Escolaridade == “Mestrado”) & (Idade = “>30”) • Þ (Rico = “Sim”) – (Escolaridade = “Mestrado”) & (Idade = “<=30”) • Þ (Rico = “Não”) 22
  • 23. Classificação na prática – Jogar golfe? 23
  • 24. Arquivos .arff • Arquivos de texto usados como base pelo WEKA • @relation: primeira linha que indica relação ou tarefa de estudo • @attribute: nome e tipo de cada atributo – Nominal: lista de itens separados por “,”.Ex {true,false} – Numérico: nome seguido da palavra-chave real; – O último representa a classe - classificação • @data: cada linha representa uma instância, com valores separados por “,”, na ordem dos atributos 24
  • 25. Arquivos .arff comuns • O weka disponibiliza alguns arquivos com dados para teste da aplicação • Os arquivos ficam na pasta .../weka/data/ • Neste curso, a pasta data está em: – /usr/lib/java/weka-3-7-6/data • O arquivo .../data/weather.arff – Previsão de jogar ou não jogar golfe – Usa informações meteorológicas básicas 25
  • 27. Árvore de decisão com weather.arff • O Algoritmo J4.8 executa a árvore de decisão • Execução definindo o classpath (-cp): – $ java -cp /usr/lib/java/weka-3-4-4/weka.jar weka.classifiers.trees.J48 -t /usr/lib/java/weka-3-4-4/data/weather.arff • Execução usando a variável de ambiente: – $ java weka.classifiers.trees.J48 -t /usr/lib/java/weka-3-4-4/data/weather.arff 27
  • 28. Resultado do processamento • Arquivo resultado do J4.8 > j48.txt 28
  • 31. Agenda • Ambiente de desenvolvimento • WEKA na linha de comando • Árvore de decisão – J4.8 • Classificação de dados – K-Means • Regras de associação – Apriori • Discretização de dados • WEKA na IDE Eclipse JUNO 31
  • 32. Classificação usando K-Means • K-Means é um algoritmo usado para classificação, baseado na descoberta de grupos de instâncias com características semelhantes; • K - representa o número de classes que o algoritmo deve encontrar; • Um objeto pode ser visto como um vetor de suas N características, em um espaço N-dimensional 32
  • 33. Passos do algoritmo • Definição do número de classes: K • Comparação da distância entre cada instância; • Uso da distância euclidiana; • Depois de calcular a distância entre objetos, são calculados os centroides de cada classe; • A cada iteração, o valor do centroide é refinado, até que ocorra a convergência; 33
  • 34. Classificação usando K-Means • O K-means é algoritmo não supervisionado 34
  • 36. K-means na prática • O arquivo .../data/iris.arff – Classificação em {setosa, versicolor, virginica} – Usa informações como o tamanho das pétalas 36
  • 37. Arquivo iris.arff atualizado • Iris-noclass.arff modificado: sem classes 37
  • 38. Execução do K-Means • Execução usando a variável 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
  • 40. Agenda • Ambiente de desenvolvimento • WEKA na linha de comando • Árvore de decisão – J4.8 • Classificação de dados – K-Means • Regras de associação – Apriori • Discretização de dados • WEKA na IDE Eclipse JUNO 40
  • 42. Regras de associação – compras.arff • Vamos criar o arquivo compras.arff • Indica se um produto foi comprado: – sim ou não • O arquivo possui valores discretos ou nominais; 42
  • 43. Buscando regras de associação • Apriori – algoritmo que encontra conjuntos de itens frequentes, chamados itemsets; • Dada uma regra de associação onde A Þ B – Suporte: representa a porcentagem de transações da base de dados que contêm os itens de A e B, indicando a relevância da regra; – Confiança: representa, dentre as transações que possuem os itens de A, a porcentagem de transações que possuem também os itens de B, indicando a validade da regra 43
  • 44. Execução do algoritmo • Execução do algoritmo Apriori, na linha de comando: • $ java weka.associations.Apriori -t compras.arff > resp-apriori.txt 44
  • 45. Resultado do processamento • Arquivo resp-apriori.txt gerado: valores padrões 45
  • 46. resp-apriori.txt (continuação) • Lista de regras encontradas: default == 10 46
  • 47. Exercício Apriori • Execute novamente o algoritmo, realizando as seguintes alterações: • Altere o valor do suporte mínimo: – Argumento – M • Altere o número de regras listadas: – Argumento – N • Liste os itemsets gerados: – Argumento – I 47
  • 48. Agenda • Ambiente de desenvolvimento • WEKA na linha de comando • Árvore de decisão – J4.8 • Classificação de dados – K-Means • Regras de associação – Apriori • Discretização de dados • WEKA na IDE Eclipse JUNO 48
  • 49. Discretizando dados contínuos • Às vezes, não poderemos executar o algoritmo Apriori diretamente em um conjunto de dados • Dados numéricos dados discretos ou nominais • O Weka possui ferramenta para discretização • Rotina para trocar a categoria numérica por uma nominal, correspondente ao intervalo: – weka.filters.unsupervised.attribute.Discretize. 49
  • 50. Discretizando dados contínuos • Vamos discretizar o arquivo de dados das iris.arff, que tem quatro atributos numéricos. • cada atributo terá cinco valores nominais ou discretos possíveis. – $ java weka.filters.unsupervised.attribute.Discretize –R 1,2,3,4 -R : índices dos atributos que serão 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.arff 50
  • 51. Resultado do processamento • Amostra do arquivo discretizado gerado: • Iris-discretizado.arff 51
  • 52. Execução do Apriori • Execução do algoritmo Apriori: • $ java weka.associations.Apriori -t iris-discretizado.arff > resp-apriori-discretizado.txt 52
  • 54. Resultado do processamento • Lista de regras encontradas 54
  • 55. Agenda • Ambiente de desenvolvimento • WEKA na linha de comando • Árvore de decisão – J4.8 • Classificação de dados – K-Means • Regras de associação – Apriori • Discretização de dados • WEKA na IDE Eclipse JUNO 55
  • 56. Eclipse e a perspectiva Java 56
  • 57. Criação de um projeto JAVA – Ctrl+N 57
  • 58. Projeto de Mineração de Dados 58
  • 59. Projeto de Mineração de Dados • Estrutura do projeto JAVA: 59
  • 60. Cópia dos arquivos .arff e weka.jar • Depois da cópia, inclua a API do weka no path: • Botão direito em weka.jar • Selecione as opções: – Build path – Add to build path • Vamos criar classes para Leitura e Escrita em ARFF 60
  • 61. Criação da classe LeitorArff 61
  • 62. LeitorArff.java (continuação) • Código para mostrar os valores de cada instância: 62
  • 64. Bibliografia • Data Mining - practical machine learning tools and techniques, Ian H. Witten, Eibe Frank, Mark A. Hall • Data Mining - practical machine learning tools and techniques with JAVA implementations, Ian H. Witten, Eibe Frank 64
  • 65. Apostilas • WEKA na Munheca: – http://www.ambientelivre.com.br/downloads/doc_de tails/81-weka-na-munheca.html • An Introduction to the WEKA Data Mining System: http://www.cs.ccsu.edu/~markov/weka- tutorial.pdf • DEVMEDIA:http://www.devmedia.com.br/extrac ao-de-arvores-de-decisao-com-a-ferramenta-de- data-mining-weka/3388 65
  • 66. Mineração de dados com o WEKA 3.7.6 Márcio Palheta Workshop de Mineração de Dados Julho de 2012 66