Вы находитесь на странице: 1из 72

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

Nome da base

Atributos

Atributo Nominal

Dados
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 numéricos
procedimento para
atributos nominais

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;

Base Seed

Classificador Fold
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


Exercitando…

Ê  Ler o arquivo iris.arff;

Ê  3 classificadores:
Ê  PART;
Ê  5-NN;
Ê  Naïve Bayes;

Ê  Relatório com:


Ê  Acurácia;
Ê  RMSE.
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

Вам также может понравиться