Commit 0b710068 authored by bbguimaraes's avatar bbguimaraes
Browse files

Corrections.

parent bfe20ef7
\chapter{Desenvolvimento do experimento}
Nesse capítulo é apresentado desenvolvimento do experimento, baseado nos conceitos apresentados nos capítulos anteriores. Em especial, esse capítulo mostra como as ferramentas do capítulo \ref{chap:prop} (\nameref{chap:prop}) foram utilizadas para a comparação dos resultados dos algoritmos apresentados no capítulo \ref{chap:ais} (\nameref{chap:ais}).
Nesse capítulo é apresentado o desenvolvimento do experimento, baseado nos conceitos apresentados nos capítulos anteriores. Em especial, esse capítulo mostra como as ferramentas do capítulo \ref{chap:prop} (\nameref{chap:prop}) foram utilizadas para a comparação dos resultados dos algoritmos apresentados no capítulo \ref{chap:ais} (\nameref{chap:ais}).
\section{Preparação dos dados}
Os dois conjuntos de dados se encontravam em formato de texto, com os atributos separados por espaços e as instâncias separadas pelo caractere nova linha. As listagens \ref{lst:dev_data_ger} e \ref{lst:dev_data_aust} mostram as instâncias dos conjuntos de dados no formato do arquivo original (a primeira coluna representa o número da linha, e não faz parte dos dados)\footnote{Aqui são mostradas apenas as primeiras cinco instâncias dos conjuntos de dados \emph{Cr.Ger} e \emph{Cr.Aust}. Eles possuem 1000 e 650 instâncias, respectivamente}.
Os dois conjuntos de dados utilizados (\emph{cr.ger} e \emph{cr.aust}) se encontravam em formato de texto, com os atributos separados por espaços e as instâncias separadas pelo caractere nova linha. As listagens \ref{lst:dev_data_ger} e \ref{lst:dev_data_aust} mostram as instâncias dos conjuntos de dados no formato do arquivo original (a primeira coluna representa o número da linha, e não faz parte dos dados)\footnote{Aqui são mostradas apenas as primeiras cinco instâncias dos conjuntos de dados \emph{Cr.Ger} e \emph{Cr.Aust}. Eles possuem 1000 e 650 instâncias, respectivamente}.
\vspace{0.5cm}
\begin{lstlisting}[caption=Formato original dos dados (\emph{Cr.Ger}), label=lst:dev_data_ger]
......@@ -26,7 +26,7 @@ A11 24 A33 A40 4870 A61 A73 3 A93 A101 4 A124 53 A143 A153 2 A173 2 A191 A201 2
\end{lstlisting}
\vspace{0.5cm}
A preparação dos dados para a importação no WEKA consistiu na adição de uma seção de cabeçalho e da formatação dos dados para valores separados por vírgula (seção \ref{sec:prop_arff}), e o resultado é mostrado nas listagens \ref{lst:dev_arff_ger} e \ref{lst:dev_arff_aust} (essas listagens mostram apenas as primeiras cinco instâncias na seção de dados).
A preparação dos dados para a importação no WEKA consistiu na adição de uma seção de cabeçalho e da formatação dos dados para valores separados por vírgula (seção \ref{sec:prop_arff}) e o resultado é mostrado nas listagens \ref{lst:dev_arff_ger} e \ref{lst:dev_arff_aust} (essas listagens mostram apenas as primeiras cinco instâncias na seção de dados).
\vspace{0.5cm}
\begin{lstlisting}[caption=Arquivo ARFF do \emph{Cr.Ger}, label=lst:dev_arff_ger]
......@@ -116,9 +116,9 @@ Nesse trabalho foi utilizado o módulo \emph{Experimenter} na interface por linh
No WEKA, um filtro é um objeto que recebe um conjunto de dados como entrada e produz um conjunto de dados modificado. Esse é um processo comum da Mineração de Dados, chamado de pré-processamento dos dados: adicionar, remover ou alterar atributos, etc.
Um filtro comum, que é utilizado nesse trabalho, é o de criação de partições para o \emph{cross-validation}. Para esse filtro, são passados três argumentos. O argumento \emph{c} indica qual dos atributos é o atributo correspondente à classe, e é representado por um índice, iniciado em 1, conforme a declaração na seção de atributos do arquivo de dados (caso o padrão do WEKA seja usado, ou seja, o atributo de classe seja o último da listagem, pode ser utilizado o valor ``\emph{last}'' como argumento). O argumento \emph{N} indica o número de partições, e o argumento \emph{F} indica a partição selecionada.
Um filtro comum, que é utilizado nesse trabalho, é o de criação de partições para o \emph{cross-validation}. Para esse filtro, são passados três argumentos. O argumento \emph{c} indica qual dos atributos é o atributo correspondente à classe, e é representado por um índice, iniciado em 1, conforme a declaração na seção de atributos do arquivo de dados (caso o padrão do WEKA seja usado, ou seja, o atributo de classe seja o último da listagem, pode ser utilizado o valor ``\emph{last}'' como argumento). O argumento \emph{N} indica o número de partições, e o argumento \emph{F} indica o índice da partição selecionada.
Além desses, o argumento \emph{V} pode ser utilizado para gerar o conjunto inverso de seleções, útil para dividir o conjunto em duas partes complementares. Dessa forma, para gerar um conjunto de dados para testes e outro para treinamento, podem ser usados os seguintes comandos\footnote{Nesses exemplos, é usado o redirecionamento de entrada e saída presentes na maioria dos \emph{shells} UNIX. O caractere ``<'' seguido de um nome de arquivo indica que aquele arquivo será usado como entrada para o comando. De maneira semelhante, o caractere ``>'' seguido de um nome de arquivo indica que ele será usado como saída. O WEKA também permite que sejam utilizadas as opções \emph{i} e \emph{o}, respectivamente, para obter os mesmos resultados. No primeiro exemplo, a forma equivalente seria ``\emph{-i dataset.arff -o dataset\_test.arff}''.}:
Além desses, o argumento \emph{V} pode ser utilizado para gerar o conjunto inverso de seleções, útil para dividir o conjunto em duas partes complementares. Dessa forma, para gerar um conjunto de dados para testes e outro para treinamento, podem ser usados comandos como os da listagem \ref{lst:dev_filter}\footnote{Nesses exemplos, é usado o redirecionamento de entrada e saída presentes na maioria dos \emph{shells} UNIX. O caractere ``<'' seguido de um nome de arquivo indica que aquele arquivo será usado como entrada para o comando. De maneira semelhante, o caractere ``>'' seguido de um nome de arquivo indica que ele será usado como saída. O WEKA também permite que sejam utilizadas as opções \emph{i} e \emph{o}, respectivamente, para obter os mesmos resultados. No primeiro exemplo, a forma equivalente seria ``\emph{-i dataset.arff -o dataset\_test.arff}''.}. Nesse exemplo, são o conjunto de dados é dividido em quatro partições, conforme indicado pelo argumento N. Na primeira linha, a primeira partição é escolhida, conforme indicado pelo argumento F. Na segunda, todas as partições com exceção da primeira são selecionadas, conforme indicado pelo parâmetro V.
\begin{lstlisting}[caption=Filtro para geração de partições para \emph{cross-validation}, label=lst:dev_filter]
java weka.filters.supervised.instance.StratifiedRemoveFolds -c last -N 4 -F 1 \
......@@ -329,7 +329,9 @@ Esses dados contém informações sobre o conjunto de dados (nome e número de i
\section{Seleção de algoritmos}
Todos os algoritmos utilizados para comparação com os algoritmos imunológicos fazem parte da distribuição padrão do WEKA (a versão utilizada é a 3.6.9 de 25 de janeiro de 2013).
Todos os algoritmos utilizados para comparação com os algoritmos imunológicos fazem parte da distribuição padrão do WEKA (a versão utilizada é a 3.6.9 de 25 de janeiro de 2013). Os algoritmos serão descritos brevemente nas próximas seções.
\iffalse add value of default parameters \fi
\vspace{0.5cm}
\begin{figure}[h]
......@@ -656,3 +658,17 @@ Esses algoritmos podem ser dividos em 5 categorias de algoritmos: árvores de de
\end{tabular}
\end{table}
\vspace{0.5cm}
\iffalse
# Execuções
# Resultados
# Análises
# Conclusões
# Fim =)
\fi
......@@ -306,13 +306,11 @@ A aplicação de critérios é vital para que um experimento possa ser analisado
Nos testes, a execução de cada algoritmos é feita utilizando \emph{grid search} e \emph{cross-validation}. Utilizar \emph{cross-validation} diminui a influência do conjunto de dados no resultado dos testes. Como o algoritmo é treinado e testado várias vezes, cada vez com uma divisão diferente do conjunto de dados para treinamento e testes, quaisquer tendências nos dados são eliminadas, e o resultado se torna mais confiável.
Geralmente, o \emph{grid search} é utilizado para selecionar os melhores parâmetros para um modelo, para que esses parâmetros sejam incorporados no sistema final, obtendo a melhor performance possível. Nesse trabalho, ele será utilizado para que o modelo utilizado nos testes seja o melhor possível para os conjuntos de dados dos testes.
Geralmente, o \emph{grid search} é utilizado para selecionar os melhores parâmetros para um modelo, para que esses parâmetros sejam incorporados no sistema final, obtendo a melhor performance possível. Nesse trabalho, ele é utilizado para que o modelo utilizado nos testes seja o melhor possível para os conjuntos de dados dos testes.
Para a avaliação dos resultados, serão utilizados como critérios, para cada algoritmo, o erro médio relativo e o índice de Youden.
Para a avaliação dos resultados, para cada algoritmo, são utilizados como critérios o erro médio relativo e o índice de Youden. O erro médio relativo é uma medida padrão simples, que mostra o quanto o resultado de um teste difere dos valores corretos. Ele é utilizado como uma métrica simples para o desempenho de um algoritmo, e pode ser utilizado como análise superficial na comparação de algoritmos. No entanto, o erro médio relativo não pode ser utilizado como métrica única: devido a simplicidade do seu cálculo, não é suficiente para a análise de áreas mais complexas como a detecção de fraude.
O erro médio relativo é uma medida padrão simples, que mostra o quanto o resultado de um teste difere dos valores corretos. Ele é utilizado como uma métrica simples para o desempenho de um algoritmo, e pode ser utilizado como análise superficial na comparação de algoritmos. No entanto, o erro médio relativo não pode ser utilizado como métrica única: devido a simplicidade do seu cálculo, não é suficiente para a análise de áreas mais complexas como a detecção de fraude.
O índice de Youden é uma medida de performance que leva em consideração não só o número de instâncias classificadas corretamente. Para que o índice de Youden seja alto, tanto a taxa de falsos positivos quanto a de falsos negativos deve ser baixa. Conforme apresentado na seção \ref{sec:eval_fraud}, na detecção de fraude os falsos positivos são muito mais críticos do que os falsos positivos. Assim, serão calculados dois índices: o índice de Youden padrão e o índice de Youden com maior significância para os falsos negativos. Esse é calculado através da fórmula:
O índice de Youden é uma medida de performance que leva em consideração não só o número de instâncias classificadas corretamente. Para que o índice de Youden seja alto, tanto a taxa de falsos positivos quanto a de falsos negativos deve ser baixa. Conforme apresentado na seção \ref{sec:eval_fraud}, na detecção de fraude os falsos negativos são muito mais críticos do que os falsos positivos. Assim, serão calculados dois índices: o índice de Youden padrão e o índice de Youden com maior significância para os falsos negativos. Esse é calculado através da fórmula:
\begin{equation}
\vspace{2mm}
......
......@@ -37,7 +37,7 @@ A etapa de análise consistiu em:
\item Apresentar os resultados.
\end{enumerate}
Conforme o padrão nesse tipo de experimento, os dados são apresentados em formato de tabela e gráfico. Os critérios escolhidos já são parte integrante dos resultados exibidos na execução do WEKA. Essa escolha reflete tanto a aderência dessa plataforma aos padrões da área como a facilidade que uma ferramenta desse tipo oferece na determinação do método de avaliação.
Conforme o padrão nesse tipo de experimento, os dados são apresentados em formato de tabela e gráfico. Os critérios escolhidos já são parte integrante dos resultados exibidos na execução do WEKA. Por um lado, isso mostra a aderência dessa plataforma aos padrões da área, por outro, demonstra a facilidade que uma ferramenta que apresenta os resultados em um formato padrão oferece para experimentos como esse.
\section{Descrição dos dados de teste}
......@@ -203,9 +203,9 @@ A16: +,- (atributo de classe)
\end{lstlisting}
\vspace{0.5cm}
\section{Algoritmos}
\section{Algoritmos imunológicos}
Os algoritmos utilizados no experimento são parte de um pacote de algoritmos desenvolvido por Jason Brownlee \cite{Brownlee2011}, na versão mais atual (1.8, maio de 2011). Esse pacote foi especialmente desenvolvido para a plataforma de aprendizagem de máquina WEKA (descrita na seção \ref{sec:prop_weka}) e são disponibilizados através de uma licença aberta (GNU GPL). Nele, são implementadas diversas categorias de algoritmos, como Redes Neurais e Sistemas Imunológicos Artificiais. A figura \ref{fig:prop_wekaais} mostra esses algoritmos conforme apresentados na interface do WEKA.
Os algoritmos imunológicos utilizados no experimento são parte de um pacote de algoritmos desenvolvido por Jason Brownlee \cite{Brownlee2011}, na versão mais atual (1.8, maio de 2011). Esse pacote foi especialmente desenvolvido para a plataforma de aprendizagem de máquina WEKA (descrita na seção \ref{sec:prop_weka}) e são disponibilizados através de uma licença aberta (GNU GPL). Nele, são implementadas diversas categorias de algoritmos, como Redes Neurais e Sistemas Imunológicos Artificiais. A figura \ref{fig:prop_wekaais} mostra esses algoritmos conforme apresentados na interface do WEKA, nos módulos \emph{airs}, \emph{clonalg} e \emph{immunos} em \emph{weka.classifiers.immune} e no módulo \emph{lvq} em \emph{weka.classifiers.neural}.
\vspace{0.5cm}
\begin{figure}[h]
......@@ -217,7 +217,7 @@ Os algoritmos utilizados no experimento são parte de um pacote de algoritmos de
\end{figure}
\vspace{0.5cm}
Desses algoritmos, serão utilizados:
Dentre os algoritmos imunológicos, serão utilizados:
\begin{enumerate}[a)]
\item \textbf{Artificial Immune Recognition System (AIRS)}: algoritmo imunológico supervisionado descrito na seção \ref{sec:prop_airs}.
......@@ -226,8 +226,6 @@ Desses algoritmos, serão utilizados:
\iffalse adicionar os outros algoritmos do weka que serão utilizados (4.6) \fi
\end{enumerate}
\iffalse justificar \fi Implementações de todos esses algoritmos estão disponíveis na versão oficial da ferramenta WEKA. Isso facilita a comparação dos resultados dos algoritmos imunológicos com os algoritmos que já fazem parte do WEKA.
\section{WEKA}
\label{sec:prop_weka}
......@@ -301,7 +299,7 @@ O WEKA suporta quatro tipos de atributos. O formato ARFF, no entanto, suporta se
\item \emph{date}: uma data, com um campo opcional que especifica o formato da data, como "yyyy-MM-dd HH:mm:ss".
\end{enumerate}
A seção de dados inicia com a entrada \emph{@data}, e segue até o final do arquivo. Nela são listados os valores do conjunto de dados. Cada entrada é representada em uma linha, ou seja, as entradas são separadas pelo caractere de nova linha. Em cada entrada, seus atributos são listados em uma lista separada por vírgulas. Como dito anteriormente, os atributos são identificados pela ordem ordem de declaração, logo ela deve ser a mesma no cabeçalho e nessa seção. Valores ausentes são representados por um caractere de ponto de interrogação (\emph{?}). Os atributos do tipo nominal e \emph{string} são \emph{case sensitive}, e devem ser envolvidos em aspas se contém espaços.
A seção de dados inicia com a entrada \emph{@data} e segue até o final do arquivo. Nela são listados os valores do conjunto de dados. Cada entrada é representada em uma linha, ou seja, as entradas são separadas pelo caractere de nova linha. Em cada entrada, seus atributos são listados em uma lista separada por vírgulas. Como dito anteriormente, os atributos são identificados pela ordem ordem de declaração, logo ela deve ser a mesma no cabeçalho e nessa seção. Valores ausentes são representados por um caractere de ponto de interrogação (\emph{?}). Os atributos do tipo nominal e \emph{string} são \emph{case sensitive}, e devem ser envolvidos em aspas se contém espaços.
Por padrão, o último atributo é considerado o objetivo ou classe da instância (o atributo que é considerado uma função dos outros atributos). Isso pode ser alterado através da interface de configuração do experimento.
......
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