Commit a2b26122 authored by bbguimaraes's avatar bbguimaraes
Browse files

Added section on results by dataset.

parent 880b7199
......@@ -660,15 +660,245 @@ Algoritmo iterativo para o problema da otimização de uma máquina de vetor de
\end{itemize}
\end{enumerate}
\iffalse
Os testes foram executados para todos os algoritmos, usando as configurações descritas nas seções anteriores. A tabela \ref{tbl:dev_exec_summary} mostra um resumo das execuções. As colunas dessa tabela representam, da esquerda para a direita, a categoria do algoritmo, o algoritmo, o número de execuções do experimento, o número de \emph{folds} utilizado no \emph{cross-validation}, o número total de execuções do algoritmo e os parâmetros testados. Essa última coluna utiliza a sintaxe do \emph{CVParameterSelection} para descrição dos parâmetros, onde são indicados o nome do parâmetro, os valores mínimos e máximos que serão testados e o número de valores testados.
\vspace{0.5cm}
\begin{table}[h]
\scriptsize
\centering
\caption{Resumo das execuções}
\label{tbl:dev_exec_summary}
\vspace{0.5cm}
\begin{tabular}{|l|c|c|c|c|c|c|c|c|}
\hline
\multirow{2}{*}{\textbf{Método}} & \multirow{2}{*}{\textbf{Algoritmo}} & \multirow{2}{*}{\textbf{Runs}} & \multirow{2}{*}{\textbf{Folds}} & \multirow{2}{*}{\textbf{Execuções}} & \multicolumn{4}{c|}{\textbf{Parâmetros testados}} \\
\cline{6-9}
& & & & & \textbf{Nome} & \textbf{Min.} & \textbf{Max.} & \textbf{n} \\
\hline
Redes neurais & MultilayerPerceptron & 10 & 10 & 200 & \multicolumn{4}{c|}{-} \\
\hline
\multirow{3}{*}{Árvores de decisão} & ID3 & 10 & 10 & 200 & \multicolumn{4}{c|}{-} \\
\cline{2-9}
& \multirow{2}{*}{J48} & \multirow{2}{*}{10} & \multirow{2}{*}{10} & \multirow{2}{*}{200} & M & 1 & 10 & 10 \\
\cline{6-9}
& & & & & C & 0.1 & 0.5 & 5 \\
\hline
\multirow{2}{*}{LVQ} & \multirow{2}{*}{Lvq2\_1} & \multirow{2}{*}{10} & \multirow{2}{*}{10} & \multirow{2}{*}{200} & R & 0.1 & 1 & 10 \\
\cline{6-9}
& & & & & W & 0.1 & 0.5 & 5 \\
\hline
\multirow{2}{*}{Redes bayesianas} & NaiveBayes & 10 & 10 & 200 & \multicolumn{4}{c|}{-} \\
\cline{2-9}
& BayesNet & 10 & 10 & 200 & \multicolumn{4}{c|}{-} \\
\hline
SVM & SMO & 10 & 10 & 200 & C & 1 & 5 & 5 \\
\hline
\multirow{4}{*}{Imunológicos} & AIRS & 10 & 10 & 200 & \multicolumn{4}{c|}{-} \\
\cline{2-9}
& Immunos & 1 & 10 & 20 & G & 1 & 4 & 4 \\
\cline{2-9}
& \multirow{2}{*}{CLONALG} & \multirow{2}{*}{10} & \multirow{2}{*}{10} & \multirow{2}{*}{200} & G & 5 & 20 & 4 \\
\cline{6-9}
& & & & & B & 0.1 & 0.5 & 5 \\
\hline
\end{tabular}
\end{table}
\vspace{0.5cm}
Todos os testes foram executados em uma mesma máquina, serialmente, e a máquina não foi utilizada para nenhum outro processamento durante os testes. Isso foi feito para que não houvesse interferência externa ou interna nos resultados. As configurações da máquina relevantes para o experimento são mostradas na tabela \ref{tbl:dev_machine_specs}. É importante notar nesse tipo de experimento que é impossível isolar um sistema computacional completamente.
Uma técnica comumente usada é executar os testes repetidas vezes, escolhendo para comparação aquele que tiver o melhor resultado. Isso foi feito nesse trabalho através de uma funcionalidade do próprio módulo \emph{Experimenter} do WEKA, que permite configurar o número de execuções do experimento. Os resultados de todas as execuções são gravados no arquivo de saída e o melhor foi escolhido na coleta dos resultados.
\iffalse write section referenced below =) \fi
Foi utilizado o código padrão presente na versão 3.6.1 do WEKA. As únicas exceções são as descritas na seção \ref{}, mas essas alterações não têm impacto sobre a performance dos algoritmos.
\vspace{0.5cm}
\begin{table}[h]
\scriptsize
\centering
\caption{Configurações da máquina onde os testes foram executados}
\label{tbl:dev_machine_specs}
\vspace{0.5cm}
\begin{tabular}{c c}
\multicolumn{2}{c}{\textbf{Máquina de testes}} \\
\hline
Tipo & Máquina virtual (virtualbox) \\
Sistema operacional & Ubuntu 32-bit \\
Processador & Intel(R) Pentium(R) Dual CPU E2200 @ 2.20GHz \\
Memória & DDR2 800MHz 1024Mb \\
\end{tabular}
\end{table}
\vspace{0.5cm}
\subsection{Resultados por conjunto de dados}
Nessa seção, são apresentadas as tabelas com os resultados dos testes agrupados pelos conjuntos de dados (tabelas \ref{tbl:dev_table_first} à \ref{tbl:dev_table_last}). A separação por conjunto de dados facilita a comparação dos valores, já que há uma clara separação entre os resultados de cada um. A próxima seção fará uma análise dos resultados para cada algoritmo.
# Execuções
As tabelas \ref{tbl:dev_table_aust_correct} e \ref{tbl:dev_table_ger_correct} mostram o percentual de instâncias corretamente classificadas e o erro médio, ordenadas pelo primeiro\footnote{Os valores para o conjunto de dados \emph{cr.ger} podem parecer estranhos, mas isso se deve à maneira como os dados foram divididos. O número total de instâncias é 1000, e foi utilizado \emph{cross-validation} de 10 \emph{folds}, com 100 instâncias cada. Dessa forma, a porcentagem de instâncias corretamente classificadas é sempre um número inteiro.}. Geralmente, um valor maior de instâncias classificadas corretamente implica um erro menor, mas esse nem sempre é o caso. Em um classificador binário, um erro implica uma instância classificada corretamente. Caso o critério de avaliação tivesse valores contínuos, seria possível identificar \emph{quão} errada foi a classificação, e não apenas se ela foi correta ou não. Nesse caso, o erro médio seria uma medida muito mais importante.
# Resultados
\vspace{0.5cm}
\begin{table}[h!]
\centering
\caption{Porcentagem correta e error médio (cr.aust)}
\label{tbl:dev_table_aust_correct}
\label{tbl:dev_table_first}
\vspace{0.5cm}
\begin{tabular}{|l|c|c|c|c|}
\hline
\textbf{Algoritmo} & \textbf{perc correct} & \textbf{root mean square error} \\
\hline
J48 & 95,65\% & 0.2364105060 \\ \hline
MultilayerPerceptron & 94,20\% & 0.2497022089 \\ \hline
BayesNet & 94,20\% & 0.2264276254 \\ \hline
SMO & 92,75\% & 0.2691909510 \\ \hline
AIRS & 92,75\% & 0.2691909510 \\ \hline
NaiveBayes & 88,41\% & 0.3021207800 \\ \hline
ID3 & 86,96\% & 0.3096584495 \\ \hline
Immunos & 91.30\% & 0.2948839123 \\ \hline
Lvq2\_1 & 79.71\% & 0.4504426165 \\ \hline
CLONALG & 76.81\% & 0.4815434123 \\ \hline
\end{tabular}
\end{table}
\vspace{0.5cm}
\vspace{0.5cm}
\begin{table}[h!]
\centering
\caption{Porcentagem correta e erro médio (cr.ger)}
\label{tbl:dev_table_ger_correct}
\vspace{0.5cm}
\begin{tabular}{|l|c|c|c|c|}
\hline
\textbf{Algoritmo} & \textbf{perc correct} & \textbf{root mean square error} \\
\hline
NaiveBayes & 84,00\% & 0.3655059498 \\ \hline
BayesNet & 84,00\% & 0.3553319820 \\ \hline
SMO & 83,00\% & 0.4123105626 \\ \hline
MultilayerPerceptron & 81,00\% & 0.4251917863 \\ \hline
J48 & 80,00\% & 0.3856184540 \\ \hline
Lvq2\_1 & 76,00\% & 0.4898979486 \\ \hline
Immunos & 75,00\% & 0.5000000000 \\ \hline
CLONALG & 75,00\% & 0.5000000000 \\ \hline
AIRS & 74,00\% & 0.5099019514 \\ \hline
ID3 & 71,00\% & 0.5248906592 \\ \hline
\end{tabular}
\end{table}
\vspace{0.5cm}
As tabelas \ref{tbl:dev_table_aust_youden} e \ref{tbl:dev_table_ger_youden} mostram o índice de Youden e as taxas de falsos positivos e falsos negativos, ordenadas pelo primeiro. O índice de Youden é um cálculo que combina a taxa de falsos positivos e negativos, dando maior relevância onde os dois valores são menores.
\vspace{0.5cm}
\begin{table}[h!]
\centering
\caption{Falsos positivos e falsos negativos (cr.aust)}
\label{tbl:dev_table_aust_youden}
\vspace{0.5cm}
\begin{tabular}{|l|c|c|c|c|}
\hline
\textbf{Algoritmo} & \textbf{false pos} & \textbf{false neg} \\
\hline
BayesNet & 0.0666666667 & 0.0512820513 \\ \hline
NaiveBayes & 0.2333333333 & 0.0256410256 \\ \hline
MultilayerPerceptron & 0.0666666667 & 0.0512820513 \\ \hline
SMO & 0.0000000000 & 0.1282051282 \\ \hline
AIRS & 0.0333333333 & 0.1025641026 \\ \hline
CLONALG & 0.2580645161 & 0.2105263158 \\ \hline
Immunos & 0.0666666667 & 0.1025641026 \\ \hline
Lvq2\_1 & 0.4000000000 & 0.0512820513 \\ \hline
ID3 & 0.1379310345 & 0.1025641026 \\ \hline
J48 & 0.0645161290 & 0.0263157895 \\ \hline
\end{tabular}
\end{table}
\vspace{0.5cm}
\vspace{0.5cm}
\begin{table}[h!]
\centering
\caption{Falsos positivos e falsos negativos (cr.ger)}
\label{tbl:dev_table_ger_youden}
\vspace{0.5cm}
\begin{tabular}{|l|c|c|c|c|}
\hline
\textbf{Algoritmo} & \textbf{false pos} & \textbf{false neg} \\
\hline
BayesNet & 0.3333333333 & 0.0857142857 \\ \hline
NaiveBayes & 0.3666666667 & 0.0714285714 \\ \hline
MultilayerPerceptron & 0.4000000000 & 0.1000000000 \\ \hline
SMO & 0.3666666667 & 0.0857142857 \\ \hline
AIRS & 0.5333333333 & 0.1428571429 \\ \hline
CLONALG & 0.8333333333 & 0.0000000000 \\ \hline
Immunos & 0.6000000000 & 0.1000000000 \\ \hline
Lvq2\_1 & 0.6333333333 & 0.0714285714 \\ \hline
ID3 & 0.5666666667 & 0.1470588235 \\ \hline
J48 & 0.5333333333 & 0.0571428571 \\ \hline
\end{tabular}
\end{table}
\vspace{0.5cm}
As tabelas \ref{tbl:dev_table_aust_times} e \ref{tbl:dev_table_aust_times} mostram os tempos de treinamento e teste, ordenados pelo primeiro. Em todos os casos, o tempo de treinamento é muito superior ao tempo de teste. Isso é comum na maioria dos algoritmos. É importante notar que o tempo de treinamento é sempre constante, enquanto outros têm um tempo alto de treinamento inicial, mas os treinamentos subsequentes têm um custo muito menor. Esse fator não foi avaliado nesse experimento.
\vspace{0.5cm}
\begin{table}[h!]
\centering
\caption{Tempos de treinamento e teste em segundos (cr.aust)}
\label{tbl:dev_table_aust_times}
\vspace{0.5cm}
\begin{tabular}{|l|c|c|c|c|}
\hline
\textbf{Algoritmo} & \textbf{time training} & \textbf{time testing} \\
\hline
BayesNet & 0.029 & 0.000 \\ \hline
NaiveBayes & 0.002 & 0.001 \\ \hline
MultilayerPerceptron & 17.993 & 0.003 \\ \hline
SMO & 57.207 & 0.001 \\ \hline
AIRS & 23.238 & 0.012 \\ \hline
CLONALG & 175.078 & 0.002 \\ \hline
Immunos & 69.876 & 0.007 \\ \hline
Lvq2\_1 & 5.383 & 0.001 \\ \hline
ID3 & 0.032 & 0.005 \\ \hline
J48 & 2.715 & 0.000 \\ \hline
\end{tabular}
\end{table}
\vspace{0.5cm}
\vspace{0.5cm}
\begin{table}[h!]
\centering
\caption{Tempos de treinamento e teste em segundos (cr.ger)}
\label{tbl:dev_table_ger_times}
\label{tbl:dev_table_last}
\vspace{0.5cm}
\begin{tabular}{|l|c|c|c|c|}
\hline
\textbf{Algoritmo} & \textbf{time training} & \textbf{time testing} \\
\hline
BayesNet & 0.176 & 0.007 \\ \hline
NaiveBayes & 0.004 & 0.001 \\ \hline
MultilayerPerceptron & 58.003 & 0.012 \\ \hline
SMO & 118.713 & 0.001 \\ \hline
AIRS & 15.037 & 0.034 \\ \hline
CLONALG & 331.366 & 0.003 \\ \hline
Immunos & 199.922 & 0.017 \\ \hline
Lvq2\_1 & 4.214 & 0.001 \\ \hline
ID3 & 0.089 & 0.000 \\ \hline
J48 & 5.480 & 0.000 \\ \hline
\end{tabular}
\end{table}
\vspace{0.5cm}
\subsection{Resultados por algoritmo}
A análise dos tempos de treinamento e testes do AIRS deve levar em consideração que o critério de parada desse algoritmo não é um número de iterações fixo. O processo de treinamento só é finalizado quando um limiar pré-definido de similaridade é atingido. Esse limiar é um parâmetro para a execução do algoritmo e pode ser configurado (assim como outros parâmetros) caso o tempo de execução seja considerado um fator mais importante que os outros.
\iffalse
# Análises
# Conclusões
síntese
contribuições
trabalhos futuros
# Fim =)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment