WEKA - Basics Docente: Prof. Dr. Ádamo Lima de Santana Discente: Lilian de Jesus Chaves Dias Abril – 2013
WEKA - Basics Docente: Prof. Dr. Ádamo Lima de Santana
Discente: Lilian de Jesus Chaves Dias Abril – 2013
Agenda
Ê Introdução;
Ê Conceitos Básicos;
Ê Suporte;
Ê Aplicações; Ê GUI – Explorer;
Ê API.
Introdução Sobre o WEKA
Sobre o WEKA
Ê Projeto acadêmico de 1990;
Ê Coleção de Algoritmos de Aprendizado de Máquina;
Ê Aplicação a Mineração de Dados;
Ê Standalone ou API;
Ê WEKA – Waikato Environment for Knowledge Analysis;
Ê Grupo de Aprendizado de Máquina da Universidade de Waikato, Nova Zelândia;
Ê Associate Professor Eibe Frank, Dr. Mark Hall, Professor Ian Witten.
Baixando
Ê Site Oficial: http://www.cs.waikato.ac.nz/ml/weka/index.html
Ê Versão estável: 3-6-9;
Ê Versão Desenvolvimento: 3-7-9;
Ê Windows, Mac OS X e Linux;
Ê GPLv2.
Conceitos Básicos Elementos da Base, Tipo de Arquivos
Elementos da Base
Tipo de Arquivos
Ê ARFF (Attribute-Relation FileFormat);
Ê Header + Data;
Ê @attribute <attribute-name> <datatype>: Ê Numérico, nominal, string,data e
relacional.
Comentário
Atributos
Atributo Nominal
Dados
Nome da base
Suporte Comunidade, tutoriais, arquivos, documentação
Suporte
Ê Comunidade ativa - pentaho;
Ê Apresentações e vídeos;
Ê Manual;
Ê Documentação Online;
Ê Wiki;
Ê Hows-To.
Suporte
Aplicações Simple CLI, Visualization, Tools, Experimenter, Knowledge Flow
Ferramenta - GUI
Simple CLI
Ferramenta - GUI
Visualization -‐ Plot
Visualization -‐ ROC
Ferramenta - GUI
Tools – Arff Viewer
Ferramenta - GUI
Experimenter
Ferramenta - GUI
Knowledge Flow
Explorer - GUI Pré-processamento, Classificador
GUI
Demonstração GUI
Ê Configurações do arquivo: Ê Instâncias; Ê Atributos;
Ê Classificadores: Ê Configurações.
API Manipulação de dados e classificadores
Biblioteca
Ê Classpath = weka.jar
Ê Código-fonte = weka-src.jar
Ê Javadoc = <caminho da versão do weka>/doc
Manipulação de Dados
Ê Criação de conjunto de dados na memória;
Ê Formatar a base e adicionar valores: Ê weka.core.Instances; Ê weka.core.Attribute.
Formatando o dataset
procedimento para atributos nominais
procedimento para atributos numéricos
procedimento para adicionar os atributos
Nome da relação Reserva de memória
Adicionando valores
Ê Adição de linha por linha: Ê weka.core.Instance;
Atributos numéricos
Peso padrão de uma instância
Principais Métodos
Ê Instances: Ê toSummaryString(); Ê numInstances(); Ê numAttributes(); Ê numClasses(); Ê meanOrMode(Attribute att) | meanOrMode(int attIndex); Ê attributeToDoubleArray(int index); Ê instance(int index); Ê attribute(int index); Ê delete(int index); Ê sort(Attribute att); Ê swap(int i, int j); Ê testCV(int numFolds, int numFold); Ê trainCV(int numFolds, int numFold).
Principais Métodos
Ê Instance: Ê attribute(int index); Ê setValue(int attIndex, double value); Ê stringValue(int attIndex); Ê value(int attIndex); Ê toString(); Ê toString(int attIndex); Ê numAttributes(); Ê numValues().
Principais Métodos
Ê Attribute: Ê isNominal(); Ê isNumeric(); Ê isString(); Ê isInRange(double value); Ê name(); Ê toString(); Ê type(); Ê value(int valIndex);
Imprimindo valores da base
Informações gerais sobre a base.
Valores de cada linha.
Persistindo a base
Ê weka.core.converters.ConverterUtils.DataSink;
Ê Pasta do projeto;
Carrega base existente na memória
Deve ser um arquivo válido
Exercitando…
Ê Criar uma base com 4 atributos e 150 instancias: Ê Att 1 – Numérico – de 10~37; Ê Att2 – Nominal – V ou F; Ê Att3 – Numérico – de 20 ~ 200; Ê Att4 – Nominal – Bom, Médio, Ruim (Classe);
Ê Imprimir sumário da base.
Ê Persistir base em Files/minhaPrimeiraBase.arff
Exercitando…
Ê Ler base hepatitis.arff;
Ê Imprimir relatório da base;
Ê Mostrar quantidade de cada valor nominal do atributo SEX, HISTOLOGY e ANOREXIA;
Classificadores
Classificadores
Ê Tarefa de Classificação;
Ê weka.classifiers;
Ê Batch-trainable – a base inteira é treinada de uma vez;
Ê Incrementais – atualizam o modelo interno on-the-go;
Classificadores - Batch
Ê Configurar as opções;
Ê Treinar as instancias;
Base de treino
Classificadores - Incremental
Ê Implementam a interface UpdateableClassifier;
Ê Inicializar o modelo;
Ê Atualizar linha à linha – updateClassifier(Instance);
weka.core.converters Lê a estrutura e cria instâncias vazias
Avaliação
Ê Qualidade da performance do modelo do classificador gerado a partir dos dados;
Ê Coss-validation – Utiliza uma base e gera avaliações realísticas;
Ê Teste dedicado.
Avaliação – Cross-validation
Ê Classificador “destreinado”;
Ê Única base de dados;
Classificador Fold
Base Seed
Base
Avaliação – Train/test
Treino
Teste
Estatísticas
Ê toMatrixString – imprime a matriz de confusão;
Ê toClassDetailsString – imprime as taxas de VP/FP, precisão, recall, AUC (por classe);
Ê toCumulativeMarginDistributionString – imprime as margens de distribuição acumuladas;
Outros métodos estatísticos
Ê Atributo classe nominal Ê correct(); Ê pctCorrect() | pctIncorrect(); Ê areaUnderROC(int) – para classe específica;
Ê Atributo classe numérico Ê correlationCoefficient();
Ê Geral Ê meanAbsoluteError(); Ê numInstances();
Exemplo de Implementação
Exercitando… Ê Ler o arquivo hepatitis.arff;
Ê Imprimir configurações da base;
Ê Implementar uma MLP: Ê Auto-build; Ê Learning rate = 0.5; Ê Momentum = 0.5; Ê TrainingTime = 1000; Ê Hidden Layers = 2 com 3 neurônios cada; Ê Classe a atributos normalizados; Ê Cross-validation;
Ê Imprimir estatísticas: Ê Acurácia, matriz de confusão e detalhes por classe.
Ê Salvar como nova base .arff
Ê Ler o arquivo iris.arff;
Ê 3 classificadores: Ê PART; Ê 5-NN; Ê Naïve Bayes;
Ê Relatório com: Ê Acurácia; Ê RMSE.
Exercitando…
Visualização
Visualização – Curva ROC
Ê Curvas de Características de Operação do Receptor ( do inglês Receiver Operating Characteristic);
Ê Avaliação de modelos de classificação;
Ê Taxa de verdadeiros positivos e taxa de falsos positivos;
Ê weka.gui.visualize;
Ê Base usada: colic.arff.
Exemplo – Curva ROC
ROC para determinado label de classe
Container para o ROC
Painel para o container
JFrame
Exemplo – Curva ROC – Classe 0
Exemplo – Curva ROC – Classe 1
Visualização – Gráfico de Árvores
Ê Visualização dos gráficos internos do modelo gerado;
Ê Árvores de Decisão;
Ê Rede Bayesiana;
Ê weka.core.treevisualizer;
Visualização – Gráfico de Árvores
Visualização – Gráfico de Árvores
Referências
Ê Witten, I.H. and Frank, E. (2005) Data Mining: Practical machine learn- ing tools and techniques. 2nd edition Morgan Kaufmann, San Francisco.
Ê WekaWiki – http://weka.wikispaces.com/
Ê Weka Examples – A collection of example classes, as part of an ANT project, included in the WEKA snapshots (available for download on the homepage) or directly from subversion https://svn.scms.waikato.ac.nz/svn/weka/branches/stable-3-6/wekaexamples/
Ê Bouckaert et al. (2013) Weka Manual for Version 3-6-9. The University of Waikato, Hamilton, Nova Zelândia.
Obrigada.
WEKA - Basics Docente: Prof. Dr. Ádamo Lima de Santana
Discente: Lilian de Jesus Chaves Dias Abril – 2013