190 likes | 405 Views
WEKA. Sistemas Inteligentes. jan/2003. Roteiro. Introdução Instalando e executando o Weka Construção de classificadores Algoritmos de aprendizagem suportados Formato dos dados Avaliação dos classificadores Estudo de Caso Considerações finais. Introdução.
E N D
WEKA Sistemas Inteligentes jan/2003
Roteiro • Introdução • Instalando e executando o Weka • Construção de classificadores • Algoritmos de aprendizagem suportados • Formato dos dados • Avaliação dos classificadores • Estudo de Caso • Considerações finais
Introdução • Waikato Environment for Knowledge Analysis • Universidade de Waikato - Nova Zelândia • Coleção de algoritmos para Mineração de Dados. • Implementado em Java • Open Source Software • Link: http://www.cs.waikato.ac.nz/ml/weka/
Instalando o software 1. Crie um diretório ´weka´ dentro de ‘c:\temp’ • c:\temp\weka 2.Copiando os arquivos: • http://www.cin.ufpe.br/~robocup/weka • weka.jar • weka.bat 3.Certifique-se de que os dados foram salvos no formato correto.
Executando o software • Inicialize o ambiente jdk 1.3 • menu: programs\Linguagens\Java\JDK1.3 • Entre no diretório ´weka’ que você criou • c:\temp\weka • Execute o script • Weka.bat • Escolha a opção: Explorer
Construção dos classificadores • Carregar arquivo contendo o conjunto de treinamento; • Selecionar algoritmo de aprendizagem; • Solicitar o Weka para construir o classificador e avaliar o Classificador.
Formato dos arquivos de entrada • Arquivos no formato .arff • Local ou • URL • Tabelas de Banco de Dados via JDBC
Carregando dados de um arquivo .arff • Formato • Cabeçalho + Dados (uma instância por linha sendo o valor dos atributos separados por vírgula) • Exemplo: weather.arff @relation weather % Nome da relação @attribute temperature real% Atributo e tipo @attribute outlook {sunny, overcast, rainy} @attribute humidity real @attribute windy {TRUE, FALSE} @attribute play {yes, no} @data% Início dos dados 88,sunny,85,FALSE,no 83,overcast,86,FALSE,yes
Selecionando algoritmo de aprendizagem • Na guia Classify escolha o classificador (classifier) e set os respectivos parâmetros de treinamento. • Classificadores que podem ser criados: • decision tree inducers • rule learners • naive Bayes • decision tables • locally weighted regression • support vector machines • ...
Selecionando algoritmo de aprendizagem • Selecione a maneira de avaliar o classificador gerado (Test options) . • Arquivo de treinamento; • Arquivo fornecido contendo o conjunto de teste; • Cross-validation sobre o arquivo contendo o conjunto de treinamento; • Porcentagem do arquivo contendo o conjunto de treinamento. • Pressione Start para construir e avaliar.
normal high Indução de árvores de decisão • Dados do tempo: ‘weather.nominal.arff’ • Algoritmo Id3: weka.classifiers.Id3 Id3 ------------------ outlook = sunny | humidity = high: no | humidity = normal: yes outlook = overcast: yes outlook = rainy | windy = TRUE: no | windy = FALSE: yes
Indução de árvores de decisão • Medidas de desempenho do classificador gerado. • Id3: avaliação por Stratified cross-validation === Summary === Correctly Classified Instances 11 78.5714 % Incorrectly Classified Instances 3 21.4286 % === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure Class 0.889 0.4 0.8 0.889 0.842 yes 0.6 0.111 0.75 0.6 0.667 no === Confusion Matrix === a b <-- classified as 8 1 | a = yes 2 3 | b = no
<=75 >75 Indução de árvores de decisão • Dados do tempo: ‘weather. arff’ • Algoritmo C4.5: weka.classifiers.j48.J48 J48 pruned tree ------------------ outlook = sunny | humidity <= 75: yes (2.0) | humidity > 75: no (3.0) outlook = overcast: yes (4.0) outlook = rainy | windy = TRUE: no (2.0) | windy = FALSE: yes (3.0) Number of Leaves : 5 Size of the tree : 8
Indução de árvores de decisão • Medidas de desempenho do classificador gerado. • C4.5: avaliação por Stratified cross-validation === Summary === Correctly Classified Instances 8 57.1429 % Incorrectly Classified Instances 6 42.8571 % === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure Class 0.778 0.8 0.636 0.778 0.7 yes 0.2 0.222 0.333 0.2 0.25 no === Confusion Matrix === a b <-- classified as 7 2 | a = yes 4 1 | b = no
Classificador Naive Bayes • Dados do tempo: ‘weather. arff’ • Algoritmo weka.classifiers.NaiveBayesSimple Class yes: P(C) = 0.625 Attribute outlook sunny overcast rainy 0.25 0.4166667 0.3333333 Attribute temperature Mean: 73 Std: 6.164414 Attribute humidity Mean: 79.11 Std: 10.215728 Attribute windy TRUE FALSE 0.36363636 0.63636364 Class no: P(C) = 0.375 Attribute outlook sunny overcast rainy 0.5 0.125 0.375 Attribute temperature Mean: 74.6 Std: 7.8930349 Attribute humidity Mean: 86.2 Std: 9.7313925 Attribute windy TRUE FALSE 0.57142857 0.42857143
Classificador Naive Bayes • Medidas de desempenho do classificador gerado. • NB: avaliação por Stratified cross-validation === Summary === Correctly Classified Instances 8 57.1429 % Incorrectly Classified Instances 6 42.8571 % === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure Class 0.778 0.8 0.636 0.778 0.7 yes 0.2 0.222 0.333 0.2 0.25 no === Confusion Matrix === a b <-- classified as 7 2 | a = yes 4 1 | b = no
Estudo de Caso: Categorização de Documentos • Representação dos documentos: • vetor de freqüência de ocorrência de termos dentro de cada documento(r). • vetor binário(b) ou nominal(n) indicando a ausência ou presença de cada termo no documento. • Classes: páginas web contendo ou não citações de publicações técnicas e científicas. • Arquivo de treinamento: ‘MarianaDatatrn*200.arff’ • Arquivo de teste: ‘MarianaDatatst*200.arff’ • Monte uma tabela Representação x Erro de Classificação obtido por cada classificador (ID3, C4.5 ou NaiveBayes). • Qual dos três classificadores melhor desempenha esta tarefa? Qual a melhor representação dos documentos?
Considerações Finais • O classificador Id3 só pode ser usado sobre arquivos de dados com atributos nominais. • Se o classificador NaiveBayesSimple não funcionar, tente o classificador NaiveBayes (mais robusto). • Para acessar os algoritmos implementados no Weka dentro um programa java veja a sessão 8.4 do ‘tutorial.pdf’. • Para informações mais precisas sobre os algoritmos implementados veja ‘Package Documentation.html’ (documentação javadoc do Weka).