INF 1771 Inteligência Artificial  
Aula 19 Bibliotecas e Ferramentas para  
Aprendizado de Máquina  
Edirlei Soares de Lima  
<elima@inf.puc-rio.br>  
LibSVM  
Biblioteca com implementação atual e bem  
otimizada de Support Vector Machine  
(SVM).  
É escrita originalmente em C e Java, mas  
possui versões em C#, Python, Ruby, Perl,  
Haskell, Lisp, PHP, CUDA...  
Versão atual 3.12.  
LibSVM  
LibSVM:  
http://www.csie.ntu.edu.tw/~cjlin/libsvm/  
GNUPlot:  
http://sourceforge.net/projects/gnuplot/files/gnupl  
ot/4.4.3/gp443win32.zip/download  
Python:  
http://python.org/download/releases/2.7.2/  
Exemplos de Datasets:  
http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/data  
sets/  
LibSVM  
Instalação:  
Descompacte: libsvm-3.11.zip e  
gp443win32.zip  
Instale: python-2.7.2.msi  
Obs: É necessário usar a versão 2.7 do Python.  
LibSVM  
Configuração:  
Edite o arquivo: libsvm-3.11\tools\easy.py  
Substitua a linha 25:  
gnuplot_exe = r"c:\tmp\gnuplot\binary\pgnuplot.exe“  
Pelo caminho do GNUPlot. Exemplo:  
gnuplot_exe = r" C:\gp443win32\gnuplot\binary\ gnuplot.exe“  
LibSVM  
Execução:  
Considerando os arquivos train.txt e test.txt como  
bases de treinamento e teste, o processo de  
treinamento e teste é executado pela seguinte linha  
de comando:  
C:\Python27\python.exe easy.py train.txt test.txt  
LibSVM  
Formato do arquivo de treinamento/testes:  
(Classe) (Atrib1ID):(Atrib1) (Atrib2ID):(Atrib2) ... (AtribNID):(AtribN)  
Exemplo:  
8
6
3
8
3
1:47 2:100 3:27 4:81 5:57 6:37 7:26  
1:100 2:100 3:88 4:99 5:49 6:74 7:17  
1:50 2:84 3:66 4:100 5:75 6:75 7:51  
1:48 2:96 3:62 4:65 5:88 6:27 7:21  
2:83 3:29 4:100 5:88 6:95 7:64  
LibSVM  
Avaliação dos Resultados:  
Precisão geral: Valor do accuracy exibido no console.  
Arquivos Gerados:  
Train.txt.scale e Test.txt.scale Contém os dados normalizados.  
Train.txt.range e Test.txt.range Valor mínimo e máximo dos atributos.  
Train.txt.scale.out Contém os resultados parciais obtidos com diferentes  
parâmetros durante o treinamento.  
Train.txt.scale.png Gráfico com a variação dos resultados obtidos com  
diferentes parâmetros durante o treinamento.  
Test.txt.predict Resultado da classificação dos exemplos de teste.  
Train.txt.model Modelo do classificador treinado.  
Weka  
Ferramenta e biblioteca completa para tarefas  
de aprendizado de máquina.  
Possui uma grande quantidade de algoritmos  
de aprendizado de máquina.  
Implementado na linguagem Java.  
Versão atual: 3.6  
Weka  
Weka:  
http://www.cs.waikato.ac.nz/ml/weka/  
Exemplos de Datasets:  
“C:\Program Files\Weka-3-6\data\”  
http://www.cs.waikato.ac.nz/ml/weka/index_datas  
ets.html  
Weka  
Formato do arquivo de treinamento/testes:  
Cabeçalho do arquivo:  
@
@
@
.
relation (DatasetName)  
attribute (AtribName1) (AtribType1)  
attribute (AtribName2) (AtribType2)  
.
@
@
@
attribute (AtribNameN) (AtribTypeN)  
attribute (Class) {(Class1, Class2, … ClassN)}  
data  
(
.
.
Atrib1), (Atrib2), … , (AtribN),(Class)  
Weka  
Formato do arquivo de treinamento/testes:  
Exemplo:  
@relation Activity_Recognition  
@attribute 'valor1' real  
@attribute 'valor2' real  
@attribute 'valor3' real  
@attribute 'class' {0,1,2,3,4,5,6,7,8,9,10}  
@data  
0
0
0
0
.24679,0.210083,0.0873606,0  
.546452,0.811992,0.0163704,1  
.745887,0.114372,0.0957822,3  
.245887,0.214372,0.0857822,0  
Weka  
Interface para Testes:  
Weka  
Selecionando uma Base de Treinamento:  
Weka  
Selecionando um Algoritmo:  
Weka  
Alterando Parâmetros do Algoritmo:  
Weka  
Realizando Testes:  
Weka  
Analisando os Resultados:  
Weka  
Realizando Experimentos:  
Weka  
Realizando Experimentos:  
Weka  
Comparando os Resultados dos Experimentos: