Uploaded by maduque7302

Marcos Duque - Classificacao WEKA

advertisement
UNIVERSIDADE CATÓLICA DE BRASÍLIA – UCB
PROGRAMA DE PÓS-GRADUAÇÃO STRICTO SENSU EM GOVERNANÇA, TECNOLOGIA E
INOVAÇÃO (MGTI)
EXERCÍCIO DE CLASSIFICAÇÃO
Ferramenta WEKA com árvore de decisão
Mestrando: Marcos André Duque - UC 20150209
Professores: Dr. Hércules Prado
Dr. Remis Balaniuk




Base de dados utilizada: “glass.arff” (fonte: WEKA)
Total inicial de instancias: 214;
Total inicial de atributos: 10, sendo 09 numéricos e 01 nominal (Type);
Software utilizado na análise: WEKA, versão 3.8.5.
A análise dos dados foi dividida em três etapas:
1. Pré-processamento
1.1. Verificação das anomalias
1.1.1. Campos vazios: não identificados;
Figura 1: Pré-processamento – verificação de campos vazios
1.1.2. Campos com valores inesperados ou inconsistentes: não identificados ao verificar a
base de dados pelo “viewer” do Weka;
Figura 2: Pré-processamento – verificação de campos com valores inesperados ou inconsistentes
1.1.3. Campos com “Outliers” e “ExtremeValue”:
1.1.3.1. Para
identificação,
foi
empregado
o
filtro
“weka.filters.unsupervised.attribute.InterquartileRange”.
O
filtro
criou
automaticamente mais dois atributos conforme figura 3, chamados “Outlier” e
“ExtremeValue”
Figura 3: Criação automática dos atributos Outline e ExtermeValue após filtro “weka.filters.unsupervised.attribute.InterquartileRange”
No atributo “Outliers” pode-se verificar, conforme configuração default do filtro, 16
“Outliers” e 198 “não Outliers”. Já no atributo “ExtremeValue”, pode-se verificar, conforme
configuração default do filtro, 42 “ExtremeValue” e 172 “não ExtremeValue”.
Figura 4: Resultados dos atributos Outline e ExtermeValue após filtro “weka.filters.unsupervised.attribute.InterquartileRange”
1.1.3.2. Para
remoção,
foi
empregado
o
filtro
“weka.filters.unsupervised.instance.RemoveWithValues”. O filtro foi configurado
da seguinte forma:
 Para remoção dos 16 “Outliers”, o primeiro passo foi configurar ao filtro o índice
do atributo “Outlier” (no caso, atributo 11) e configurar o índice nominal do
resultado a deletar como “last”, uma vez que o segundo resultado no atributo é o
correspondente aos “outliers”
Figura 5: Configurando o filtro “weka.filters.unsupervised.instance.RemoveWithValues” para remoção dos 16 “Outliers”

Como resultado, o número de instancias caiu de 214 para 198 (214 – 16 = 198) e
o número de “ExtremeValue” caiu de 42 para 35.
Figura 6: Resultados obtidos após remoção dos 16 “Outliers” com o filtro “weka.filters.unsupervised.instance.RemoveWithValues”

Para remoção dos 35 “ExtremeValues” remanescentes, nova configuração do filtro
foi realizada, agora com o índice do atributo “ExtremeValue” (no caso, atributo
12) e configurar o índice nominal do resultado a deletar como “last”, uma vez que
o segundo resultado no atributo é o correspondente aos “ExtremeValues”.
Figura 7: Configurando o filtro “weka.filters.unsupervised.instance.RemoveWithValues” para remoção dos 35 “ExtremeValues”
remanescentes.

Como resultado, o número de instancias caiu de 198 para 163 (198 – 35 = 163) e
observamos ao visualizar os valores da classe (Type) que um de seus “labels” foi
reduzido a zero, podendo ser eliminado.
Figura 8: Resultados obtidos após remoção dos 35 “ExtremeValues” remanescentes com o filtro
“weka.filters.unsupervised.instance.RemoveWithValues”
1.1.3.3. Para remoção do “label” “vehic wind non-float”, o arquivo
“glass.sem.outlier.e.extremevalue.arff”, foi aberto no NotePad++ para edição,
eliminando do @attribute Type, a descrição 'vehic wind non-float'.
Figura 9: Edição do “glass.sem.outlier.e.extremevalue.arff”, no NotePad++, eliminando do @attribute Type, a descrição 'vehic wind non-float'


