weka básico

72
WEKA - Basics Docente: Prof. Dr. Ádamo Lima de Santana Discente: Lilian de Jesus Chaves Dias Abril – 2013

Upload: lilian-dias

Post on 01-Jul-2015

1.418 views

Category:

Education


1 download

DESCRIPTION

Curso realizado na UFPA em 08/06/2013.

TRANSCRIPT

Page 1: Weka básico

WEKA - Basics Docente: Prof. Dr. Ádamo Lima de Santana

Discente: Lilian de Jesus Chaves Dias Abril – 2013

Page 2: Weka básico

Agenda

Ê Introdução;

Ê Conceitos Básicos;

Ê Suporte;

Ê Aplicações; Ê GUI – Explorer;

Ê API.

Page 3: Weka básico

Introdução Sobre o WEKA

Page 4: Weka básico

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.

Page 5: Weka básico

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.

Page 6: Weka básico

Conceitos Básicos Elementos da Base, Tipo de Arquivos

Page 7: Weka básico

Elementos  da  Base  

Page 8: Weka básico

Tipo  de  Arquivos  

Ê ARFF (Attribute-Relation FileFormat);

Ê Header + Data;

Ê @attribute <attribute-name> <datatype>: Ê Numérico, nominal, string,data e

relacional.

Page 9: Weka básico

Comentário

Atributos

Atributo Nominal

Dados

Nome da base

Page 10: Weka básico

Suporte Comunidade, tutoriais, arquivos, documentação

Page 11: Weka básico

Suporte

Ê Comunidade ativa - pentaho;

Ê Apresentações e vídeos;

Ê Manual;

Ê Documentação Online;

Ê Wiki;

Ê Hows-To.

Page 12: Weka básico

Suporte

Page 13: Weka básico

Aplicações  Simple CLI, Visualization, Tools, Experimenter, Knowledge Flow

Page 14: Weka básico

Ferramenta - GUI

Page 15: Weka básico

Simple  CLI    

Page 16: Weka básico

Ferramenta - GUI

Page 17: Weka básico

Visualization  -­‐  Plot  

Page 18: Weka básico

Visualization  -­‐  ROC  

Page 19: Weka básico

Ferramenta - GUI

Page 20: Weka básico

Tools  –  Arff  Viewer  

Page 21: Weka básico

Ferramenta - GUI

Page 22: Weka básico

Experimenter  

Page 23: Weka básico
Page 24: Weka básico
Page 25: Weka básico
Page 26: Weka básico
Page 27: Weka básico
Page 28: Weka básico
Page 29: Weka básico
Page 30: Weka básico
Page 31: Weka básico
Page 32: Weka básico

Ferramenta - GUI

Page 33: Weka básico

Knowledge  Flow  

Page 34: Weka básico

Explorer - GUI Pré-processamento, Classificador

Page 35: Weka básico

GUI

Page 36: Weka básico

Demonstração GUI

Ê Configurações do arquivo: Ê  Instâncias; Ê Atributos;

Ê Classificadores: Ê Configurações.

Page 37: Weka básico

API Manipulação de dados e classificadores

Page 38: Weka básico

Biblioteca

Ê  Classpath = weka.jar

Ê  Código-fonte = weka-src.jar

Ê  Javadoc = <caminho da versão do weka>/doc

Page 39: Weka básico

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.

Page 40: Weka básico

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

Page 41: Weka básico

Adicionando valores

Ê  Adição de linha por linha: Ê  weka.core.Instance;

Atributos numéricos

Peso padrão de uma instância

Page 42: Weka básico

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).

Page 43: Weka básico

Principais  Métodos  

Ê  Instance: Ê  attribute(int index); Ê  setValue(int attIndex, double value); Ê  stringValue(int attIndex); Ê  value(int attIndex); Ê  toString(); Ê  toString(int attIndex); Ê  numAttributes(); Ê  numValues().

Page 44: Weka básico

Principais  Métodos  

Ê  Attribute: Ê  isNominal(); Ê  isNumeric(); Ê  isString(); Ê  isInRange(double value); Ê  name(); Ê  toString(); Ê  type(); Ê  value(int valIndex);

Page 45: Weka básico

Imprimindo valores da base

Informações gerais sobre a base.

Valores de cada linha.

Page 46: Weka básico

Persistindo a base

Ê  weka.core.converters.ConverterUtils.DataSink;

Ê  Pasta do projeto;

Page 47: Weka básico

Carrega base existente na memória

Deve ser um arquivo válido

Page 48: Weka básico

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

Page 49: Weka básico

Exercitando…

Ê  Ler base hepatitis.arff;

Ê  Imprimir relatório da base;

Ê  Mostrar quantidade de cada valor nominal do atributo SEX, HISTOLOGY e ANOREXIA;

Page 50: Weka básico

Classificadores

Page 51: Weka básico

Classificadores

Ê  Tarefa de Classificação;

Ê  weka.classifiers;

Ê  Batch-trainable – a base inteira é treinada de uma vez;

Ê  Incrementais – atualizam o modelo interno on-the-go;

Page 52: Weka básico

Classificadores - Batch

Ê  Configurar as opções;

Ê  Treinar as instancias;

Base de treino

Page 53: Weka básico

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  

Page 54: Weka básico

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.

Page 55: Weka básico

Avaliação – Cross-validation

Ê  Classificador “destreinado”;

Ê  Única base de dados;

Classificador Fold

Base Seed

Base

Page 56: Weka básico

Avaliação – Train/test

Treino

Teste

Page 57: Weka básico

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;

Page 58: Weka básico

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();

Page 59: Weka básico

Exemplo de Implementação

Page 60: Weka básico

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

Page 61: Weka básico

Ê Ler o arquivo iris.arff;

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

Ê Relatório com: Ê Acurácia; Ê RMSE.

Exercitando…

Page 62: Weka básico

Visualização

Page 63: Weka básico

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.

Page 64: Weka básico

Exemplo  –  Curva  ROC  

ROC para determinado label de classe

Container para o ROC

Painel para o container

JFrame

Page 65: Weka básico

Exemplo – Curva ROC – Classe 0

Page 66: Weka básico

Exemplo – Curva ROC – Classe 1

Page 67: Weka básico

Visualização  –  Gráfico  de  Árvores  

Ê  Visualização dos gráficos internos do modelo gerado;

Ê  Árvores de Decisão;

Ê  Rede Bayesiana;

Ê  weka.core.treevisualizer;

Page 68: Weka básico

Visualização  –  Gráfico  de  Árvores  

Page 69: Weka básico

Visualização  –  Gráfico  de  Árvores  

Page 70: Weka básico

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.

Page 71: Weka básico

Obrigada.

Page 72: Weka básico

WEKA - Basics Docente: Prof. Dr. Ádamo Lima de Santana

Discente: Lilian de Jesus Chaves Dias Abril – 2013