WEKA
Jacques Robin
João Batista
Marcelino Pereira
junho/2001
Roteiro

Introdução

Conceitos

Exemplos práticos

Chamada ao aplicativo
WEKA

Universidade de Waikato - Nova Zelândia

Waikato Environment for Knowledge Analysis

Coleção de algoritmos de aprendizagem de máquina
para resolução de problemas de Data Mining

implementado em Java

open source software

http://www.cs.waikato.ac.nz/ml/weka/
Métodos de aprendizagem suportados

decision tree inducers

rule learners

naive Bayes

decision tables

locally weighted regression

support vector machines

instance-based learners

logistic regression

voted perceptrons
Origem dos Dados

Arquivo local no formato .arff

Arquivo em URL no formato .arff

Tabelas de Banco de Dados via JDBC
Preparando os dados

O weka lê os dados no formato .arff
• Uma lista de todas as instâncias, onde o valor dos atributos
são separados por vírgula mais um cabeçalho

Ex(weather.arff):
@relation weather
%Nome do arquivo
@attribute outlook {sunny, overcast, rainy}
@attribute temperature real %Atributo e tipo
@attribute humidity real
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}
@data
%Início dos dados
sunny,85,85,FALSE,no
overcast,83,86,FALSE,yes
Weka: Aprendizado de árvores de decisão
Dados do tempo
 Algoritmo weka.classifier.j48.J48

>75
<=75
Aprendizado de árvores de decisão
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
Size of the tree :
:
5
8
Gerando regras de associação
APRIORI
 Algoritmo para minerar regras de associação.

IF
IF
IF
IF
IF
IF
IF
umidade = normal AND vento = não THEN jogar = sim
umidade = normal AND jogar = sim THEN vento = não
vento = não AND jogar = sim THEN umidade = normal
umidade = normal THEN vento = não AND jogar = sim
vento = não THEN umidade = normal AND jogar = sim
jogar = sim THEN vento = não AND umidade = normal
? THEN vento = não AND umidade = normal AND jogar = sim
Saída do algoritmo
Best rules found:
1.temperature=cool humidity=normal windy=FALSE
==> play=yes
conf:(1)
2. temperature=cool windy=FALSE play=yes
==> humidity=normal
conf:(1)
3. outlook=overcast temperature=hot windy=FALSE
==> play=yes
conf:(1)
4. temperature=cool windy=FALSE
==> humidity=normal play=yes
conf:(1)
5. outlook=rainy temperature=mild windy=FALSE
==> play=yes
conf:(1)
Carregando Dados a partir de Tabelas

Exemplo:
• Open DB
• SELECT * from dim_relcoords where id_relcoords < 1000
Y
CblMbl
Cfl
X
Cbr
Cfr
Carregando Dados a partir de Tabelas
J48 pruned tree
-----------------Y <= 0
|
Y <= -17: CbrMbr (313.0/1.0)
|
Y > -17: CbrMbl (219.0)
Y > 0
|
Y <= 17: CblMbr (204.0)
|
Y > 17: CblMbl (264.0)
Number of Leaves
:
Size of the tree :
4
7
Carregando Dados a partir de Tabelas
=== Confusion Matrix ===
a
b
c
d
e
0
0
1
0
0
0 264
0
0
0
0
0 312
0
0
0
0
0 219
0
0
0
0
0 204
|
|
|
|
|
<-a
b
c
d
e
classified as
= No
= CblMbl
= CbrMbr
= CbrMbl
= CblMbr
Instalando o software
1. Crie um deretório ´weka´ dentro de ‘c:\temp’
• c:\temp\weka
2.Copiando os arquivos:
•
•
•
•
http://www.cin.ufpe.br/~robocup/weka
weka.jar
weka.bat
sql_driver.jar
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