introdução ao weka david menotti - ufpr · 2019-05-18 · 3 introdução 3 • weka é uma...
TRANSCRIPT
![Page 1: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/1.jpg)
Data Mining with Open Source Machine Learning Software in Java
David Menottiwww.inf.ufpr.br/menotti/am-182
Universidade Federal do Paraná (UFPR)Especialização em Engenharia Industrial 4.0
Introdução ao Weka
![Page 2: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/2.jpg)
2
Hoje
• Weka– Introdução– Como instalar– Datasets– Usando algoritmos de:
• Classificação• Clustering• Regressão
2
![Page 3: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/3.jpg)
3
Introdução
3
• Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados. Ele contém ferramentas para preparação de dados, classificação, regressão, agrupamento, mineração de regras de associação e visualização.
• Encontrada apenas nas ilhas da Nova Zelândia, a Weka é uma ave que não voa e tem uma natureza inquisitiva. O nome é pronunciado assim, e o pássaro soa assim.
© https://www.cs.waikato.ac.nz/ml/weka/index.html
![Page 4: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/4.jpg)
4
Introdução
4
• Weka é um software de código aberto emitido sob a GNU General Public License.
• Sim, é possível aplicar a Weka para processar big data e realizar aprendizado profundo (deep learning)!
© https://www.cs.waikato.ac.nz/ml/weka/index.html
![Page 5: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/5.jpg)
5
Introdução
5
• No site, existem vários cursos on-line gratuitos que ensinam aprendizado de máquina e mineração de dados usando o Weka. Confira no site os cursos para detalhes sobre quando e como se inscrever. Os vídeos dos cursos estão disponíveis no Youtube.
![Page 6: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/6.jpg)
6
Manual• Weka Manual
– (v3-6-8) 03/05/2012• http://www.nilc.icmc.usp.br/elc-ebralc2012/minicursos/WekaManual-3-6-8.pdf
– (v3-7-8) 21/01/2013• http://statweb.stanford.edu/~lpekelis/13_datafest_cart/WekaManual-3-7-8.pdf
6
![Page 7: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/7.jpg)
7
Como Instalar• Weka website (latest version 3.8/3.9)
– https://www.cs.waikato.ac.nz/ml/weka/
7
![Page 8: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/8.jpg)
8
Como Instalarhttps://www.cs.waikato.ac.nz/ml/weka/downloading.html
Basta baixar / executar Weka-3-8-2jre-x64.exeou
Basta baixar / executar Weka-3-8-2-x64.exe8
![Page 9: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/9.jpg)
9
Como Instalarhttps://www.cs.waikato.ac.nz/ml/weka/downloading.html
9
![Page 10: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/10.jpg)
10
CLI vs GUI• Início
10
![Page 11: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/11.jpg)
11
CLI vs GUI
11
![Page 12: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/12.jpg)
12
Atributos• Nominal: um de uma lista predefinida de valores
– e.g. vermelho, azul, amarelo
• Numérico: Um número real ou inteiro
• String: delimitada por “aspas duplas”
• Data
• Relational
12
![Page 13: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/13.jpg)
13
Arquivos ARFF• A representação das instâncias
• Consiste em:– Um cabeçalho (header): Descreve os tipos de
atributos e seus valores– Seção de dados: lista de dados separada por vírgula
13
![Page 14: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/14.jpg)
14
Exemplo de Arquivo ARFF% This is a toy example, the UCI weather dataset% Any relation to real weather is purely coincidental
@relation weather.symbolic
@attribute outlook {sunny, overcast, rainy}@attribute temperature {hot, mild, cool}@attribute humidity {high, normal}@attribute windy {TRUE, FALSE}@attribute play {yes, no}
@datasunny,hot,high,FALSE,nosunny,hot,high,TRUE,noovercast,hot,high,FALSE,yesrainy,mild,high,FALSE,yesrainy,cool,normal,FALSE,yesrainy,cool,normal,TRUE,noovercast,cool,normal,TRUE,yessunny,mild,high,FALSE,nosunny,cool,normal,FALSE,yesrainy,mild,normal,FALSE,yessunny,mild,normal,TRUE,yesovercast,mild,high,TRUE,yesovercast,hot,normal,FALSE,yesrainy,mild,high,TRUE,no 14
Comment
Nome do Dataset
Atributos
Classe / Meta
Dados/Valores
![Page 15: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/15.jpg)
15
ARFF % This is a toy example, the UCI weather dataset% Any relation to real weather is purely coincidental
@relation weather.symbolic
@attribute outlook {sunny, overcast, rainy}@attribute temperature {hot, mild, cool}@attribute humidity {high, normal}@attribute windy {TRUE, FALSE}@attribute play {yes, no}
@datasunny,hot,high,FALSE,nosunny,hot,high,TRUE,noovercast,hot,high,FALSE,yesrainy,mild,high,FALSE,yesrainy,cool,normal,FALSE,yesrainy,cool,normal,TRUE,noovercast,cool,normal,TRUE,yessunny,mild,high,FALSE,nosunny,cool,normal,FALSE,yesrainy,mild,normal,FALSE,yessunny,mild,normal,TRUE,yesovercast,mild,high,TRUE,yesovercast,hot,normal,FALSE,yesrainy,mild,high,TRUE,no 15
Comment
Nome do Dataset
Atributos
Classe / Meta
Dados/Valores
![Page 16: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/16.jpg)
1616
Abrindo um Dataset
![Page 17: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/17.jpg)
1717
Visualizando
![Page 18: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/18.jpg)
1818
Visualizando
![Page 19: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/19.jpg)
1919
Excel => CSV
![Page 20: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/20.jpg)
2020
Excel => CSV
![Page 21: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/21.jpg)
21
Software > Datasets
![Page 22: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/22.jpg)
22
WEKA Datasets
● Alguns datasets em formato ARFFhttp://storm.cis.fordham.edu/~gweiss/data-mining/datasets.html
● ReutersCorn-train.arff
● ReutersCorn-test.arff
● ReutersGrain-train.arff
● ReutersGrain-test.arff
● segment-challenge.arff
● segment-test.arff
● soybean.arff
● supermarket.arff
● vote.arff
● weather.arff
● weather.nominal.arff
● contact-lens.arff
● cpu.arff
● cpu.with-vendor.arff
● diabetes.arff
● glass.arff
● ionospehre.arff
● iris.arff
● labor.arff
![Page 23: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/23.jpg)
23
Classificação
• Como gerar:– uma árvore de decisão J48– um k-NN– Naive Bayes classifier– MLP– SVM– PCA
![Page 24: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/24.jpg)
24
Classify > Choose
![Page 25: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/25.jpg)
25
Classify > tree > J48
![Page 26: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/26.jpg)
26
Classify > tree > J48
![Page 27: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/27.jpg)
27
Classifier output
Árvore / Regras Geradas
![Page 28: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/28.jpg)
28
Visualize
Clique com botão direito
![Page 29: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/29.jpg)
29
Visualize
![Page 30: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/30.jpg)
30
Código em Javaimport java.awt.BorderLayout;import java.io.BufferedReader;import java.io.FileReader;
import weka.classifiers.*;import weka.classifiers.trees.J48;import weka.core.Instances;import weka.gui.treevisualizer.PlaceNode2;import weka.gui.treevisualizer.TreeVisualizer;
public class WekaJ48 {public static void main(String args[]) throws Exception { // train classifier J48 cls = new J48(); Instances data = new Instances(new BufferedReader(new FileReader("D:\\sample.arff"))); data.setClassIndex(data.numAttributes() - 1); cls.buildClassifier(data);
© https://stackoverflow.com/questions/9175116/visualizing-weka-classification-tree
![Page 31: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/31.jpg)
31
Código em Java // display classifier final javax.swing.JFrame jf = new javax.swing.JFrame("Weka Classifier Tree Visualizer: J48"); jf.setSize(500,400); jf.getContentPane().setLayout(new BorderLayout()); TreeVisualizer tv = new TreeVisualizer(null, cls.graph(), new PlaceNode2()); jf.getContentPane().add(tv, BorderLayout.CENTER); jf.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { jf.dispose(); } });
jf.setVisible(true); tv.fitToScreen(); }}
© https://stackoverflow.com/questions/9175116/visualizing-weka-classification-tree
![Page 32: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/32.jpg)
32
Classify > Lazy > k-NN (lBk)
![Page 33: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/33.jpg)
33
Classify > function > SVM
• Deve-se instalar o LibSVM– LIBSVM - A Library for Support Vector
Machines– https://www.csie.ntu.edu.tw/~cjlin/libsvm/
![Page 34: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/34.jpg)
34
Classify > function > SMO
![Page 35: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/35.jpg)
35
Classify > function > MLP
![Page 36: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/36.jpg)
36
Select Attributes > PCA
![Page 37: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/37.jpg)
37
Visualizar
![Page 38: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/38.jpg)
38
Clustering & Regressão
• Como gerar:– Um kMeans– Uma regressão linear
![Page 39: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/39.jpg)
39
Cluster > SimpleKmeans
![Page 40: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/40.jpg)
40
Cluster > SimpleKmeans
![Page 41: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/41.jpg)
41
Classify > LinearRegression
![Page 42: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/42.jpg)
42
Classify > LinearRegression
![Page 43: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/43.jpg)
43
![Page 44: Introdução ao Weka David Menotti - UFPR · 2019-05-18 · 3 Introdução 3 • Weka é uma coleção de algoritmos de aprendizado de máquina para tarefas de mineração de dados](https://reader030.vdocuments.site/reader030/viewer/2022040819/5e65a59633914743212fb4d5/html5/thumbnails/44.jpg)
44
References
• Weka 3: Data Mining Software in Java– https://www.cs.waikato.ac.nz/ml/weka/
• Weka Datasets– http://storm.cis.fordham.edu/~gweiss/data-mining/da
tasets.html