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