1.1.3.4.
Após os resultados, verificou-se:
Que o atributo Ba possuía todos seus campos com valor “zero” sendo, portanto, possível sua
supressão e
Que há um desbalanceamento significativo nos valores de classe, sendo indicada a redução da
dimensionalidade pelo uso do filtro “weka.filters.supervised.instance.ClassBalancer”.
Figura 10: Labels da classe “Type” da Base “glass.sem.outlier.e.extremevalue.arff” editada no NotePad++ sem o Label 'vehic wind non-float',
comparada com a mesma base, suprimido o atributo “Ba” e com classes balanceadas
1.2. Análise das distribuições: apuradas nos histogramas para cada atributo
Foi verificado que as distribuições não eram gaussianas e que os desvios padrão eram muito baixos.
Assim sendo, foi realizada a tentativa de normalização dos valores pelo emprego do filtro
“weka.filters.unsupervised.attribute.Normalize”. Entretanto, os desvios padrão resultantes tiveram
um incremento muito discreto, permanecendo ainda baixos.
A seguir apresentamos tabela comparativa das distribuições antes e depois de todas as correções das
anomalias procedidas:
ANTES DA VERIFICAÇÃO DAS ANOMALIAS
DEPOIS DA VERIFICAÇÃO DAS ANOMALIAS
(FIG. 11, COM 214 INSTÂNCIAS, 10 ATRIBUTOS E 7 LABELS)
(FIG. 12, COM 163 INSTÂNCIAS, 12 ATRIBUTOS E 6 LABELS)
RI
Simétrico e unimodal
Multimodal
NA
Bimodal
Bimodal
MG
Multimodal
Multimodal
AI
Simétrico e unimodal
Bimodal
SL
Assimétrica Negativa
Bimodal
K
Assimétrica Negativa
Multimodal
CA
Assimétrica Positiva
Multimodal
BA
Simétrico e unimodal
----------
FE
Assimétrica Positiva
Assimétrica Positiva
TYPE
(CLASS)
Multimodal
Topo - balanceado
@
Figura 11: Histograma dos atributos antes da verificação das anomalias
Figura 12: Histograma dos atributos depois da verificação das anomalias e da supressão do atributo “Ba”
Os atributos “Outlier” e “ExtremeValue” foram então removidos, ficando a base de dados com
163 instancias e 9 atributos:
2. Mineração e classificação
Foi empregado o modelo classificatório baseado em árvore de decisão utilizando quatro
algoritmos diferentes da ferramenta WEKA para a classe (Type), da base de dados
“glass.sem.outlier.e.extremevalue.sematributoBa.reduzdimensional.normalizado”, com opção de
teste por validação cruzada (folds = 10)
Algoritmo
Tam. árvore
Tx Assertividade ou acurácia
Tx Erro
Precisão
ROC Area
J48
17
61.7323 %
38.2677 %
52,6%
80,5%
RandomForest
100*
68.0933 %
31.9067 %
61,5%
90,1%
RandomTree
69
62.1372 %
37.8628 %
59,9%
77,2%
REPTree
15
56.6954 %
43.3046 %
49,6%
79,1%
* (Bagging with 100 iterations and base learner)
3. Pós-processamento.
Na etapa de pós processamento de dados foi constatado que com o algoritmo RandomForest,
o modelo apresentou as melhores taxas de assertividade, precisão e curva de área ROC, indicando
que se trata, com esse algoritmo, de um modelo genérico.
=== Run information ===
Scheme:
weka.classifiers.trees.RandomForest -P 100 -I 100 -num-slots 1 -K 0 -M 1.0 -V 0.001 -S 1
Relation:
Glass-weka.filters.unsupervised.attribute.InterquartileRange-Rfirst-last-O3.0-E6.0weka.filters.unsupervised.instance.RemoveWithValues-S0.0-C11-Llast-weka.filters.unsupervised.instance.RemoveWithValues-S0.0-C12-Llastweka.filters.unsupervised.attribute.Remove-R8-weka.filters.supervised.instance.ClassBalancer-num-intervals10weka.filters.unsupervised.attribute.Normalize-S1.0-T0.0-weka.filters.unsupervised.attribute.Remove-R10-11
Instances: 163
Attributes: 9
RI
Na
Mg
Al
Si
K
Ca
Fe
Type
Test mode: 10-fold cross-validation
=== Classifier model (full training set) ===
RandomForest
Bagging with 100 iterations and base learner
weka.classifiers.trees.RandomTree -K 0 -M 1.0 -V 0.001 -S 1 -do-not-check-capabilities
Time taken to build model: 0.03 seconds
=== Stratified cross-validation ===
=== Summary ===
Correctly Classified Instances
110.9921
68.0933 %
Incorrectly Classified Instances
52.0079
Kappa statistic
0.6171
Mean absolute error
0.1436
Root mean squared error
0.2713
Relative absolute error
50.9106 %
Root relative squared error
71.5908 %
Total Number of Instances
163
31.9067 %
=== Detailed Accuracy By Class ===
Weighted Avg.
TP Rate
FP Rate
Precision Recall
F-Measure MCC
0,761
0,191
0,443
0,761
0,560
0,470
0,907
0,701
build wind float
0,762
0,149
0,506
0,762
0,608
0,527
0,902
0,737
build wind non-float
0,563
0,033
0,771
0,563
0,650
0,603
0,902
0,675
vehic wind float
1,000
0,000
1,000
1,000
1,000
1,000
1,000
1,000
containers
1,000
0,006
0,969
1,000
0,984
0,981
0,998
0,990
tableware
0,000
0,003
0,000
0,000
0,000
-0,023
0,693
0,494
headlamps
0,681
0,064
0,615
0,681
0,634
0,593
0,901
0,766
d
e
f
<-- classified as
=== Confusion Matrix ===
a
b
c
ROC Area PRC Area
Class
20.68
3.24
3.24
0
0
0
|
a = build wind float
3.88
20.7
1.29
0
0.86
0.43 |
b = build wind non-float
8.49
3.4
15.28
0
0
0
|
c = vehic wind float
0
0
0
27.17
0
0
|
d = containers
0
0
0
0
27.17
0
|
e = tableware
13.58
13.58
0
0
0
0
|
f = headlamps
Download