ALGORITMOS GENÉTICOS COMO ESTRATÉGIA DE PRÉ-PROCESSAMENTO EM CONJUNTOS DE DADOS DESBALANCEADOS Marcelo Beckmann Dissertação de Mestrado apresentada ao Programa de Pós-Graduação em Engenharia Civil, COPPE, da Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Mestre em Engenharia Civil. Orientadores: Beatriz de Souza Leite Pires de Lima Nelson Ebecken Rio de Janeiro Setembro de 2010 i Francisco Favilla ALGORITMOS GENÉTICOS COMO ESTRATÉGIA DE PRÉ-PROCESSAMENTO EM CONJUNTOS DE DADOS DESBALANCEADOS Marcelo Beckmann DISSERTAÇÃO SUBMETIDA AO CORPO DOCENTE DO INSTITUTO ALBERTO LUIZ COIMBRA DE PÓS-GRADUAÇÃO E PESQUISA DE ENGENHARIA (COPPE) DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIAS EM ENGENHARIA CIVIL. Examinada por: _________________________________________________ Profª. Beatriz de Souza Leite Pires de Lima, D.Sc. _________________________________________________ Prof. Nelson Francisco Favilla Ebecken, D.Sc. _________________________________________________ Prof. Alexandre Gonçalves Evsukoff, Dr. _________________________________________________ Prof. Carlos Cristiano Hasenclever Borges, D.Sc. RIO DE JANEIRO, RJ, BRASIL SETEMBRO/2010 ii Beckmann, Marcelo Algoritmos Genéticos como Estratégia de PréProcessamento em Conjuntos de Dados Desbalanceados /Marcelo Beckmann. - Rio de Janeiro: UFRJ/COPPE, 2010. IX, 103 p.: il.; 29,7 cm. Orientadores: Beatriz de Souza Leite Pires de Lima Nelson Francisco Favilla Ebecken Dissertação (mestrado) - UFRJ/COPPE/ Programa de Engenharia de Civil, 2010. Referências Bibliográficas: p. 91-103. 1. Classificação. 2. Algoritmo Genético. 3. Dados Desbalanceados. 4. Mineração de Dados. I Lima, Beatriz de Souza Leite Pires et al. II. Universidade Federal do Rio de Janeiro, COPPE, Programa de Engenharia Civil. III. Título. iii Agradecimentos A Deus. À minha mãe, que me ensinou a amar as pessoas e ao mundo, e a ser quem eu sou. À minha tia e madrinha, que me ensinou o que é amizade, palavra, honestidade e respeito. Ao meu pai, que me ensinou que trabalhando sempre se chega a algum lugar. Ao meu avô (in memorian), que apesar de sua precária formação acadêmica, me mostrou que o conhecimento faz diferença. À minha avó (in memorian), que conseguiu o meu primeiro emprego. Ao meu tio, que me deu o meu primeiro kit de ciências. À minha esposa, meu amor, minha vida. Ao meu filho, minha luz, minha inspiração. Aos meus colegas e professores da COPPE/UFRJ, que me ensinaram a aprender, pesquisar e divulgar. iv Resumo da Dissertação apresentada à COPPE/UFRJ como parte dos requisitos necessários para a obtenção do grau de Mestre em Ciências (M.Sc.) ALGORITMOS GENÉTICOS COMO ESTRATÉGIA DE PRÉ-PROCESSAMENTO EM CONJUNTOS DE DADOS DESBALANCEADOS Marcelo Beckmann Setembro/2010 Orientadores: Beatriz de Souza Leite Pires de Lima Nelson Francisco Favilla Ebecken Programa: Engenharia Civil Em mineração de dados, a classificação tem como objetivo rotular eventos e objetos de acordo com classes pré-estabelecidas. Todavia, os algoritmos tradicionais de classificação tendem a perder sua capacidade de predição quando aplicados a um conjunto de dados cuja distribuição de instâncias entre classes é desbalanceada. Uma das estratégias para solucionar este problema consiste em efetuar um préprocessamento no conjunto de dados de forma a equalizar a distribuição de exemplos entre as classes. Este trabalho tem como objetivo apresentar uma proposta de pré-processamento utilizando algoritmos genéticos, de forma a se criar instâncias sintéticas da classe com menor número de exemplos. Os experimentos com o algoritmo proposto apresentaram melhor desempenho de classificação na maioria dos casos, em comparação aos resultados de três estudos publicados. Também se verificou que as instâncias sintéticas foram criadas longe da superfície de decisão, e que a aplicação da técnica de aprendizado incremental diminuiu o tempo de processamento do mesmo. v Abstract of Dissertation presented to COPPE/UFRJ as partial fulfillment of the requirements for the degree of Master of Science (M.Sc.) GENETIC ALGORITMS AS A PRE PROCESSING STRATEGY FOR IMBALANCED DATASETS Marcelo Beckmann September/2010 Advisors:Beatriz de Souza Leite Pires de Lima Nelson Francisco Favilla Ebecken Department: Civil Engineering In data mining, the classification aims to label events and objects according classes previously established. Nevertheless, the traditional classification algorithms tend to loose its predictive capacity when applied on a dataset which distribution between classes is imbalanced. One of the strategies to resolve this problem is to execute a pre-processing on a dataset in order to equalize the examples distribution among the classes. This work aims to present one proposal of pre-processing using genetic algorithms, in order to create synthetic instances from the class with less number of instances. The experiments with the proposal algorithm demonstrated a better classification performance in most of the problems, in comparison with three studies published. It was also demonstrated the synthetic instances were created far from the decision surface, and the application of incremental learning technique decreased the processing time. vi Sumário 1 1 Introdução 1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Contexto de Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Objetivos e Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Organização Deste Trabalho . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 4 5 2 Classificação 2.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Algoritmos de Classificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 Classificador Bayesiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 Árvores de Decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.3 Vizinhos mais Próximos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3 Aprendizado Incremental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4 Métricas de Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4.1 Precisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4.2 Recall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4.3 F-Measure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4.4 G-Mean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4.5 Curva ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4.6 AUC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3 O Problema de Classificação em Conjuntos de Dados Desbalanceados 18 3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2 Causas Associadas ao Baixo Desempenho em Conjunto de Dados Desbalanceados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.1 Métricas de Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 vii 3.2.2 Raridade Relativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2.3 Raridade Absoluta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2.4 Fragmentação de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2.5 Bias Inapropriado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.2.6 Ruídos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3 Sobreposição de Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4 Pequenos Disjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.5 Sensibilidade dos Algoritmos de Classificação . . . . . . . . . . . . . . . . . . . . . 26 4 Soluções para o Problema de Classificação em Conjuntos de Dados Desbalanceados 27 4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2 Notação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3 Ajuste em Nível de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.1 Amostragem Aleatória de Instâncias . . . . . . . . . . . . . . . . . . . . . . . . 29 4.3.2 Técnicas de Subamostragem Orientada . . . . . . . . . . . . . . . . . . . . . 30 4.3.3 Técnicas de Sobreamostragem Orientada . . . . . . . . . . . . . . . . . . . . 33 4.4 Aprendizado Sensível a Custos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.5 Ajuste em Nível de Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5 Algoritmos Genéticos 41 5.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.2 Componentes do Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2.1 Cromossomo e Genes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.2.2 População Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.2.3 Função Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.2.4 Avaliação e Substituição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.2.5 Critério de Parada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2.6 Seleção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2.7 Processo de Busca Global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.2.8 Cruzamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2.9 Mutação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2.10 Parâmetros do Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 viii 5.3 Funcionamento do Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.4 Aplicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6 Algoritmo Genético para Balanceamento de Conjunto de Dados 56 6.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 6.2 Codificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.3 Operador de Cruzamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.4 Mutação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.5 Função Aptidão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.6 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 7 Experimentos e Resultados 76 7.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 7.2 Conjunto de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 7.3 Parâmetros do Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 7.4 Execução dos Experimentos e Comparação . . . . . . . . . . . . . . . . . . . . . . . . 80 7.4.1 Comparação com Diversos Métodos de Sobreamostragem . . . . . . 80 7.4.2 Comparação com o Algoritmo Borderline SMOTE . . . . . . . . . . . . 7.4.3 Comparação com o Algoritmo ADASYN . . . . . . . . . . . . . . . . . . . . 83 7.4.4 Experimentos com Aprendizado Incremental . . . . . . . . . . . . . . . . 84 82 8 Conclusões 89 Referências Bibliográficas 91 ix Capitulo 1 Introdução Atualmente, a quantidade de dados gerada por processos automatizados têm crescido de forma explosiva, tornando difícil a compreensão desse volume de informações de maneira correta e em tempo hábil. De forma a automatizar a análise dessas informações, conta-se com o auxílio de ferramentas computacionais em mineração de dados, e especificamente para a descoberta do conhecimento, identificação de padrões, e predição, algoritmos de aprendizado de máquina são utilizados em atividades de classificação. Os algoritmos de classificação visam identificar padrões pré-estabelecidos em um conjunto de dados. Isso é feito através de um treinamento prévio, utilizando-se algoritmos de aprendizado de máquina, onde é criado um modelo matemático/computacional conforme o algoritmo utilizado. A partir desse modelo, será possível rotular novos registros de acordo com seus atributos. Esses algoritmos têm aplicação em diversas áreas, como por exemplo, medicina, segurança, prospecção geológica, meteorologia, finanças, automação industrial, controle de qualidade, comercialização, logística, econometria, etc. Um exemplo prático da aplicação dos algoritmos de classificação consiste na prospecção e jazidas de petróleo em terra, onde a presença de determinadas quantidades de hidrocarbonetos no solo determina a existência de uma jazida petrolífera no subsolo. O algoritmo de classificação efetua o aprendizado sobre quais amostras determinam ou não uma jazida petrolífera, e na 1 presença de uma nova amostra de solo, é possível predizer se na região onde a mesma foi coletada existe uma nova jazida (Pramanik et al. 2001). 1.1 Motivação Na maioria dos algoritmos de classificação tradicionais, dentre eles os algoritmos de árvore de decisão, vizinhos mais próximos, redes neurais, bayesiano, máquina de vetor de suporte, assumem que o conjunto de dados terá uma distribuição balanceada de instâncias entre classes, e que o custo de errar em uma classe será o mesmo que em outra classe. Todavia, ficou comprovado que na maioria dos casos, sem nenhuma preparação ou ajuste, os algoritmos tradicionais tendem a rotular as instâncias da classe com menor número de exemplos, como pertencentes à classe mais numerosa. Contudo, justamente os objetos e eventos raros, e por conseqüência menos numerosos, são os mais importantes e valiosos a se buscar. Tomando-se como exemplo o problema de prospecção petrolífera citado acima, não é em todo o lugar que existe uma jazida de petróleo, e muito pelo contrário, tal jazida é um objeto raro e valioso. Essa conformação de objetos e eventos raros existentes no mundo real acaba por se refletir nos conjuntos de dados do mundo computacional, fazendo com que tal problema ocorra tipicamente em classificação de dados. Este tipo de comportamento está presente em problemas como diagnóstico de câncer de mama (Woods et al. 1993), identificação de clientes não confiáveis em operações de telefonia (Ezawa et al. 1996), detecção de vazamentos de óleo através de imagens de radar (Kubat et al., 1998), detecção de chamadas telefônicas fraudulentas (Fawcett e Provost, 1996), tarefas de recuperação de informações e tarefas de filtragem (Lewis e Catlett , 1994), não sendo incomuns na literatura problemas com razões de desbalanceamento de 100:1 e até 10000:1 (He e Shen, 2007, Kubat et al., 1998, Pearson et al., 2003). 1.2 Contexto de Pesquisa 2 Com o objetivo de solucionar ou mitigar tal problema, existem atualmente diversas iniciativas de pesquisa e desenvolvimento de estratégias e algoritmos, de forma a adequar o processo de classificação aos conjuntos de dados desbalanceados. Conforme citado por (He e Garcia, 2009), de acordo com relatórios do Institute of Electrical and Electronics Engineers (IEEE) e da Association for Computing Machinery (ACM), ocorreu um crescimento de 980% na quantidade de publicações anuais sobre o assunto entre 1997 e 2007. De forma a sistematizar o estudo do problema, (Weiss, 2004, Japkowicz e Stephen, 2002) identificaram causas e condições associadas ao problema, onde foi concluído que nem sempre o desbalanceamento entre classes é a causa principal do problema, podendo o mesmo estar associado a outros problemas existentes em classificação, como por exemplo, a sobreposição entre classes. De acordo com (Qiong et al., 2006), existem basicamente três estratégias para solucionar as causas associadas ao problema: ajuste em nível de dados; aprendizado sensível a custos; ajuste em nível de algoritmos. Neste trabalho, se concentrou no ajuste em nível de dados como estratégia para solução do problema de desbalanceamento. Esta abordagem se resume basicamente em ações de sobreamostragem (oversampling) e subamostragem (undersampling), o que consiste respectivamente na criação de instâncias da classe minoritária, por convenção chamada de classe positiva, e remoção de instâncias da classe majoritária, também conhecida como classe negativa. Conforme comprovado na literatura, tais ações efetuam o balanceamento do conjunto de dados, de forma que as classes tenham a mesma quantidade de exemplos, sanando as causas associadas ao problema de conjuntos de dados desbalanceados. 1.3 Objetivos e Metodologia De forma a propor uma solução de ajuste no conjunto de dados, este trabalho tem como objetivo apresentar um algoritmo genético (AG) para sobreamostragem, isto é, a criação de instâncias sintéticas positivas orientadas por um processo evolutivo. Basicamente o objetivo do AG proposto é otimizar a métrica AUC obtida no processo de classificação, ajustando o posicionamento e tamanho de regiões, dentro dos limites mínimos e máximos da classe positiva, de forma que essas regiões sejam pré enchidas com instâncias sintéticas positivas, balanceando dessa maneira a base de dados. O algoritmo foi desenvolvido como um plugin de pré-processamento na 3 plataforma de mineração de dados Weka (Witten e Frank, 2005). Conforme será visto no capítulo 7, o AG proposto neste trabalho demonstrou melhor desempenho de classificação, se comparado com outros resultados publicados anteriormente na literatura, e onde foi identificado através da métrica DANGER (Han et al., 2005), que as instâncias sintéticas foram criadas distantes da superfície de decisão. Este trabalho também se preocupou em propor soluções para diminuição do tempo de processamento do AG, o que foi obtido através da utilização de aprendizado incremental, o qual permite que o conjunto de dados original seja treinado uma vez, e as instâncias sintéticas geradas são treinadas e adicionadas ao modelo posteriormente. 1.4 Organização Deste Trabalho Este trabalho foi organizado da seguinte forma: No capítulo 2 foi efetuada uma revisão bibliográfica sobre a atividade de classificação em mineração de dados, onde os conceitos de treinamento e teste, principais algoritmos e métricas foram revistos e detalhados. No capítulo 3, foram descritas de maneira sistemática as principais causas e condições associadas ao problema de classificação em conjuntos de dados desbalanceados, e no capítulo 4, foram apresentadas as principais estratégias para solução do problema. No capítulo 5, descreve-se a heurística de algoritmos genéticos para otimização combinatória e suas aplicações. No capítulo 6 será apresentado o algoritmo genético proposto neste trabalho. No capítulo 7 demonstra-se a configuração e resultados dos experimentos, bem como a comparação e discussão desses resultados com outros métodos e resultados publicados na literatura. Finalmente no capítulo 8, as conclusões deste estudo e trabalhos futuros. 4 Capítulo 2 Classificação Este capítulo tem como objetivo apresentar a atividade de classificação em mineração de dados, os algoritmos de classificação utilizados neste trabalho, as métricas de distância e as métricas utilizadas para avaliação do desempenho de classificadores em aprendizado de máquina. 2.1 Introdução O grande volume de dados que hoje é produzido por processos automatizados, e o seu crescimento esperado para os próximos anos são alguns dos principais desafios em mineração de dados e aplicações de descoberta de conhecimento. Dentro do contexto de mineração de dados, a classificação é uma atividade que utiliza algoritmos de aprendizado de máquina, e onde as instâncias de um conjunto de dados são rotuladas de acordo com suas características. O processo de classificação é dividido em duas etapas: treinamento e predição. A classificação nada mais é do que a implementação computacional da capacidade do ser humano de identificar, predizer e rotular objetos e eventos no mundo em que vive, e na prática é aplicável em todas as áreas do conhecimento humano, como por exemplo: medicina, segurança, automação industrial e robótica, mineração e prospecção petrolífera, meteorologia, finanças, administração, econometria, sociologia, etc. Para o processo de treinamento, utiliza-se um algoritmo de aprendizado de máquina sobre um conjunto de dados, entitulado conjunto de treinamento, o qual é composto de registros ou instâncias. Cada instância é composta de um ou mais 5 atributos, e um atributo específico, que contém o rótulo daquela instância, o qual associa a mesma a uma classe pré-determinada. Pelo fato de ser necessário um rótulo pré-definido na etapa de treinamento, a classificação é considerada uma atividade de aprendizado supervisionado. De posse das instâncias rotuladas, o algoritmo de treinamento irá gerar um modelo preditivo baseado na relação entre os valores dos atributos e a respectiva classe a qual a instância pertence, isto é, o algoritmo induz que determinados valores estão associados a determinadas classes. Para esta tarefa, existem diversos algoritmos que utilizam técnicas tais como: árvores de decisão, redes neurais, máquina de vetores de suporte, regra de Bayes, etc. A segunda etapa, também conhecida como teste, consiste em rotular novas instâncias, de classe desconhecida, através do modelo preditivo obtido na etapa de treinamento, predizendo através dos valores dos seus atributos a qual classe essa instância pertence, completando dessa maneira o processo de aprendizado de máquina e classificação. Nesta etapa são aplicadas métricas que avaliam a qualidade do modelo preditivo obtido na fase de treinamento. Na seção 2.4 serão detalhadas as métricas utilizadas em classificação. O processo de treinamento e teste também é conhecido como seleção do modelo preditivo. Entre os diversos métodos de seleção do modelo, a técnica mais simples consiste na separação de uma parte do conjunto de dados para treino, e o restante para teste. Outro método conhecido é a validação cruzada (Arlot e Celisse, 2010), cujo objetivo é otimizar a avaliação do modelo preditivo, testando o desempenho do mesmo em instâncias “nunca vistas” pelo classificador. O funcionamento consiste em particionar o conjunto de dados em f partes iguais (geralmente f=10), e separar f-1 partes do conjunto de dados para treino, e 1 parte para teste. O processo é repetido f vezes, sendo que a cada repetição, uma parte diferente do conjunto é separada para teste, e o restante para treino. Ao final, obtém-se a média das métricas de classificação obtidas em cada repetição. 6 Nas próximas seções serão descritos os algoritmos de classificação citados neste trabalho, o processo de aprendizado incremental, e as métricas de avaliação aplicadas em classificação. 2.2 Algoritmos de Classificação Atualmente existe um grande número de métodos de classificação e diversas variações dos mesmos. O objetivo desta seção consiste em descrever os métodos de classificação citados neste trabalho. Para informações adicionais sobre outros métodos de classificação e mineração de dados, vide (Wu el al., 2007). 2.2.1 Classificador Bayesiano Este método de classificação utiliza a regra de Bayes (1) para efetuar classificação supervisionada, sendo mais indicado para conjuntos de dados que seguem uma distribuição normal, e classes que tenham uma separabilidade linear, isto é, onde as mesmas podem ser separadas completamente através de uma reta ou hiperplano, pois a classificação bayesiana sempre gera um discriminante de ordem 2 (quadrático). • Estrutura e formulação do modelo Dada a fórmula da regra de Bayes: P( y j | x) = (1) p( x | y j ) P( y j ) p( x) Onde: x - Um determinado valor de uma variável y j - Uma determinada classe Deduz-se que, em um conjunto de treinamento (em que os dados já estão classificados, isto é, as classes são conhecidas a priori), a função P ( y j | x) , retorna a 7 probabilidade da classe y j ocorrer quando da ocorrência de x. Com isso, obtém-se um discriminante, de forma que: Se P( y 2 | x) > P( y1 | x) , então x ∈ y 2 , Se P( y1 | x) > P( y 2 | x) , então x ∈ y1 , Se P( y 2 | x) = P( y1 | x) , então x ∈ classe com maior probabilidade a priori, isto é, max( y 2 , y1 ) . O discriminante acima descrito é conhecido como classificador bayesiano simples, ou ingênuo (naive). O mesmo não leva em conta que, quando existir um maior número de registros da classe y1 , a probabilidade de instâncias da outra classe y 2 serem classificadas incorretamente como y1 será maior, o que o torna bastante suscetível ao problema de conjuntos de dados desbalanceados (vide seção 4.4). 2.2.2 Árvores de Decisão Em classificação supervisionada, uma árvore de decisão permite a criação de regras de decisão, isto é, conjuntos de se ⇒ então os quais permitem aprender e distinguir as classes dos registros de dados. As regras de decisão geradas pelo classificador de árvore de decisão podem ser compreendidas e interpretadas por humanos, sendo dessa maneira considerado um algoritmo de caixa branca. O algoritmo permite classificação em regiões de decisão muito complexas, gerando bons resultados tanto com valores numéricos ou categóricos, podendo ser combinado com outros métodos de mineração de dados. A utilização de árvores de decisão como um método de inteligência artificial foi proposto inicialmente por (Morgan e Sonquist, 1963) com o método AID (Automatic Interaction Detection). Posteriormente foram propostas novas implementações baseadas no conceito de árvore de decisão, como os métodos CART (Breimann et al., 1984), ID3 8 (Quinlan, 1986), C4.5 (Quinlan, 1988), C5.0 (Quinlan, 1996, Kohavi e Quinlan, 2002), GUIDE (Loh, 2002), entre outros. • Estrutura e formulação do modelo Não existe uma formulação, e sim algoritmos. Basicamente esses algoritmos efetuam uma separação no conjunto de dados baseado em um valor de atributo testado. O processo é recursivo, e repetido em cada subconjunto de outros atributos. A recursão é completada quando a separação se tornar impraticável, ou quando uma classificação singular pode ser aplicada a cada elemento do subconjunto derivado. Cada nó interior corresponde a uma variável. Um galho para um filho representa uma possível combinação de valores para aquela variável e a variável pai. Uma folha representa uma possível combinação de valores desde a folha até a raiz. Como exemplo, segue abaixo o fluxo do algoritmo ID3: 1. Começar com todos os exemplos de treino; 2. Escolher o teste (atributo) que melhor divide os exemplos, ou seja agrupar exemplos da mesma classe ou exemplos semelhantes; 3. Para o atributo escolhido, criar um nó filho para cada valor possível do atributo; 4. Transportar os exemplos para cada filho tendo em conta o valor do filho; 5. Repetir o procedimento para cada filho não "puro". Um filho é puro quando cada atributo X tem o mesmo valor em todos os exemplos. Nos algoritmos ID3, C4.5 e C5.0, utiliza-se para a escolha do melhor atributo duas avaliações: entropia e ganho de informação. A entropia (entropy), também conhecida como entropia de Shannon (Shannon, 1951), quantifica a informação que um conjunto de dados pode representar. Este conceito define a medida de incerteza ou falta de informação, associada a um atributo. A entropia E de um atributo X com possíveis valores {x1 ,..., x n } e com probabilidade n p ( xi ) , é obtida pela equação E ( X ) = −∑ p ( xi ) log 2 p ( xi ) . i =1 9 O ganho de informação (information gain) é um nome alternativo para a divergência de Kullback-Leibler (Kullback e Leibler, 1951 e define a redução na entropia. IG ( S , X ) , que significa a redução esperada na entropia de um atributo S, condicionado pela ocorrência de um valor v no atributo X. O ganho de informação é obtido pela fórmula IG ( S , X ) = E ( S ) − ∑ V SV S .E ( SV ) , sendo v ∈ X . Isto posto, na escolha do melhor atributo, no primeiro passo do algoritmo são analisados todos os atributos disponíveis, calculando-se o ganho de cada um deles. Escolhe-se o de maior ganho e continua-se o processo sempre removendo o atributo utilizado na iteração It-1 da iteração It. O algoritmo termina quando em todos os nós a entropia for nula. 2.2.3 Vizinhos mais Próximos O classificador vizinhos mais próximos, também conhecido como KNN (k nearest neighbors), cria uma superfície de decisão que se adapta à forma de distribuição dos dados de treinamento de maneira detalhada, possibilitando a obtenção de boas taxas de acerto quando o conjunto de treinamento é grande ou representativo, não dependendo que as classes possuam alguma separabilidade linear (Dasarathy, 1991, Hastie, 2003). • Estrutura e formulação do modelo Este é um método considerado não paramétrico, pois não utiliza modelo, e a classificação é realizada conforme o seguinte algoritmo: 1. Inicialmente, calcula-se a distância (geralmente euclidiana) entre uma nova instância ni e todas as instâncias do conjunto de treinamento T; 2. Verifica-se a quais classes pertencem as k instâncias mais próximas; 3. A classificação é feita rotulando-se ni com a classe que for mais freqüente entre os k padrões mais próximos de ni. 10 O valor de k pode variar de acordo com os dados disponíveis para treinamento. Geralmente utiliza-se tentativa e erro para ajustar esse parâmetro, começando por 1NN. Entretanto, para um conjunto de treinamento numeroso, é esperado que o classificador 3NN permita a obtenção de um desempenho muito próximo do classificador Bayesiano (Dasarathy, 1991), porém, tipicamente na literatura são encontrados valores de k =5 ou k=7. O algoritmo pode utilizar outras métricas de distância, que não a euclidiana. Para maiores detalhes sobre a distância euclidiana e outras métricas, vide (Wilson e Martinez, 1997, Boriah, 2008, Argentini e Blanzieri, 2010). 2.3 Aprendizado Incremental Normalmente nas atividades de classificação, o aprendizado de máquina acontece de maneira a priori, isto é, o modelo preditivo é construído apenas uma vez, com todos os registros disponíveis, e não evolui mais. Todavia, existem situações em que nem sempre todos os registros necessários estão disponíveis para treinamento, e re-treinar todo o conjunto a cada nova instância pode ser computacionalmente caro e consumir muito tempo, e dependendo do tamanho do conjunto de treinamento, o mesmo sequer caberá por inteiro na memória do computador. Ao contrário do aprendizado a priori, que cria um modelo preditivo estático, o aprendizado incremental permite que um modelo preditivo possa ser adaptado de maneira contínua, conforme os registros se tornem disponíveis para treinamento, sem necessidade de re-processamento de todo o conjunto de treinamento. De acordo com (Giraud-Carrier, 2000), as principais características de uma atividade de aprendizado incremental são: • Os exemplos não estão disponíveis a priori, mas se tornam disponíveis ao longo do tempo, normalmente um exemplo por vez; • Na maioria dos casos, o aprendizado precisa ir à frente de maneira indefinida. 11 Algoritmos incrementais são também conhecidos como algoritmos em tempo real (online) que requerem pouca memória (Anthony e Biggs, 1997). Requerem pouca memória por que o conjunto de treinamento não é carregado inteiro para a mesma, pois o treinamento foi feito com poucos registros, à medida que os mesmos se tornam disponíveis. Obtém-se um grande ganho computacional pelo fato de somente os novos registros serem treinados, o que torna essa abordagem bastante apropriada para aplicações online, isto é, onde um usuário deva aguardar por um resultado. Como exemplo de algoritmos incrementais, pode-se citar o ID5 (Utgoff, 1988), o qual é a versão incremental do ID3 (Quinlan, 1986), COBWEB (Fischer, 1987), ILA (Giraud-Carrier e Martinez, 1995). No aplicativo Weka (Witten e Frank, 2005) versão 6.2, estão presentes 12 classificadores, dentre eles pode-se citar o AODE (Webb et. al, 2005), LWL (Frank et. al, 2003) e o NayveBayesUpdateable (John e Langley, 1995). Em aprendizado incremental, o método de seleção do modelo consiste em separar o conjunto de dados em treino e teste. Conforme foi verificado no aplicativo Weka (Witten e Frank, 2005), a técnica de validação cruzada (Arlot e Celisse, 2010) não é aplicável ao aprendizado incremental, pois a validação cruzada é um método que requer maior custo computacional, e impõe uma reordenação aleatória de exemplos, a qual é indesejável em aprendizado incremental, além de introduzir algum grau de instabilidade no modelo preditivo (MacGregor, 1988, Fischer et al., 1992, Cornúejols, 1993, Breiman, 1996). A estratégia de aprendizado incremental, apesar de ser bastante promissora, não se tornou um consenso na comunidade de mineração de dados, cedendo lugar ao aprendizado a priori. Recentemente, de forma a prover ferramentas de análise para grandes conjuntos de dados, foi proposta a plataforma Massive on Line Analisys (MOA), em português, Análise Massiva em Tempo Real, o qual utiliza técnicas de aprendizado incremental para criar modelos preditivos através de fluxos de dados (Bifet et. al, 2010), possuindo ainda integração bi-direcional com o Weka, isto é, o Weka consegue manipular dados e algoritmos do MOA, e vice-vesa,. No capítulo 6 será demonstrado como o aprendizado incremental foi aplicado ao algoritmo genético para balanceamento (AGB) proposto neste trabalho, de forma que o 12 conjunto de dados original seja treinado uma só vez, e as novas instâncias criadas para balanceamento treinadas incrementalmente. 2.4 Métricas de Avaliação Em classificação, se faz necessária a utilização de alguma métrica para avaliar os resultados obtidos. A matriz de confusão (Figura 2.4.1), também denominada matriz de contingência, é freqüentemente utilizada para tal fim, fornecendo além da contagem de erros e acertos, as principais variáveis necessárias para o cálculo de outras métricas. A matriz de confusão pode representar tanto problemas de duas classes, como problemas multiclasses. Entretanto, a pesquisa e literatura sobre classificação em conjunto de dados desbalanceados se concentra em problemas com duas classes, onde se considera uma classe como positiva, e o restante das classes como negativa. A diagonal principal da matriz de confusão indica os acertos do classificador, enquanto que a diagonal secundária indica os erros.. Figura 2.4.1 – Matriz de Confusão Uma das métricas frequentemente utilizadas a partir das informações desta matriz é a taxa de erro (2), e a acurácia (3). Todavia, estas métricas não são as mais apropriadas para a avaliação de problemas de classes desbalanceados, pois não leva em conta a distribuição das mesmas. 13 Err = FP + FN TP + FN + FP + TN (2) Acc = TP + TN TP + FN + FP + TN (3) As métricas detalhadas nas próximas seções utilizam as variáveis da matriz de confusão de forma a compensar a desproporção entre classes. As métricas de Precisão, Recall e F-Measure são apropriadas quando se está preocupado com o desempenho da classe positiva. As métricas G-Mean, ROC e AUC se aplicam quando o desempenho de ambas as classes são importantes. 2.4.1 Precisão A precisão é uma medida de exatidão, e denota o percentual de acerto em relação a todos os objetos tidos como positivos. Ao analisar em conjunto a fórmula (4) e a matriz de confusão da figura 7, nota-se a razão entre os verdadeiros positivos e a soma da coluna predição positiva. Nota-se ainda que esta métrica é sensível à distribuição, tendo em vista que o divisor é composto da soma de instâncias positivas e negativas. Pr ec = (4) TP TP + FP 2.4.2 Recall O Recall, também denominado Sensitividade, é uma medida de completitude, e denota o percentual de objetos positivos que foram recuperados pelo classificador. Ao analisar em conjunto a fórmula (5) e a matriz de confusão da figura 7, nota-se uma razão entre os verdadeiros positivos e a soma da linha classe positiva. Por somente 14 computar instâncias positivas em seu divisor, a métrica de recall não é sensível à distribuição. Re call = (5) TP TP + FN 2.4.3 F- Measure Utiliza-se a métrica F-Measure (6) com o objetivo de sintetizar as informações das últimas duas métricas, Precisão e Recall, obtendo dessa maneira uma média harmônica entre as mesmas, onde β é um coeficiente que ajusta a importância relativa de precisão versus recall, sendo normalmente β = 1 (Van Rijsbergen, 1979). . F − measure = (1 + β ). Pr ecisão. Re call β . Pr ecisão + Re call (6) 2.4.4 G-Mean De forma a medir o desempenho de ambas as classes levando-se em conta a distribuição das mesmas, pode se utilizar a métrica G-Mean (7), o qual computa a média geométrica dos verdadeiros positivos (TP) e verdadeiros negativos (TN). (7) G − Mean = TP * TN 2.4.5 Curva ROC O gráfico ROC (do inglês, receiver operating characteristics), também denominada Curva ROC, vem sendo utilizado desde a segunda guerra mundial em detecção e análise de sinais, sendo recentemente aplicado em mineração de dados e classificação. Consiste de um gráfico de duas dimensões onde o eixo y refere-se à 15 Sensitividade ou Recall (5), e o eixo x à (1-Especificidade) (8), conforme pode ser visto na equação 8. Espec= (8) TN FP + TN De acordo com (Fawcett, 2005), existem diversos pontos nesse gráfico que merecem atenção. Analisando a figura 8, temos os pontos: (0,0), que significa não ter classificado nenhuma instância positiva; (1,1), que significa não ter classificado nenhuma instância negativa; e (0,1), também indicado pela letra D, que corresponde à classificação perfeita. Pode-se considerar que um ponto será melhor que o outro se o mesmo estiver mais a noroeste. Quanto mais o ponto estiver próximo do eixo x, no lado esquerdo inferior, mais o classificador terá um comportamento conservador, isto é, o mesmo só fará predições positivas se tiver fortes evidências, o que pode acarretar em poucos verdadeiros positivos. Por outro lado, pontos na parte superior direita também denotam um classificador mais liberal e/ou agressivo, o que pode acarretar um maior índice de falsos positivos, por exemplo, na figura 8 temos o ponto A, que é mais conservador que o ponto B. A diagonal secundária do gráfico, onde y=x, denota que o classificador possui um comportamento aleatório. Um ponto (0.5, 0.5) diz que o classificador acertou 50% dos positivos e 50% dos negativos, sendo que os outros 50% foram preditos de forma aleatória. O ponto C na figura 8 indica um classificador que tentou adivinhar a classe positiva 70% das vezes. Por último, o ponto E, que se localiza no triângulo inferior, e indica um classificador com desempenho pior que o aleatório. De acordo com (Flach e Wu, 2005), pode-se dizer que um classificador abaixo da diagonal possui informação útil, mas a está utilizando incorretamente. 16 Figura 2.4.5 – Exemplo de Gráfico ROC, onde os pontos identificados por letras representam os principais comportamentos a serem analisados. 2.4.6 AUC Considera-se neste trabalho ambas as classes (positivas e negativas) como de igual importância, sendo assim, foi utilizada a métrica AUC, do inglês Area Under Curve, a qual é insensível a desbalanceamento de classes (Fawcett, 2004, 2005), e a qual sintetiza como um simples escalar a informação representada pela curva ROC, sendo definida como (9). δ AUC = Φ φ +φ neg pos (9) Onde, conforme descrito por (Batista e Monard, 2005), Φ é a distribuição cumulativa normal padrão, δ é a distância euclidiana entre os centróides das duas classes, e φ pos , e φ neg são, respectivamente, o desvio padrão das classes positiva e negativa. 17 Capítulo 3 O Problema de Classificação em Conjuntos de Dados Desbalanceados Este capítulo tem como objetivo apresentar o problema de classificação em conjuntos de dados desbalanceados, e as causas associadas ao mesmo. 3.1 Introdução Normalmente no mundo real as informações estão dispostas e agrupadas de maneira irregular e desbalanceada. Esta irregularidade no mundo real se atribui a eventos e objetos raros, e tais eventos e objetos não ocorrem a todo o momento e em todo o lugar. Tal comportamento acaba se refletindo no mundo computacional, onde se criam conjuntos de dados em que a numerosidade de exemplos para cada classe acaba sendo desigual e desbalanceada. Os algoritmos de classificação, na presença desse desbalanceamento entre classes no conjunto de dados, na maioria dos casos, tendem a classificar a instância da classe minoritária como sendo da classe majoritária. Todavia, justamente a classe com menor número de exemplos é a mais interessante e valiosa de se identificar, o que pode acarretar riscos e prejuízos financeiros e pessoais, caso essa predição esteja errada. Como exemplo deste problema, podemos citar o diagnóstico de câncer, onde um pequeno percentual da população o possui. No caso de uma pessoa com câncer ser 18 diagnosticada como saudável, ou seja, um falso negativo, a mesma não será tratada a tempo (Woods et al. 1993). É de comum acordo na comunidade científica que este problema necessita de atenção e soluções, mas para se obter soluções, é preciso entender as causas e condições que ocasionam tal problema, o que será apresentado nas próximas seções deste capítulo. 3.2 Causas Associadas ao Baixo Desempenho em Conjunto de Dados Desbalanceados De acordo com (Weiss, 2004), existem seis causas associadas ao baixo desempenho de classificação em conjuntos de dados desbalanceados, onde se verifica que nem sempre a raridade de instâncias positivas é a causa principal do baixo desempenho na presença de conjunto de dados desbalanceados. 3.2.1 Métricas de Avaliação A utilização de métricas de avaliação inapropriadas para se mensurar o desempenho de um classificador em um conjunto de dados desbalanceados acarreta o entendimento incorreto do problema que se está analisando, pois a acurácia, ou taxa de verdadeiros positivos (Fawcett, 2004), não é uma métrica apropriada para classes desbalanceadas. Por exemplo, dado um problema com 99 negativos e 1 positivo, 99% de acerto na classe negativa, apesar de ser um bom resultado em relação ao conjunto de dados como um todo, não faz sentido se analisado em relação à classe positiva. Como foi visto na seção 2.1.1, de acordo com (Weiss, 2004, Qiong et al., 2006, He e Garcia, 2009), as métricas AUC, F-Measure e G-Mean, são as mais apropriadas por ponderar a quantidade de instâncias por classe. 19 Outro problema relacionado às métricas inadequadas para conjuntos de dados desbalanceados está associado à estrutura interna de alguns algoritmos de classificação, os quais utilizam estratégias de “dividir e conquistar”, como por exemplo, o algoritmo de árvore de decisão C4.5 (Quinlan, 1988). Esses algoritmos utilizam métricas tais como ganho de informação (Kullback et Leibler, 1951) e entropia (Shannon, 1951) para medir o quanto de informação está contida em cada ramificação. Entretanto, em conjunto de dados desbalanceados, as instâncias positivas não possuem ganho de informação suficiente para criar uma regra de decisão, sendo necessária a utilização de métricas menos gananciosas para a formação de uma árvore de decisão que também leve em conta a classe minoritária. Na figura 3.2.1.1, é exibido um exemplo de particionamento em um conjunto de dados, onde regras que contemplam instâncias positivas são podadas (linha horizontal), por conter pouco ganho de informação, em relação às regras criadas para as instâncias negativas. Nota-se nesta figura que grande parte das regras da classe positiva (em vermelho), foram podadas. Figura 3.2.1.1 – Particionamento de um conjunto de dados, e posterior poda, representada pela linha horizontal. 3.2.2 Raridade Relativa Ainda que existam muitos exemplos positivos, os mesmos são ofuscados pela grande quantidade de exemplos negativos, representando o clássico exemplo de “Agulha no palheiro”. 20 Figura 3.2.2.1 – Projeção da base de dados Satimage, onde os pontos em vermelho são as instâncias positivas. 3.2.3 Raridade Absoluta Ainda que existam muitos exemplos no mundo real, a classe está representada no conjunto de dados em estudo por poucos exemplos, o que gera dificuldade para o algoritmo generalizar, pois com poucos dados a superfície de decisão ficará muito diferente do que existe no mundo real. A figura 3.2.3.1 exemplifica a superfície de decisão (linhas pontilhadas) criada na presença de poucos exemplos (a) em comparação com a superfície criada com mais exemplos (b). Figura 3.2.3.1 – Os exemplos da figura A irão proporcionar uma superfície de decisão com menor generalização do que os exemplos da figura B. 21 3.2.4 Fragmentação de Dados Algoritmos que utilizam estratégias de dividir e conquistar, como por exemplo, o algoritmo de árvore de decisão C4.5 (Quinlan, 1988), podem separar exemplos positivos em diferentes galhos, os quais separados perdem ainda mais peso e acabam sendo podados, conforme demonstrado na figura 3.2.4.1. Figura 3.2.4.1 – Instâncias positivas podem ser separadas por um algoritmo de árvore de decisão, sendo sua regra de decisão podada subsequentemente (linha horizontal). 3.2.5 Bias Inapropriado Classificadores generalizam incorretamente na presença de instâncias positivas, e com o objetivo de evitar o overfitting, um bias com generalização máxima pode não levar em conta as instâncias positivas, e as regras contendo classes minoritárias possuem menor ganho de informação, sendo mais susceptíveis à poda. 22 Figura 3.2.5.1 – Efeito da generalização em maior ou menor grau em uma superfície de decisão. 3.2.6 Ruídos Instâncias ruidosas de ambas as classes podem confundir o algoritmo de classificação (Hulse e Khoshgoftaar, 2009), de forma que o mesmo generalize incorretamente. Na figura 3.2.6.1, verifica-se que, devido a algumas instâncias negativas, o classificador moveu a superfície de decisão para dentro da classe positiva, fazendo com que algumas instâncias positivas sejam classificadas incorretamente. Figura 3.2.6.1 – Ruídos causam generalização incorreta e baixo desempenho do classificador. 23 3.3 Sobreposição de Classes De acordo com os experimentos de (Japkowicz, 2003), (Batista e Monard, 2004), (Prati et al., 2004), o baixo desempenho de classificação em conjunto de dados desbalanceados não está associado só à distribuição de classes, mas também à sobreposição das mesmas (class overlapping). Conforme demonstrado na figura 3.3.1 por (Batista e Monard, 2004), (Prati et al., 2004), o problema de raridade absoluta em conjunto com a sobreposição fica claro em um classificador bayesiano, onde a primeira coluna indica classificadores com perfeito conhecimento do domínio, e a segunda coluna com conhecimento insuficiente sobre o domínio. Na primeira linha as classes do domínio se sobrepõem mais que na segunda linha, e a linha azul indica o ótimo divisor bayesiano. A linha pontilhada indica o divisor bayesiano mascarado pelo conhecimento insuficiente do domínio. Nota-se no gráfico B, com maior sobreposição, uma maior variância entre o divisor ótimo e o divisor mascarado, do que no gráfico D, com menor sobreposição. Figura 3.3.1- Demonstração do efeito de sobreposição em conjunto com desbalanceamento de classes. 24 3.4 Pequenos Disjuntos Em condições ideais, os conjuntos de dados deveriam apresentar conceitos em grandes agrupamentos, também denominados grandes disjuntos. Todavia, em aplicações do mundo real nem sempre isso é possível, e normalmente os conceitos se subdividem em pequenos sub-conceitos (Holte el al., 1989), também conhecidos na literatura como pequenos disjuntos, ou desbalanceamento interno à classe. O problema de pequenos disjuntos em bases desbalanceadas ocorre quando um sub-conceito está associado a uma classe minoritária, o que acarretará poucos exemplos para representar esses sub-conceitos, e um menor desempenho obtido pelo classificador. Em um estudo efetuado por (Jo e Japkowicz, 2004), foram criados 125 domínios artificiais, onde foram mensurados: o grau de complexidade (isto é, disjuntos), o tamanho do conjunto de treinamento e o grau de desbalanceamento entre classes. Concluiu-se que o problema é agravado por dois fatores: aumento no grau de desbalanceamento e grau de complexidade, e que o problema de desbalanceamento pode ser mitigado se o conjunto de treinamento for grande. De acordo com Weiss (2004), um conjunto de dados se apresenta internamente desbalanceado quando ocorrem casos raros em comparação com o restante dos dados, e casos raros não são facilmente identificáveis. Todavia, métodos de aprendizagem não supervisionada, como agrupamento, ajudam na identificação desses casos, sendo que eles podem se apresentar como pequenos grupos (em inglês, clusters) dentro de uma classe. Em classificação, casos raros potencialmente se apresentam como pequenos disjuntos, que são conceitos aprendidos que cobrem poucos casos do conjunto de treinamento. Em outras palavras, casos raros ocorrem quando alguns subconjuntos de uma classe são muito menores do que os outros (Han et. al, 2005). Ocorre que certos algoritmos classificadores, como o C4.5, tendem a ignorar tais casos por eles não terem representatividade no conjunto de treinamento (Japkowicz, 2003), tornando-se problemático quando casos raros ocorrem na classe minoritária. 25 3.5 Sensibilidade dos Algoritmos de Classificação Conforme os experimentos efetuados por (Japkowicz e Stephen, 2002), o algoritmo de árvore de decisão (C5.0) é o mais afetado na presença de dados desbalanceados por trabalhar de forma global, e não prestar atenção em pontos específicos. Já os algoritmos de redes neurais, como o Multi-Layer Percepton (MLP) é menos propenso a erros que o C5.0, por causa de sua flexibilidade, pois o mesmo ajusta o seu modelo tanto no nível de instância quanto no nível global. Por último, a Máquina de Vetor de Suporte (SVM), a qual é menos propensa a erros que os dois últimos, pois se concentra nas instâncias próximas da superfície de decisão para a construção do modelo. Neste capítulo, enumeramos as principais causas associadas ao problema de conjunto de dados desbalanceados relatadas na literatura. No próximo capítulo serão detalhadas as abordagens propostas para solucionar o problema. 26 Capítulo 4 Soluções para o Problema de Classificação em Conjuntos de Dados Desbalanceados Este capítulo tem como objetivo efetuar uma revisão bibliográfica a respeito de soluções para problemas de classificação em conjunto de dados desbalanceados. 4.1 Introdução Tendo em vista a importância do problema de baixo desempenho na classificação de conjuntos de dados desbalanceados, ao longo dos últimos anos diversas abordagens têm sido adotadas pela comunidade de mineração de dados com objetivo de atacar as causas do problema, as quais foram relacionadas no capítulo 3. Com o objetivo de agrupar tais iniciativas, (Qiong et al., 2006), identificaram três principais abordagens: • Ajuste em nível de dados; • Aprendizado sensível a custos. • Ajuste em nível de algoritmos; 27 Neste capítulo serão detalhadas as principais estratégias para ajuste em nível de dados, as quais são o foco deste trabalho, e abordar de maneira sucinta os principais métodos das outras abordagens. 4.2 Notação Com o objetivo de apresentar claramente os conceitos deste trabalho, nesta seção serão estabelecidas algumas notações que serão doravante utilizadas no mesmo. Dado o conjunto de treinamento T com m exemplos e n atributos, onde T = {xi , y i }, i = 1,..., m , onde xi ∈ X é uma instância no conjunto de atributos X = {a1 ,..., a n } , e y i ∈ Y é uma instância no conjunto de classes, Y = {1,..., c} , existe um subconjunto com instâncias positivas P ⊂ X , e um subconjunto de instâncias negativas N ⊂ X , onde P < N . Todo subconjunto de P criado por métodos de amostragem, será denominado S. As estratégias de pré-processamento no conjunto de dados têm como objetivo balancear o conjunto de treinamento T, de forma que P ≅ N . 4.3 Ajuste em Nível de Dados A abordagem em nível de dados consiste em efetuar um ajuste no conjunto de dados de forma a equalizar a distribuição de exemplos entre classes utilizando amostragem (em inglês, sampling), seja removendo instâncias da classe majoritária, isto é, subamostragem (em inglês, undersampling) ou adicionando exemplos da classe majoritária, isto é, sobreamostragem (em inglês, oversampling). O objetivo final é efetuar um pré-processamento de forma que o algoritmo de classificação trabalhe em um conjunto de dados balanceado, onde P ≅ N . Os estudos de (Estabrooks et. al., 2004, Laurikkala, 2001, Weiss e Provost, 2001), reportaram que diversos classificadores básicos apresentaram melhor desempenho se aplicados a conjuntos de dados balanceados. Todavia, também foram reportados 28 problemas como remoção de conceitos importantes relativos à classe negativa, e sobre ajustamento (overfitting) ao adicionar instâncias positivas (Chawla et al. 2001, Drummond e Holte, 2003). Em (Drummond e Holte, 2003) foi argumentado que a sobreamostragem é ineficiente por duplicar instâncias e não introduzir novos dados, sendo a subamostragem uma melhor escolha. Todavia, um estudo posterior utilizando domínios artificiais concluiu o oposto (Japkowicz, 2003), isto é, a sobreamostragem provê melhor desempenho de classificação que a subamostragem, sendo tais resultados também obtidos por (Batista e Monard, 2004). 4.3.1. Amostragem Aleatória de Instâncias Uma das estratégias mais simples para o ajuste de conjuntos de dados desbalanceados consiste na remoção (subamostragem) e adição (sobreamostragem) aleatória de instâncias. Para a sobreamostragem, instâncias do conjunto P são selecionadas aleatoriamente, duplicadas e adicionadas ao conjunto T. Por outro lado, na remoção de instâncias, se seleciona aleatoriamente instâncias da classe majoritária do subconjunto N, para remoção. Ainda que ambas as estratégias tenham o funcionamento semelhante, e trazem algum benefício do que simplesmente classificar sem nenhum tipo de préprocessamento (Weiss e Provost, 2001, Laurikkala, 2001, Estabrooks et al., 2004), elas também introduzem problemas no aprendizado de máquina. Para a remoção de instâncias, corre-se o risco de remover conceitos importantes relativos à classe negativa. No caso da adição de instâncias positivas, ocorre o problema de sobre ajustamento (overfitting), onde, de acordo com (Batista, 2003): “Um classificador simbólico, por exemplo, pode construir regras que são aparentemente precisas, mas que na verdade cobrem um único exemplo replicado”. 29 De forma a se evitar ou mitigar tais efeitos causados pela amostragem aleatória de exemplos, utiliza-se alguma heurística para orientar tais ações. Esses métodos serão detalhados nas seções 4.3.2 e 4.3.3. 4.3.2 Técnicas de Subamostragem Orientada Nesta seção serão apresentadas as técnicas onde se leva em conta alguma heurística de forma a remover instâncias da classe majoritária do conjunto de treinamento. • EasyEnsemble e BalanceCascade Os métodos EasyEnsemble e BalanceCascade propostos por (Liu et al., 2006a), tem como objetivo superar a perda de informação relevante introduzida pelo método tradicional de subamostragem aleatória. Em ambos os métodos, o classificador H utilizado foi o AdaBoost (Schapire, 1999). A implementação do EasyEnsemble é bem simples: dado o conjunto de treinamento minoritário P, e o conjunto de treinamento majoritário N, criam-se t subconjuntos N i ' , i = 1,..., i = t , compostos de exemplos retirados aleatoriamente de N, onde N i ' < N , onde se usa comumente N i ' = P . Os subconjuntos N i ' ,..., N ' t são criados e treinados separadamente, onde um classificador H i é treinado usando N i ' e todos os exemplos de P. Todos os classificadores gerados são combinados para uma decisão final. O EasyEnsemble é considerada uma estratégia não supervisionada, pois explora o conjunto N através de amostragem aleatória com troca. Já o método BalanceCascade explora o conjunto N de maneira supervisionada, sendo um classificador em cascata a conjunção de todos os classificadores H i , i = 1,..., i = t . Depois que o classificador H i é treinado, se um exemplo xi ∈ N é corretamente classificado, é aceitável conjecturar que xi é de alguma maneira redundante em N, dado que H i já aprendeu a classificar esse exemplo. Então, ao longo 30 do processo, pode-se remover alguns exemplos corretamente classificados do conjunto N, de forma que P ≅ N . • Tomek Links O método de Tomek Links (Tomek, 1976), pode ser aplicado em subamostragem, pois permite a remoção orientada de instâncias da classe majoritária consideradas como ruídos e próximas à superfície de decisão. O Tomek Links consiste em um par de instâncias de classes opostas ( xi , x j ) , sendo i = 1,..., P , e j = 1,..., N , onde xi ∈ P e x j ∈ N , e dada uma função de distância d ( xi , x j ) , o par ( xi , x j ) é considerado um Tomek Link se não existir instância x k de forma que d ( xi , x k ) < d ( xi , x j ) ou d ( x j , x k ) < d ( xi , x j ) , definindo que uma das instâncias ( xi , x j ) são ruídos ou ambas encontram-se próximas à superfície de decisão. A técnica de Tomek Links tem sido aplicada com sucesso em conjunto com outros métodos de sobreamostragem, como o SMOTE (Batista e Monard, 2004). De forma a remover as instâncias x j da classe majoritária junto à superfície de decisão, evitando assim a sobreposição de classes que eventualmente podem já existir no conjunto de treinamento, bem como criadas pelos métodos de amostragem. • Condensed Nearest Neighbor Rule (CNN) O algoritmo CNN, o qual pode ser traduzido como “Regra de vizinhos mais próximos condensados”, também conhecido como algoritmo de Hart (Hart, 1968), cria um subconjunto consistente C a partir de um conjunto de treinamento T. O subconjunto C ⊆ T é considerado consistente quando um classificador 1-NN (classificador k-NN, sendo k = 1) consegue classificar de forma correta todo o conjunto T, tendo como conjunto de treinamento o subconjunto C. Com o objetivo de aplicar o CNN como método de subamostragem em conjuntos de dados desbalanceados, (Kubat e Matwin, 1997) propõe uma modificação a esse 31 método, de forma a remover instâncias apenas da classe majoritária. Isso é obtido ao se inicializar o conjunto C somente com todos os casos da classe minoritária e ir adicionando ao conjunto C apenas os exemplos da classe majoritária do conjunto T onde o classificador 1-NN conseguiu classificar corretamente. O conjunto balanceado passa a ser o subconjunto C, com as instâncias menos relevantes da classe majoritária removidas. • One Side Selection (OSS) O método OSS proposto por (Kubat e Matwin, 1997) consiste da aplicação do método Tomek Links seguido do CNN. O método Tomek Links atua removendo instâncias pertencentes à classe majoritária consideradas ruidosas ou próximas da superfície de decisão. De acordo com os autores, exemplos limítrofes são considerados instáveis, pois uma pequena quantidade de ruído pode fazê-los cair no lado errado do limiar de decisão. O método CNN atua removendo instâncias da classe majoritária distantes da superfície de decisão, consideradas irrelevantes para construção do modelo. • Edited Nearest Neighbor Rule (ENN) O método ENN proposto por (Wilson, 1972), em português, “Regra editada de vizinhos mais próximos”, remove instâncias da classe majoritária de maneira oposta ao método CNN, onde dado um conjunto de treinamento T, retira-se todos os casos xi ∈ T , cuja classe for diferente da predita pelo método KNN, onde geralmente k=3. De acordo com os (Wilson e Martinez, 2000), o método remove tanto os exemplos ruidosos quanto os exemplos limítrofes, propiciando uma superfície de decisão mais suave. • Neighbor Cleaning Rule (NCL) O método NCL proposto por (Laurikkala, 2001), em português, “Regra de limpeza de vizinhança”, consiste em ampliar o método ENN, funcionando para um problema de duas classes da seguinte maneira: para cada exemplo xi ∈ T , encontra-se os seus k=3 32 vizinhos mais próximos. Se xi pertencer à classe majoritária, e ocorrer um erro de predição relativo aos seus vizinhos mais próximos, xi será removido. Se xi pertencer à classe minoritária, e ocorrer um erro de predição relativo aos seus vizinhos mais próximos, os vizinhos mais próximos pertencentes à classe majoritária serão removidos. 4.3.3 Técnicas de Sobreamostragem Orientada Nesta seção serão apresentadas as técnicas onde se leva em conta alguma heurística de forma a adicionar instâncias da classe minoritária ao conjunto de treinamento. Conforme (Batista e Monard, 2004), as técnicas de sobreamostragem podem ser combinadas com sucesso com as técnicas de subamostragem descritas na seção anterior. • Synthetic Minority Over-Sampling Technique (SMOTE) O algoritmo SMOTE, proposto por (Chawla et al. 2001) é um das mais conhecidas técnicas de sobreamostragem, tendo obtido sucesso em diversas áreas de aplicação, servindo também como base para outros algoritmos de sobreamostragem. O SMOTE efetua o balanceamento do conjunto P de instâncias minoritárias, onde são criadas n instâncias sintéticas para cada instância xi do conjunto P. O algoritmo funciona criando instâncias sintéticas baseadas em uma instância minoritária e seus k vizinhos mais próximos. Uma instância sintética é gerada tendo como base as instâncias xi e x̂ i , sendo x̂ i selecionada aleatoriamente entre os k vizinhos de xi , e δ um número aleatório entre 0 e 1, conforme (10). O processo é repetido n vezes para cada instância xi do conjunto P. (10) xsin tético = xi + ( xˆi − xi ).δ De acordo com os experimentos efetuados por (Wang e Japkowicz, 2004), um dos pontos fracos do SMOTE reside no fato de que todas as instâncias positivas servem como base para a geração de instâncias sintéticas. Todavia, tal estratégia não leva em 33 conta que nem sempre uma distribuição homogênea de instâncias sintéticas é aplicável a um problema de desbalanceamento, tendo em vista que tal prática pode causar sobreajustamento e sobreposição de classes. Outro ponto fraco relatado é a variância de resultados, tendo em vista o caráter aleatório em alguns pontos do algoritmo. • ADASYN O algoritmo ADASYN (He et al., 2008) é baseado no algoritmo SMOTE, e tem como ponto chave adaptar a quantidade de instâncias sintéticas produzidas pelo SMOTE para cada instância xi no conjunto de instâncias positivas P, sendo i = 1,..., P . Tal adaptação é feita levando-se em conta que para cada instância xi ∈ P , serão criadas g i = Di .G instâncias sintéticas positivas, sendo Di obtido pelas equações (11) e G (12). Avaliando-se a equação (11), verifica-se que quanto maior o número de instâncias da classe majoritária, mas se está próximo da superfície de decisão, e mais instâncias sintéticas serão criadas. (11) ∆i Di = K Z Onde ∆ é o número de K vizinhos mais próximos pertencentes à classe majoritária, e Z é uma constante de normalização de forma que ∑ D = 1. (12) G = ( N − P ).β Onde β é um parâmetro contido entre 0 e 1, e indica o nível de balanceamento desejado. • Borderline SMOTE Com o objetivo de evitar os pontos fracos identificados no SMOTE, (Han et al., 2005) desenvolveram uma variação do mesmo, o qual tem como objetivo identificar as 34 instâncias próximas à superfície de decisão, identificadas como conjunto DANGER. De acordo com os experimentos efetuados pelos autores, verificou-se que as instâncias próximas da superfície de decisão são mais susceptíveis à erros, então, ao contrário do SMOTE que gera instâncias sintéticas a partir de todos os exemplos do conjunto P de instâncias minoritárias, o Borderline SMOTE irá aplicar o SMOTE somente às instâncias do conjunto DANGER. As instâncias positivas que pertencem ao conjunto DANGER são aquelas que, possuem mais vizinhos da classe negativa, do que vizinhos da classe positiva, sendo os vizinhos obtidos com o algoritmo KNN, onde k=5. • Cluster Based Oversampling (CBO) O método CBO, em português “Sobreamostragem baseada em agrupamentos” proposto por (Nickerson et al., 2001), tem como objetivo minimizar o problema de pequenos disjuntos em todas as classes, sendo aplicável a conjuntos de dados multiclasses. Esse balanceamento é obtido partindo do pressuposto de que um conjunto de dados retém algumas características originais do problema em questão, e usam estas características para fazer oversampling não somente da classe minoritária, mas também dos casos raros. O ponto chave do algoritmo consiste agrupar os dados de treinamento e então, balancear a distribuição de seus exemplos. Como técnica de agrupamento, utiliza-se o método Principal Direction Divisive Partitioning (PDDP) (Boley, 1998), que é uma técnica não-supervisionada de agrupamento para formar os grupos em todas as classes. Com os grupos em mãos, efetua-se a sobreamostragem a partir dos centróides obtidos. A utilização da técnica K-Means (MacQueen, 1967) como método de agrupamento aplicado CBO foi proposta por (Jo e Japkowicz, 2004). 35 Entrada: T Saída: T balanceado 1. Obtenha os grupos da classe negativa de T com PDDP; 2. max <- número de exemplos do maior grupo; 3. Para cada cluster Ci faça { 4. Replique os casos de Ci até que o tamanho de Ci seja igual a max; } 5. numeroGrupos <- quantidade de grupos da classe negativa; 6. max <- número de exemplos da classe negativa dividido por número de grupos; 7. Obtenha os grupos da classe positiva de T com PDDP; 8. Para cada grupo Ci faça { 9. Replique os casos de Ci até que o tamanho de Ci seja igual a max; 10. } 11. Retorna S Figura 4.3.3.1 – Pseudocódigo do algoritmo CBO Ao final do processo, todas as classes do conjunto de treinamento T estarão balanceadas internamente, isto é, todas as classes e seus grupos terão a mesma quantidade de exemplos. • SMOTE Boost O método SMOTE Boost (Chawla, 2003) consiste da integração do algoritmo AdaBoost.M2 ao SMOTE, onde a cada iteração são inseridas instâncias sintéticas de acordo com os erros do classificador. • DEC O método DEC (Chen et al., 2010) é um algoritmo híbrido, que efetua sobreamostragem através de um AG, em conjunto com subamostragem utilizando técnicas de agrupamento. Para a sobreamostragem, é utilizado o algoritmo SMOTE, o qual se vale de um vetor numérico evoluído por um AG baseado em evolução diferencial (Storn, 1997), e opera basicamente em três passos: 36 1) O processo de mutação é baseado no algoritmo SMOTE (10), onde se obtém valores aleatórios δ entre [0,1] para a criação de instâncias sintéticas 2) O cruzamento opera de acordo com (13), onde xmu . xij é o j-ésimo atributo do exemplo xi , a função aleatório(j) retorna a j-ésima seleção de um número aleatório entre [0,1] e CR é a constante de cruzamento entre [0,1]. A função aleatório(s) permite que ao menos um atributo seja obtido do s-ésimo exemplo mutante xmu . (13) 3) Dependendo do montante de sobreamostragem requerida, os passos 1) e 2) são computados circularmente. O método de subamostragem baseada em agrupamento utiliza o método K-Means (MacQueen, 1967) para identificar os centróides no conjunto de dados após o balanceamento e eliminar instâncias ruidosas ou próximas da superfície de decisão. 4.4 Aprendizado Sensível a Custos Os algoritmos tradicionais de classificação foram desenhados para reduzir os erros de predição, mas não distinguem, por exemplo, que é mais caro errar quando um paciente é diagnosticado como saudável, mas na verdade possui alguma doença que exige tratamento imediato. Fundamentações sobre abordagem de aprendizado utilizando custos foram publicadas por (Pazzani, 1994, Elkan, 2001), onde basicamente se utiliza uma matriz de custos de forma a atribuir pesos a cada classe (13). Estudos práticos mostraram que o aprendizado sensível a custos aplicado a determinados problemas foi superior às 37 técnicas de ajuste nos dados (Liu e Zhou, 2006b, McCarthy et. al, 2005), e de acordo com (Chawla et. al, 2004, Maloof, 2003, Weiss, 2004), o aprendizado sensível a custos possui uma forte conexão com o aprendizado em conjuntos de dados desbalanceados. Todavia nem sempre é fácil determinar a matriz de custos para todos os problemas (Chawla, 2003), apesar dos estudos publicados por (Elkan, 2001), o qual propõe um teorema para definição dos custos. Outro ponto fraco relatado na literatura consiste em que nem todos os algoritmos suportam aprendizado sensível a custos, mas dentre os que aceitam, pode se citar as árvores de decisão, redes neurais e o classificador bayesiano. No caso do classificador bayesiano, também conhecido como classificador ingênuo (em inglês, Naive Bayes), o mesmo não leva em conta que, quando existir um maior número de registros da classe y1 , a probabilidade de instâncias da outra classe y 2 serem classificadas incorretamente como y1 será maior, o que o torna bastante suscetível ao problema de conjunto de dados desbalanceados. Para eliminar esse efeito, deve-se aplicar uma matriz de custos, com objetivo de ponderar a probabilidade de classificação incorreta, que no caso de duas classes, pode ser escrita como (14). 0 λ12 L= λ 21 0 (14) Onde, aplicada ao problema do diagnóstico de câncer, poderia ser preenchida como: λ12 = probabilidade de classificar saudável como doente, e λ 21 = probabilidade de classificar doente como saudável. Então, com a aplicação dessa matriz de custos, o discriminante bayesiano (1) poderia ser reescrito como (15). 38 Se p ( x / y1 ) λ 21 P( y 2 ) , então x ∈ y1 > p( x / y 2 ) λ12 P( y1 ) p ( x / y1 ) λ 21 P( y 2 ) , então x ∈ y 2 Se < p( x / y 2 ) λ12 P( y1 ) (15) Com o advento do AdaBoost (Schapire, 1999), diversas estratégias que combinam métodos adaptativos e atribuição de custos foram implementadas, onde a cada ciclo os custos são ajustados de acordo com os erros do classificador. Dentre esses métodos, pode-se citar o Adacost (Fan et al. 1999) e recentemente os métodos AdaC1, AdaC2, AdaC3 (Sun et al. 2007). Estudos a respeito de custos aplicados às redes neurais foram efetuados por (Haykin, 1999, Kuzar e Kononenko, 1998, Drummond e Holte, 2000) exploraram custos aplicados a critérios de divisão em árvores de decisão. 4.5 Ajuste em Nível de Algoritmos Esta abordagem propõe aplicar ou ajustar os algoritmos de classificação existentes de maneira que o mesmo trate a classe minoritária de maneira diferenciada, de forma a diminuir os erros do classificador na presença de conjuntos de dados desbalanceados. Aplicados ao SVM (Support Vector Machine), são reportadas as pesquisas de (Lin et al., 2002) os quais propõem que as penalidades da otimização combinatória do SVM sejam diferenciadas de acordo com o nível de balanceamento de cada classe. Outra abordagem utilizando o SVM consiste em ajustar o limite das classes através de modificações no kernel, conforme apresentado por (Wu e Chang, 2003, 2004, 2005, Hong et al., 2007). Uma abordagem de aprendizado em uma só classe aplicada a redes neurais e SVM pode ser vista em (Manevitz, 2001), e de acordo com (Japkowicz, 2001), esta 39 abordagem mostrou ser superior em problemas multiclasses do que a tradicional técnica de aprendizado em duas classes. Todavia, tal abordagem não se aplica a algoritmos como árvores de decisão e Naive Bayes, pelo fato de os mesmos necessitarem no mínimo duas classes para que o treinamento seja efetuado. Os algoritmos adaptativos, também denominados algoritmos de boosting, como o AdaBoost (Schapire, 1999), consistem de um algoritmo iterativo onde a cada ciclo são atribuídos pesos às instâncias classificadas incorretamente, fazendo com que o algoritmo de classificação, o qual pode ser escolhido, tenha maior foco nessas instâncias na próxima interação. Tendo em vista que as instâncias pertencentes à classe minoritária são mais susceptíveis a erros, a cada iteração o algoritmo adaptativo delineia uma superfície de decisão mais adequada para esses exemplos minoritários, tornando tais algoritmos aplicáveis ao problema de conjunto de dados desbalanceados, podendo ainda ser combinado com outros métodos, conforme foi visto neste capítulo. Estudos mostraram que o problema de bias inapropriado descrito nas seções 3.2.1 e 3.2.5 pode ser resolvido utilizando algoritmos que não levem em conta métricas tidas como “gananciosas”, como por exemplo, ganho de informação (Kullback e Leibler, 1951), e entropia (Shanon, 1951) para a construção do seu modelo. A aplicação de um bias apropriado para o problema foi proposto por (Zadrozny e Elkan, 2001), e recentemente, a métrica CCPDT apresentada por (Liu et al. 2010) foi aplicada à árvores de decisão, a qual se mostrou robusta e insensível ao tamanho das classes, gerando regras estatisticamente significantes. Uma outra abordagem consiste na utilização de algoritmos genéticos (Goldberg, 1989) para a formação de regras de decisão (Freitas, 2002, 2003), pois os mesmos contam como função de desempenho uma métrica de classificação (vide seção 2.4), ao invés das métricas tradicionais de árvores de decisão. O algoritmo Timewaver, um AG preparado para predizer eventos raros foi desenvolvido por (Weiss, 1999), e um algoritmo genético para descobrir regras em pequenos disjuntos foi desenvolvida por (Carvalho e Freitas, 2002, 2003). A heurística de algoritmos genéticos será mais bem detalhada no próximo capítulo. 40 Capítulo 5 Algoritmos Genéticos Este capítulo tem como objetivo apresentar a heurística de algoritmos genéticos. 5.1 Introdução Muitos problemas não têm uma fórmula específica para sua solução, pois muitas vezes os mesmos são muitos complexos, ou levam muito tempo para se calcular a solução exata. Dessa maneira, a aplicação de uma heurística torna-se uma abordagem adequada. A heurística de algoritmos genéticos (AG) é utilizada para encontrar soluções ótimas ou próximas do ótimo em problemas de busca ou otimização combinatória. O AG é um método inspirado na natureza, sendo classificado como um algoritmo evolucionário, e uma heurística de busca global, possuindo uma abordagem probabilística e não determinística. O AG foi proposto inicialmente por John Holland, que buscava uma forma de modelar sistemas complexos adaptativos e de estudar a evolução através de simulação. Holland publicou seu primeiro trabalho preliminar sobre GA, em 1962. Ele continuou a sua pesquisa e em 1975 estabeleceu o seu método em um livro (Holland, 1975), sendo o mesmo popularizado por (Goldberg, 1989). Os problemas de otimização combinatória se baseiam em três principais características: codificação do problema, função objetivo e o espaço de busca associado ao problema. O AG endereça essas três características para solução do problema de 41 maneira simples, se comparado a outros algoritmos, (Whitley, 1994), e possui vantagens em relação a outros métodos em diversos aspectos, dentre eles: • Não necessita de funções deriváveis e outras informações auxiliares; • Realiza exploração simultânea em várias regiões do espaço de busca, pois trabalha com uma população e não com um único ponto; • São adaptáveis para processamento paralelo; • Conseguem evitar o mínimo local; • Pode obter soluções para problemas de otimização multidimensionais complexos. Entre as desvantagens do AG, temos: • São necessários muitos ciclos e avaliações de funções do que outros métodos, o que acarreta maior tempo de execução; • Não garante a convergência para o ótimo global; • Não existe um AG único, sendo necessária a incorporação de informações específicas do problema em estudo para uma melhor performance. Nas próximas seções serão detalhados os componentes do AG, o seu funcionamento e as suas aplicações. 42 5.2 Componentes do Algoritmo O AG é constituído de componentes que simulam a evolução de indivíduos ao longo de gerações através de operadores específicos, e por ter sido inspirado na teoria evolutiva, empresta termos da biologia e ecologia (Tabela 5.2.1). A junção desses componentes em um fluxo de processamento, conforme exemplificado na figura 5.3.1, formam o algoritmo genético propriamente dito. Tais componentes serão detalhados nas próximas seções. No AG clássico proposto inicialmente por (Holland, 1975), também conhecido como AG simples, o algoritmo é composto de cromossomos com representação binária, população de tamanho fixo, reprodução com substituição da população, seleção por método da roleta, cruzamento simples de 1 ponto, e mutação pontual. Todavia, não existe um único algoritmo que se adéque a todos os problemas de otimização, ao contrário, após o advento do AG, diversas implementações e melhorias foram propostas, de forma a adequar o AG aos problemas e desafios do mundo real. 43 Tabela 5.2.1 – Terminologia utilizada em algoritmos genéticos Termo Descrição Alelo Define os valores que um gene pode representar. Aptidão Valor que define o desempenho de um indivíduo para solucionar o problema. Cromossomo Estrutura composta por genes, a qual representa uma solução para o problema. Cruzamento Operador que efetua a troca de genes entre dois ou mais indivíduos. Fenótipo Representação de um ou mais cromossomos no espaço de busca. Indivíduo Uma solução proposta para resolver o problema. Contém um cromossomo. Gene Estrutura básica de um cromossomo. Representa uma parte da solução. Genótipo Informação que o cromossomo representa para solucionar o problema. Geração Representa um ciclo de criação, transformação e avaliação de indivíduos. Lócus Posição que um gene ocupa em um cromossomo. Mutação Operador que efetua uma modificação aleatória na estrutura de um cromossomo. População Conjunto de todos os indivíduos existentes em uma geração. Seleção Operador que efetua a seleção dos mais aptos para cruzamento. 44 5.2.1 Cromossomo e Genes Um típico AG requer uma representação genética de forma a codificar uma solução. Essa solução é representada por um cromossomo em um indivíduo, e um conjunto de indivíduos constituem uma população. Cada cromossomo codifica uma solução para o problema a ser otimizado, e é composto por genes, que representam uma parte da solução. No AG clássico proposto inicialmente por (Holland, 1975), o cromossomo é codificado de maneira binária e possui tamanho fixo. Posteriormente, optou-se por codificar os genes com números inteiros ou reais (Srinivas e Patnaik, 1994a, Michalewicz, 1996), e cromossomos com tamanho variável. O mais importante nesta representação é que um indivíduo represente um ponto no espaço das possíveis soluções para o problema (Koza, 1995). A figura 5.2.2.1 exemplifica um conjunto de valores representados respectivamente por um cromossomo binário e inteiro. Figura 5.2.1 – Exemplo de cromossomos e genes com codificação binária e inteira. 5.2.2 População Inicial O algoritmo inicia com a criação da população inicial de indivíduos. Dentre as abordagens existentes na literatura, pode-se citar: geração aleatória; geração uniforme através de uma grade; geração de maneira tendenciosa em regiões promissoras do espaço de busca; iniciar com uma grande população, e depois diminuir o tamanho da mesma; semeadura (seeding): utilizar a solução de outro método de otimização para gerar os indivíduos iniciais. O objetivo principal em qualquer dessas abordagens é explorar soluções no espaço de busca, e aumentar a diversidade da população. 45 5.2.3 Função Objetivo A função objetivo f ( x) , também conhecida como função de desempenho e em inglês, fitness, é a função que deve ser otimizada pelo AG, pois define o quanto a solução codificada por aquele indivíduo está apta para resolver o problema em estudo. A fórmula da função objetivo varia de acordo com o problema. 5.2.4 Avaliação e Substituição A avaliação ocorre no início do algoritmo, e ao final de cada geração. Neste ponto é assegurado que todos os indivíduos recém criados tenham a sua função objetivo calculada. A substituição visa eliminar os indivíduos menos aptos da população, levando-se em conta que a quantidade de indivíduos não pode ultrapassar uma população máxima pré-estabelecida. Pode-se citar como estratégias de substituição: • Geracional Seja t o tamanho da população, os t pais são substituídos pelos t filhos em cada geração. • Geracional com elitismo Os e<t melhores pais não são substituídos ao final da geração, sendo tipicamente e=1. O risco de pressão de seleção e convergência prematura aumenta ao se aumentar e. • Regime permanente (Steady State) A cada geração apenas 1 ou 2 filhos são gerados e substituem: os 2 piores indivíduos da população, os pais, os indivíduos mais velhos. 46 5.2.5 Critério de Parada De posse da aptidão de cada indivíduo, o algoritmo verifica se o critério de parada foi atingido. O critério de parada pode ser: • Um número máximo de gerações; • O desempenho ótimo, se conhecido; • Um valor de desempenho não ótimo a ser atingido; • O grau de convergência da população, que é a diferença do desempenho entre o indivíduo mais apto e menos apto; • Pressão de seleção, que consiste de max( f ( x)) . média ( f ( x)) 5.2.6 Seleção De forma a permitir que os indivíduos compartilhem o seu conteúdo genético com outros, faz-se uma seleção onde os mais aptos terão maior probabilidade de fazer parte de uma população intermediária (matting pool), destinada ao cruzamento. Os critérios de escolha mais conhecidos são a seleção por roda da roleta, torneio e amostragem estocástica universal. A figura 5.2.6.1 exibe como indivíduos mais aptos, e por conseqüência com maior desempenho acumulado, têm maior probabilidade de serem selecionados. Conforme (Michalewicz, 1996), o cálculo da probabilidade de seleção de um indivíduo xi , proporcional à sua aptidão, consiste da razão entre o desempenho f ( xi ) e o somatório do desempenho de toda a população, onde pmax=população máxima (16). pi = f ( xi ) p max (16) ∑ f (x ) k k =1 47 Figura 5.2.6.1 – Seleção por roda da roleta. Os indivíduos com maior desempenho acumulado têm maior probabilidade de serem selecionados. 5.2.7 Processo de Busca Global De acordo com (Holland, 1975), as técnicas evolutivas de busca global utilizam o princípio de exploration e exploitation. Exploration consiste em buscar por novos pontos do espaço de busca, e é executado pelo operador de mutação. Exploitation consiste em extrair e recombinar as informações já encontradas no espaço de busca, o que é executado pelo operador de cruzamento. Exploitation ocorre em baixa pressão de seleção, fazendo com que o algoritmo assuma um comportamento aleatório. Exploration ocorre em alta pressão de seleção, fazendo com que o algoritmo assuma um comportamento de subida de encosta. 48 5.2.8 Cruzamento O cruzamento (crossover) é um dos principais operadores do AG, o qual reproduz em um ambiente computacional o comportamento evolutivo que ocorre na natureza, pois permite que os indivíduos, os quais foram inicialmente criados de maneira aleatória, compartilhem a sua codificação com outros indivíduos, gerando filhos e criando uma diversidade orientada pela aptidão dos pais. Conforme (Srinivas e Patnaik, 1994b): “O poder do AG vem do operador de cruzamento”. Após o processo de seleção, é criada uma população intermediária de indivíduos selecionados para o cruzamento. Os indivíduos dessa população intermediária são selecionados, geralmente em pares, seja de maneira aleatória ou de maneira em que os pares tenham o mesmo nível de desempenho (Spears, 2001). Apesar de existirem diversas variações, existem três estratégias básicas para o cruzamento: • Simples Um ponto de corte, escolhido aleatoriamente (Figura 5.2.8.1). Figura 5.2.8.1 – Cruzamento simples. • Múltiplo Mais de um ponto de corte, escolhidos aleatoriamente (Figura 5.2.8.2) 49 Figura 5.2.8.2 – Cruzamento múltiplo. • Uniforme Existe uma máscara pré-definida, orientando onde a troca de genes deverá ocorrer (Figura 5.2.8.3). Figura 5.2.8.3 – Cruzamento uniforme. De acordo com a análise de (Spears, 2001), a qual se baseia em uma taxa de perturbação (disruption rate) na distribuição de amostras, dentre as estratégias de cruzamento, o cruzamento múltiplo com dois pontos causa menos perturbação, e o cruzamento uniforme é o que causa mais perturbação. Frequentemente encontra-se na literatura o percentual de cruzamento (pc) como 50% < pc < 100% (Srinivas e Patnaik, 1994b). 50 5.2.9 Mutação O operador de mutação permite que o algoritmo busque por novas soluções no espaço de busca, pois em problemas práticos o AG tende a gerar indivíduos muito parecidos, ocasionando perda de diversidade. Conforme (Michalewicz, 1996), “O intuito por trás do operador de mutação é introduzir alguma variabilidade extra na população”. De acordo com (Srinivas e Patnaik, 1994a), a mutação é um operador secundário que pode restaurar o material genético perdido ou inexistente em gerações anteriores. Os indivíduos são escolhidos aleatoriamente da população. De acordo com (Whitley, 1994), a exemplo do que ocorre na natureza, o percentual de indivíduos que sofrem mutação não deve ultrapassar 1%. Na literatura, constam estudos de caso (Tate e Smith, 1993) onde se utilizam percentuais maiores, mas o suficiente para assegurar a diversidade de cromossomos na população, pois, como acontece na natureza, a mutação também pode danificar a codificação do indivíduo. A mutação pontual modifica um gene por cromossomo (figura 5.2.9.1), mas existem outras estratégias que modificam mais de um gene. De acordo com (Srinivas e Patnaik, 1994b), frequentemente encontra-se na literatura o percentual de mutação (pm) como 0,1% < pm < 5% . Ainda neste trabalho, os autores propõem uma probabilidade adaptativa tanto para mutação quanto para cruzamento. Em (Tate e Smith, 1993), são citados os benefícios obtidos por altos percentuais de mutação. Figura 5.2.9.1 – Operador de mutação pontual. 51 5.2.10 Parâmetros do Algoritmo De forma a orientar o funcionamento do algoritmo, alguns parâmetros são necessários. A lista dos principais parâmetros utilizados no AG está relacionada na tabela 5.2.10. Tabela 5.2.10 – Típicos parâmetros para funcionamento do AG. Parâmetro Descrição População inicial, O tamanho da população irá depender da complexidade do população máxima problema. Assim, quanto maior a população, maior a chance de encontrar a solução para o problema. Porém, maior será o tempo de processamento. Caso o tamanho da população aumente muito, o processo estará se aproximando de uma busca exaustiva. Geralmente utiliza-se população inicial>população máxima, pois dessa maneira é possível, através de uma busca ampla inicial, diversificar as soluções no espaço de busca (Barreto, 1996). Percentual de Define o percentual da população que será selecionado para Cruzamento cruzamento. Percentual de Mutação Define o percentual da população que será selecionado para mutação. Percentual ou Define um percentual ou quantidade dos melhores indivíduos quantidade de elitismo da geração anterior que serão mantidos para a próxima geração. Número de Gerações Quantidade de ciclos que o algoritmo funcionará. 52 5.3 Funcionamento do Algoritmo Conforme o fluxo da figura 5.3.1, o algoritmo começa com a criação da população inicial, que é feita de maneira aleatória. Logo em seguida essa população terá a sua função de aptidão executada para cada indivíduo da mesma, e os indivíduos menos aptos, eliminados. Em seguida, os critérios de parada são verificados, e caso o mesmo tenha sido atingido, o processamento do algoritmo termina. Caso o algoritmo deva prosseguir, é iniciada uma geração, onde serão selecionados os indivíduos mais aptos para a operação de cruzamento. Em seguida, serão selecionados os indivíduos que sofrerão mutação no seu gene. Ao final da geração, o processo retorna ao passo 2, e uma nova geração é iniciada, e o processo irá se repetir até que o critério de parada seja atingido. . Figura 5.3.1 – Fluxo de processamento típico em um algoritmo genético. 53 5.4 Aplicações As aplicações do AG são bastante abrangentes, sendo indicado em problemas NP-Difíceis e em casos onde outras técnicas de otimização falham. Dentre suas inúmeras aplicações, pode-se citar como exemplo: • Logística: Na solução de problemas de roteamento, também conhecido como o problema do caixeiro viajante, o qual consiste na minimização da distância de uma rota, combinando a ordem de visitas em uma lista de localidades. Um repositório de dados com exemplos desse tipo de problema foi disponibilizado por (Reinelt, 1991); • Planejamento e controle de produção: na alocação de trabalhos em máquinas de uma indústria, também conhecido como job shop problem, ou no problema da grade de turmas, onde o objetivo é maximizar a alocação de professores e salas de aula em um colégio, combinando a disponibilidade das salas e professores de forma a preencher uma grade curricular (Petrovic e Fayad, 2005); • Robótica: Planejamento de trajetórias em robôs (Sariff e Buniyamin, 2009); • Processamento de sinais: Projeto de filtros para eliminação de ruídos e ajuste de sinais diversos (White e Flockton, 1994); • Engenharia: No projeto de esquema de semicondutores, aeronaves, motores, redes de comunicação, estruturas (Motta e Ebecken, 2007, de Lima et al. 2005); • Economia e finanças: No desenvolvimento de estratégias para licitações, planos para mercados emergentes, identificação e mapeamento de eventos (Czarnitzki e Doherr, 2002); • Medicina e biologia: Análise de modelos simbióticos, análise de genoma, a análise de viabilidade de mutações (Walker, 1994). 54 • Mineração de Dados: Em atividades de preparação, seleção de atributos, classificação e predição (Freitas, 2002, 2003, Ebecken et al., 2005). Na próxima seção será apresentado um AG aplicado ao problema de classificação em conjuntos de dados desbalanceados. 55 Capítulo 6 Algoritmo Genético para Balanceamento de Conjuntos de Dados Este capítulo tem como objetivo apresentar a estrutura e funcionamento do algoritmo genético para balanceamento desenvolvido neste trabalho. 6.1 Introdução De forma a buscar soluções para o problema de classificação em conjuntos de dados desbalanceados, propõe-se neste trabalho uma abordagem de pré-processamento aplicado a esses conjuntos, com a criação de instâncias sintéticas da classe positiva de forma a balancear o mesmo, caracterizando-se como uma estratégia de sobreamostragem (oversampling). Todavia, conforme foi demonstrado no capítulo 4, não é vantajoso criar tais instâncias sintéticas sem utilizar algum critério que evite o sobreajustamento. Para efetuar a sobreamostragem de maneira orientada, foi criado um algoritmo genético para o balanceamento de conjunto de dados (AGB), o qual busca pelo melhor posicionamento de regiões dentro dos valores mínimos e máximos do conjunto de instâncias positiva P, as quais são preenchidas aleatoriamente com instâncias sintéticas. Dessa maneira efetua-se uma distribuição de instâncias no conjunto de treinamento T, compensando o desbalanceamento entre as classes. 56 Conforme foi verificado no capítulo 3, existem diversas causas associadas ao problema de balanceamento, as quais ocorrem separadamente ou em conjunção. O AGB é uma simples, mas elegante técnica, cujo objetivo não é corrigir somente uma das causas de desbalanceamento, mas permite que um algoritmo genético possa evoluir para um subconjunto das instâncias da classe minoritária que venha a sanar todas as causas existentes no problema em estudo, fornecendo melhores dados para o treinamento do classificador. Outrossim, a motivação de um AG para sobreamostragem, ao invés de se utilizar diretamente um AG para criar regras de decisão (vide seção 4.5), reside no fato de ser possível escolher um algoritmo de classificação mais adequado para o conjunto de dados. No AGB, cada indivíduo é representado por um cromossomo contendo r regiões, cada região contém um conjunto de n genes, sendo n a quantidade de atributos do conjunto de treinamento T. Cada gene representa um limite mínimo e máximo de um atributo. Conforme exemplificado nos gráficos das figuras 6.1.1 e 6.1.2, em um problema desbalanceado de duas dimensões, são criadas r regiões, as quais são preenchidas aleatoriamente com instâncias sintéticas. O melhor indivíduo é aquele que possuir a melhor combinação de regiões e instâncias sintéticas, de forma a obter o melhor balanceamento e por conseqüência o melhor desempenho de classificação, o qual é calculado pela métrica AUC (9). A seguir, apresenta-se a estrutura e operadores do algoritmo implementado. 57 Figura 6.1.1 – Conjunto de dados desbalanceados. Figura 6.1.2 – Aplicação de regiões sintéticas de forma a balancear o conjunto de dados. 58 6.2 Codificação O cromossomo C que codifica uma solução no AGB é composto de um conjunto de t genes, sendo t = r * n , onde r é a quantidade de regiões, e n a quantidade de atributos, sendo C = { g c ( a j ),..., g r ( a n )}, {c = 1,..., r}, { j = 1,..., n} . Cada gene g c ( a j ) está associado a uma região c, e a um atributo a j , e é composto de um valor mínimo e máximo, compreendido entre os valores mínimos e máximos do atributo a j , no subconjunto P de instâncias positivas (17). min( Pj ) ≤ min( g c ( a j )) ≤ max( Pj ), e min( Pj ) ≤ max( g c (a j )) ≤ max( Pj ) (17) Os cromossomos da população inicial serão inicializados aleatoriamente, dentro dos valores mínimos e máximos dos atributos do conjunto de classes positivas P. O problema exibido na figura 6.1.1 contém duas variáveis (x,y) do tipo numérico contínuo. O cromossomo aplicado a esse problema possui r=4 regiões, cada uma com n=2 genes, sendo o total de genes t=8, conforme demonstrado na tabela 6.2.1, onde cada coluna x ou y representa um gene. Os limites mínimos e máximos de cada gene estão assinalados em amarelo no gráfico da figura 6.2.2. Tabela 6.2.1 – Codificação de uma solução com 4 regiões e dois atributos numéricos contínuos. 59 Figura 6.2.2 – Regiões assinaladas com os mínimos e máximos de cada gene do cromossomo. Para atributos do tipo categóricos não ordenados, também conhecidos como atributos nominais, o gene deve ser adaptado para conter um subconjunto dos valores existentes para esse tipo de atributo na classe positiva, tendo em vista que o mesmo não pode ser representado por mínimos e máximos, pois não existe valor anterior ou posterior. Por exemplo, não existe uma ordenação de valores no atributo país, o qual contém os países do MERCOSUL (Brasil, Argentina, Uruguai, Paraguai). Dessa maneira, se adicionarmos o atributo país ao cromossomo da tabela 6.2.1, o novo gene se assemelharia ao exemplo da tabela 6.2.2. As instâncias sintéticas pertencentes a essas regiões deverão conter um dos países existentes no gene relativo ao atributo país. 60 Tabela 6.2.2 – Codificação de um gene para um problema com um atributo do tipo nominal (país). Com as regiões definidas, deve-se preencher as mesmas com instâncias sintéticas, sendo sugerido que o conjunto de instâncias da classe positiva P tenha a mesma quantidade de instâncias do conjunto da classe negativa N, ou seja, P ≅ N . São criadas q = b. P 100 instâncias sintéticas, sendo b o percentual de sobreamostragem a ser aplicado no conjunto de dados. As q instâncias sintéticas são criadas aleatoriamente dentro dos limites de cada região, sendo a quantidade de instâncias distribuídas proporcionalmente à área das mesmas. Conforme os experimentos iniciais, a criação de instâncias aleatórias que convergem para uma solução ótima ou próxima do ótimo tendem a criar instâncias sintéticas semelhantes às instâncias originais e às outras instâncias sintéticas, levando-se em conta que essa conformação acarreta melhor aptidão dos indivíduos, que é baseada no desempenho dos classificadores. Todavia, esse desempenho não é verdadeiro, pois o modelo criado não consegue generalizar com novos dados, o que é chamado sobreajustamento, ou em inglês, overfitting. A solução proposta para este problema consiste em, dado o conjunto de instâncias sintéticas S = {s i ,..., s q }, i = 1,..., q , uma instância sintética s i , para ser válida, deve manter uma distância dos seus k=5 vizinhos mais próximos maior ou igual à distância mínima dm, conforme demonstrado na figura 6.2.3. As instâncias sintéticas não válidas são descartadas, e outra instância sintética é criada, por v=7 tentativas, até que se obtenha uma instância válida. A distância mínima dm consiste na média da distância dos k vizinhos mais próximos de cada instância xi , pertencente ao conjunto de instâncias positivas P (18), 61 onde P = {xi , y i }, i = 1,..., m , o conjunto L = {l1 ,..., lk } os k vizinhos mais próximos de xi (19), e d ( xi , li ) , uma função de distância. Neste trabalho foi utilizada a distância euclidiana para atributos numéricos, e a técnica de sobreposição para atributos nominais (Wilson e Martinez, 1997, Boriah, 2008, Argentini e Blanzieri, 2010). . m k ∑∑ d ( x , l ) i dm = j i =1 j =i m*k (18) (19) L = KNN ( xi , k ), L = {l1 ,..., l k } Figura 6.2.3 – As instâncias sintéticas cuja distância para os seus k vizinhos mais próximos (setas vermelhas) seja menor que a distância mínima são descartadas. 62 Ao contrário do algoritmo SMOTE, que efetua o balanceamento do conjunto de dados sem levar em conta que alguma instância pode ser duplicada, esta solução não permite instâncias duplicadas ou similares às instâncias já existentes. Com esta solução também se evita a sobreposição de regiões, o que em ambos os casos traria um problema de overfitting ao processo de treinamento. Como pôde ser visto no capítulo 4 com os algoritmos Bordeline SMOTE (Han el al., 2005) e ADASYN (He et al., 2008), existe uma preocupação no processo de orientação e ajuste do balanceamento do conjunto de dados, o qual consiste em não se criar instâncias sintéticas próximas à superfície de decisão, de forma a não se criar ruídos no treinamento. No caso do AGB, optou-se por deixar que o próprio processo evolutivo decida onde alocar as instâncias sintéticas, tendo em vista que as piores alocações podem levar a um pior resultado de AUC. O indicador DANGER, proposto por (Han et al., 2005), for aplicado ao algoritmo AGB, e permite identificar se as regiões evoluídas fazem parte da superfície de decisão. Em um trabalho anterior (Beckmann et al., 2009), cada gene do cromossomo representava uma instância sintética. No AGB, os experimentos demonstraram que a utilização de regiões para a codificação torna o AG mais escalável, e menos sensível a conjuntos de dados com maior número de instâncias e maior nível de desbalanceamento, pois o cromossomo não irá crescer de acordo com o número de instâncias que devem ser criadas para balancear o conjunto. 6.3 Operador de Cruzamento A seleção de indivíduos para cruzamento é feita por roda da roleta (Goldberg, 1989). Optou-se pelo cruzamento múltiplo com dois pontos de corte escolhidos aleatoriamente por região, com geração de dois indivíduos por operação, conforme exemplificado na figura 6.3.1, onde cada cromossomo apresenta 2 regiões e 4 atributos. Para cada novo indivíduo, um novo conjunto de instâncias sintéticas é inserido dentro dos limites das regiões recém criadas. Com isso é possível evoluir o tamanho e 63 posicionamento das regiões, de forma a prover as instâncias sintéticas que agreguem ganho de informação à classe minoritária do conjunto de dados. Não é possível cruzar separadamente os mínimos e máximos entre indivíduos, o intercâmbio de informações ocorre em nível de genes. Também foram tentadas outras quantidades de pontos de corte por região, sendo a quantidade de 02 pontos a que apresentou melhores resultados. Figura 6.3.1 – Operador de cruzamento múltiplo, com dois pontos de corte por região. 6.4 Mutação O operador de mutação seleciona por sorteio alguns genes a serem substituídos aleatoriamente, de forma a trazer diversidade à população. Para o AGB foi utilizada a mesma estratégia de mutação demonstrada na seção 5.2.9. 6.5 Função Aptidão A função de aptidão f do AGB consiste na métrica AUC (9), onde para todo indivíduo é efetuado um processo de treinamento e teste, onde se junta ao conjunto de treinamento T as instâncias sintéticas positivas S criadas dentro dos limites das regiões 64 (20), contidas no cromossomo do indivíduo. Ao final do processo de treinamento e teste, o qual pode ser feito com qualquer algoritmo de classificação presente no aplicativo de mineração de dados Weka (Witten e Frank, 2005), se obtém a aptidão f do balanceamento obtido com as instâncias sintéticas do indivíduo. f = AUC (T ∪ S ) (20) Conforme verificado nos experimentos do AGB, e também relatado por (Michalewicz, 1996, Freitas, 2003), os algoritmos genéticos aplicados à classificação são métodos que demandam mais tempo que outras heurísticas, pois para cada indivíduo da população, um processo de treinamento e teste deve ser executado, sendo a fase de treinamento a que mais consome tempo. De acordo com o que foi detalhado na seção 2.3, e confirmado nos experimentos da seção 7.4.5, a aplicação de um algoritmo de classificação incremental pode diminuir o tempo de processamento do AGB, pois o conjunto de treinamento T original é treinado somente uma vez, e as instâncias sintéticas de cada indivíduo adicionadas e treinadas a uma cópia do modelo preditivo treinado inicialmente. A utilização do aprendizado incremental no AGB só é possível com a seleção de um dos algoritmos listados na tabela 6.5.1. Ao selecionar um algoritmo incremental, o processo de seleção utilizado será a partição do conjunto de dados para treino e teste. Para outros algoritmos não incrementais, o processo utilizado será a validação cruzada, com 10 desdobramentos. Vale ressaltar que, apesar do AGB demandar maior tempo para o balanceamento do conjunto de dados em relação a outras estratégias de pré-processamento, depois do conjunto balanceado, o processo de treinamento e teste fica restrito ao tempo de processamento do algoritmo de classificação escolhido. Cabe ainda lembrar que a sobreamostragem obtida serve apenas para a criação do modelo durante o processo de treinamento, e que durante a avaliação do modelo todas as instâncias sintéticas são removidas. 65 Nome do Algoritmo AODE DMNBText IB1, IBk KStar LWL NaiveBayesMultinomialUpdateable NayveBayesUpdateable NNge RacedIncrementalLogitBoost Winnow Tabela 6.5.1 – Algoritmos de classificação incremental existentes no Weka 3.6. 6.6 Implementação De forma a distribuir o algoritmo desenvolvido neste trabalho, e facilitar a reprodução dos experimentos por outros pesquisadores, o AGB foi implementado como um plugin para pré-processamento no aplicativo de mineração de dados Weka (Witten e Frank, 2005). O aplicativo Weka foi desenvolvido na linguagem Java (Gosling el al., 2000), e provê componentes orientados a objeto de código aberto, como estrutura de dados, avaliadores de métricas e distâncias, menus e telas. 66 Figura 6.6.1 – A opção de pré-processamento do módulo Explorer no aplicativo Weka. O Weka é composto de diversos módulos, e dentre eles, o módulo Explorer (Figura 6.6.1). O módulo Explorer é composto de abas, as quais provêm funcionalidades relativas às atividades de mineração de dados. O AGB foi criado como um filtro na aba de pré-processamento (Preprocess), nomeado como SamplingRangeGA, e localizado na subpasta filters/supervised/instance (figura 6.6.2). Notar ainda no histograma da figura 6.6.1 que o conjunto de dados em estudo possui uma classe desbalanceada. 67 Figura 6.6.2 – Localização do plugin SamplingRangeGA na árvore de filtros para pré-processamento do aplicativo Weka. No Weka, para se implementar um filtro de pré-processamento, utiliza-se a linguagem Java, e valendo-se das funcionalidades inerentes à programação orientada a objeto, deve-se criar uma nova classe, a qual deve estender a classe SimpleBatchFilter e implementar a interface SupervisedFilter. O diagrama de classes UML (Booch, Jacobson et Rumbaugh, 1999) da figura 6.6.3 exibe o conjunto de classes que compõe o AGB. 68 Figura 6.6.3 – Diagrama UML relativo às classes implementadas no AGB. 69 Figura 6.6.4 – Tela de parametrização do algoritmo Sampling GA no aplicativo Weka. Ao se estender a classe SimpleBatchFilter, o Weka provê automaticamente uma tela para que o usuário entre com os parâmetros do algoritmo implementado. A figura 6.6.4 exibe a tela com os parâmetros para execução do AG, relacionados na tabela 6.6.1. Para maiores detalhes sobre os parâmetros básicos de um AG (marcados com * na tabela 6.6.1), vide a seção 5.2.10. No Weka, a título de padronização, foram mantidos os nomes dos parâmetros em inglês, e de acordo com a notação Java, a primeira letra de cada parâmetro foi mantida em minúscula, e as palavras subsequentes iniciam em caixa alta, sem separadores ou espaços em branco (Gosling et al., 2000). 70 Tabela 6.6.1 – Parâmetros do AGB. Parâmetro Classificador * Percentual de cruzamento Mostrar processamento interno * Percentual de elitismo Descrição Classificador que irá avaliar os indivíduos. Percentual da população que compartilhará a sua codificação com o operador de cruzamento. Exibe informações internas do algoritmo no console Java. Parâmetro no Weka classifier crossoverPercent debug Percentual dos melhores indivíduos da elitismPercent população anterior que será mantido para a próxima população. * População inicial Quantidade de indivíduos que serão initialPopulation criados no início de execução do algoritmo. * Número máximo Quantidade de ciclos que o algoritmo irá maximumGenerations de gerações funcionar. * População máxima Quantidade de indivíduos que maximumPopulation permanecerão na população ao final de cada geração. Índice da classe Número inteiro iniciado por 0, minorityClassIndex minoritária indicando qual classe do conjunto de dados é a classe minoritária. * Percentual de Percentual de indivíduos da população mutationPercent mutação os quais sofrerão mutação em seus genes. Número de regiões Número de regiões que serão criadas e numRanges evoluídas no algoritmo. Percentual de Percentual de instâncias sintéticas que percentToSample sobreamostragem serão criadas e adicionadas ao conjunto de instâncias positivas. Semente aleatória Número que irá alimentar o gerador de seed números pseudo-aleatórios do algoritmo genético. Deixar -1 para utilizar o número de milisegundos do sistema. Mostrar janela de Se verdadeiro, exibe uma janela showResultWindow resultados adicional com detalhes da evolução do algoritmo (figuras 6.8.3 e 6.8.4). 71 Figura 6.6.5 – Tela para acompanhamento da evolução do algoritmo AGB. A figura 6.6.5 mostra a tela para acompanhamento da evolução do algoritmo, onde o painel do lado esquerdo mostra os detalhes como o conjunto de dados que se está processando, os parâmetros do algoritmo, melhor e pior indivíduo, e detalhes dos 10 melhores indivíduos na população, conforme detalhado na figura 6.6.6. O painel superior do lado direito contém um gráfico de projeção de pontos em três dimensões, os botões na parte inferior permitem intercambiar 3 variáveis do conjunto de dados para visualização em 3 dimensões. Os pontos azuis são as instâncias da classe negativa, em amarelo são as instâncias da classe positiva e em lilás são as instâncias positivas sintéticas criadas pela evolução do algoritmo dentro de regiões. O painel inferior direito contém a evolução do pior e melhor indivíduo ao longo das gerações. Relation Name: pima Num Instances: 768 Average euclidean distance:0,2636 (0,0925) -N 100 -w 0 -i 50 -m 40 -r 4 -u 25 -c 70 -g 50 -e 5 Generation #50 72 Best individual: 49 0,8096 in 1013797 ms Worst individual: 49 0,6975 # generation -- ---------- 1 49 Mean:0,7209 2 45 Mean:0,7266 3 44 Mean:0,7290 4 49 Mean:0,7069 5 49 Mean:0,7152 6 49 Mean:0,7201 7 49 Mean:0,7217 8 49 Mean:0,7096 9 49 Mean:0,7071 10 49 Mean:0,7155 fitnesses ---------AUC:0,8096 Precision:0,6790 Recall:0,6157 F-Measure:0,6458 G- %DANGER:0.0 AUC:0,8092 Precision:0,7118 Recall:0,6082 F-Measure:0,6559 G%DANGER:0.0 AUC:0,8091 Precision:0,6667 Recall:0,6418 F-Measure:0,6540 G%DANGER:0.0 AUC:0,7988 Precision:0,6951 Recall:0,5784 F-Measure:0,6314 G%DANGER:0.0 AUC:0,7936 Precision:0,6667 Recall:0,6119 F-Measure:0,6381 G%DANGER:0.0 AUC:0,7816 Precision:0,6418 Recall:0,6418 F-Measure:0,6418 G%DANGER:0.0 AUC:0,7807 Precision:0,6602 Recall:0,6306 F-Measure:0,6450 G%DANGER:0.0 AUC:0,7774 Precision:0,6840 Recall:0,5896 F-Measure:0,6333 G%DANGER:0.0 AUC:0,7768 Precision:0,6371 Recall:0,6157 F-Measure:0,6262 G%DANGER:0.0 AUC:0,7702 Precision:0,6184 Recall:0,6530 F-Measure:0,6352 G%DANGER:0.0 Figura 6.6.6 – Detalhes da evolução do algoritmo contido no painel esquerdo da tela de acompanhamento do AGB. A figura 6.6.6 mostra os detalhes do painel esquerdo na tela de acompanhamento do algoritmo, onde pode ser vista a evolução do AGB. Para os 10 melhores indivíduos da população são exibidas a posição de desempenho, a geração em que o mesmo foi criado, os valores das métricas AUC, Precisão, Recall, F-Measure e G-Mean, e a métrica DANGER (Han et al., 2005), aplicada às regiões evoluídas pelo algoritmo. O objetivo final do AGB é efetuar um pré-processamento no conjunto de dados, de forma a balancear a quantidade de instâncias entre classes, preparando o conjunto de dados para o algoritmo de classificação. Isso é alcançado após o AGB ter atingido o critério de parada, seja pelo número de gerações, ou pelo valor ótimo de AUC, isto é, 100. Após a parada do AGB, o filtro automaticamente seleciona o melhor indivíduo, e aplica as suas instâncias sintéticas ao conjunto de dados original. Conforme assinalado 73 na figura 6.6.7, o histograma da classe positiva agora tem a quantidade aproximada de instâncias, em relação à classe negativa. Figura 6.6.7 – Histograma da classe positiva balanceada após o processamento do AGB. 74 Figura 6.6.8 – Classificador aplicado ao conjunto de dados balanceado. Com o conjunto de dados balanceado, agora basta selecionar a aba Classify e iniciar o processo de classificação. Caso se tenha selecionado o mesmo classificador utilizado no pré-processamento, será possível reproduzir os resultados obtidos anteriormente pelo melhor indivíduo no AGB (figura 6.6.8). No próximo capitulo o AGB será comparado a outros algoritmos e experimentos publicados na literatura. 75 Capítulo 7 Experimentos e Resultados Neste capítulo serão demonstrados e discutidos os experimentos e resultados obtidos com o AGB. 7.1 Introdução Com o objetivo de comprovar a aplicabilidade do AGB, neste capítulo serão demonstrados e comparados os resultados, em termos de AUC, Precision, F-Measure, Recall e G-Mean, obtidos pelos classificadores C4.5 e Naive Bayes Updateable, após o balanceamento do conjunto de dados efetuado com o AGB. Os resultados do AGB em conjunto com o algoritmo C4.5 (Quinlan, 1988) foram comparados com os resultados dos métodos de sobreamostragem orientada publicados em (Batista e Monard, 2004) e com os resultados obtidos com os algoritmos Borderline- SMOTE (Han et al., 2005), e ADASYN (He et al., 2008). Foi utilizado o indicador DANGER, proposto por (Han el al., 2005), de forma a identificar se as instâncias sintéticas foram criadas próximas à superfície de decisão. Também foram efetuados experimentos com aprendizado incremental aplicado a algoritmos genéticos, onde o AGB, em conjunto com o classificador Naive Bayes Updateable (George e Pat, 1995) foram comparados com os resultados obtidos pelos classificadores Naive Bayes, e SMOTE (Chawla et al., 2002) e AdaBoost (Schapire et 76 al., 1999) combinados com o Naive Bayes, todos estes implementados no aplicativo de mineração de dados Weka versão 3.6 (Witten e Frank, 2005). 7.2 Conjuntos de dados Para a execução dos experimentos foram utilizadas 16 bases de dados provenientes do UCI machine learning repository (Blake e Merz, 1998), a partir dos quais foram preparados dezoito conjuntos de dados onde uma classe foi selecionada, e as restantes aglutinadas em uma só classe, conforme utilizado nos experimentos de (Batista e Monard, 2004, He et al., 2008, Han et al., 2005). Dessa maneira é possível experimentar o AGB em diversas condições, como por exemplo, níveis de balanceamento diferenciados, sobreposição entre classes, quantidade de instâncias e tipos de atributos. A Tabela 7.2.1 demonstra as bases de dados preparadas e ordenadas pela taxa de desbalanceamento, Imbalance Rate (IR) (Orriols-Puig el al., 2009), que é a razão entre a quantidade de instâncias negativas e positivas. Também foi adicionado à essa tabela a distância média (DM), que consiste na distância euclidiana média dos k vizinhos de todas as instâncias do conjunto S de instâncias positivas, conforme foi descrito no capítulo 6, sendo o valor entre parênteses o desvio padrão. Todos os conjuntos de dados tiveram os seus valores numéricos normalizados entre 0 e 1. Cabe aqui uma ressalva, pois de acordo com (He e Garcia, 2009), apesar da iniciativa para prover conjuntos de dados pelo UCI machine learning repository (Blake e Merz, 1998), entre outros, não existe um repositório de dados padronizado para problemas desbalanceados. Este fato acarreta retrabalho na preparação do conjunto de dados, e impossibilita uma comparação unificada das pesquisas e inovações nesta área. 77 Tabela 7.2.1 – Bases de dados utilizadas no experimento, ordenadas por IR. # Atributos Conjunto de # (Quantitativos, Classes # Classes dados Exemplos Qualitativos) (min, maj) (min, maj) DM IR Ionosphere 351 33 (33, 0) (b, g) (126, 225) 1,59 (0,67) 1,78 Pima 768 8 (8, 0) (1,0) (268, 500) 0,26 (0,09) 1,87 German 1000 20 (7, 13) (bad, good) (300, 700) 1,70 (0,3) 2,33 90 8 (1, 7) (S, restante) (24,66) 1,59 (0,26) 2,75 Habermann 306 3 (3, 0) (die, survive) (81, 225) 0,32 (0,28) 2,77 Splice-ie 3176 60 (0, 60) (ie, restante) (768, 2422) 4.98 (1,52) 3,15 Splice-ei 3176 60 (0, 60) (ei, restante) (767, 2423) 4,99 (1,50) 3,15 Vehicle 846 18 (18, 0) (van, restante) (199, 647) 0,29 (0,11) 3,25 Letter-vowel 20000 16 (16, 0) New-thyroid 215 5 (5, 0) (hypo, restante) (30, 185) 0,21 (0,10) 6,16 E.Coli 336 7 (7, 0) (iMU, restante) (35, 301) 0,16 (0,09) 8,60 Satimage 6435 36 (36, 0) (4, restante) (626, 5809) 0,55 (0,09) 9,27 Vowel 990 12 (12, 0) (hid, hId) (90, 900) 0,19 (0,14) 10 Flag 194 28 (10, 18) (white, restante) (17, 177) 2,86 (0,33) 10,41 Glass 214 9 (9, 0) Letter-a 20000 16 (16, 0) PostOperative (all vowels, restante) (ve-win-floatproc, restante) (a, restante) (3878, 16122) (17, 197) 2,02 (1,0) 0,21 (0,14) 4,15 11,58 (789, 19211) 0,15 (0,05) 24,34 (330, 12630) 1 (0,0) 38,27 (42, 689) 0,19 (0,09) 16,40 (recom+ Nursery 12960 8 (8, 0) very_recom, restante) Abalone 731 7 (7,0) (18, 9) Neste trabalho, um dos fatores para a escolha das publicações de (Batista e Monard, 2004, He et al., 2008, Han et al., 2005) foi o fato de tais trabalhos utilizarem os mesmos conjuntos de dados e seguir os mesmos critérios de balanceamento nos mesmos, o que facilitou a preparação dos conjuntos de dados e execução dos experimentos, facilitando dessa maneira a comparação dos resultados. Conforme foi citado no capítulo 4, existe um número crescente de publicações a respeito do problema de conjuntos de dados balanceados, mas durante a pesquisa bibliográfica efetuada no presente trabalho, foi verificada a dificuldade em se achar 78 publicações que compartilhem os mesmos conjuntos de dados e configurações de desbalanceamento. Tal fato impediu que outros algoritmos fossem comparados neste trabalho, e atestam o que foi constatado por (He e Garcia, 2009). 7.3 Parâmetros do Algoritmo Em todos os experimentos, foram aplicados para o AGB os parâmetros exibidos na tabela 7.3.1. O tempo corrente em milissegundos foi utilizado para se iniciar o gerador de números aleatórios do AGB. Tabela 7.3.1 – Parâmetros utilizados no AGB. Parâmetro Parâmetro no Weka Percentual de cruzamento 60 Percentual de elitismo 5 População inicial 50 Número máximo de gerações 50 População máxima 40 Percentual de mutação 25 Número de regiões 4 Percentual de sobreamostragem b = int( IR).100 Para o percentual de sobreamostragem b aplicado em cada conjunto de dados, o mesmo deverá ser o suficiente para que cada um tenha uma distribuição aproximada de 50% de instâncias para cada classe, ou seja, P ≅ N . Dessa forma, optou-se por utilizar a parte inteira da taxa de desbalanceamento (IR), conforme demonstrado na tabela 7.2.1, sendo b = int( IR ).100 . Vale novamente ressaltar que a sobreamostragem obtida serve apenas para a criação do modelo durante o processo de treinamento, e que durante a avaliação do modelo todas as instâncias sintéticas são removidas. Para o percentual de mutação, muitos autores defendem que este valor não pode ultrapassar 5% sob o risco de perda de material genético. Todavia, nos experimentos preliminares não foram obtidos resultados satisfatórios com um baixo percentual de 79 mutação, optando-se dessa maneira a utilização de 25% de mutação, conforme os benefícios citados por (Tate e Smith, 1993). A utilização de 4 regiões apresentou melhor desempenho de classificação e estabilidade nos experimentos efetuados. 7.4 Execução dos Experimentos e Comparação Nesta seção, serão demonstrados e discutidos quatro experimentos efetuados com o AGB. 7.4.1 Comparação com Diversos Métodos de Sobreamostragem Neste experimento, os resultados do AGB foram comparados com os métodos de sobreamostragem orientada publicados em (Batista e Monard, 2004). Como o foco deste trabalho consiste em métodos de sobreamostragem orientada, os resultados obtidos com sobreamostragem aleatória não serão comparados aqui. Em (Batista e Monard, 2004) os autores efetuaram a comparação de diversos métodos de amostragem aplicados em quinze conjuntos de dados desbalanceados, e concluíram que a sobreamostragem apresentou melhor desempenho que a subamostragem, em especial o método SMOTE combinado com Tomek Links, e SMOTE combinado com ENN. Também se verificou que os métodos de amostragem aleatória apresentaram resultados significantes, mas os autores recomendam que tais métodos sejam aplicados em conjuntos de dados com maior número de exemplos, e por conseqüência, com maior número de instâncias positivas. Para a execução deste experimento com o AGB, os quinze conjuntos de dados utilizados em (Batista e Monard, 2004), foram submetidos ao processo de balanceamento com o algoritmo AGB, e em seguida classificados com o algoritmo C4.5. Cada execução consiste em um processo de validação cruzada, com dez desdobramentos, sendo obtida a média para a métrica AUC desses desdobramentos. De 80 forma a avaliar a estabilidade do algoritmo, foram efetuadas 10 execuções independentes, sendo a média e o desvio padrão (em parênteses) de AUC obtidos nesses 10 desdobramentos exibidos na tabela 7.4.1.1. Também foi adicionado à tabela 7.4.1.1, o indicador DANGER, proposto por (Han et al.,2005), o qual permite identificar se as instâncias sintéticas criadas pelo AGB fazem parte da superfície de decisão. Tabela 7.4.1.1 – Comparação de resultados entre o AGB e os métodos de sobreamostragem publicados em (Batista e Monard, 2004). Batista e Monard, 2004 AUC AGB Conjunto de Dados Melhor Algoritmo AUC AUC DANGER Pima SMOTE 85,49 (5,17) 82,72 (0,48) Não German SMOTE+Tomek 81,75 (4,78) 76,99 (0,82) Não Post-Operative SMOTE+ENN 59,83 (33,91) 69,68 (1,69) Sim Habermann SMOTE + ENN 76,38 (5,51) 73,73 (0,74) Não Splice-ie SMOTE 98,46 (0,87) 98,84 (0,20) Não Splice-ei SMOTE 98,92 (0,44) 96,65 (0,22) Não Vehicle SMOTE 98,96 (0,98) 99,01 (0,32) Não Letter-vowel SMOTE+ENN 98,94 (0,22) 95,38 (0,22) Não New-thyroid SMOTE+ENN 99,22 (1,72) 99,81 (0,23) Não E.Coli SMOTE+Tomek 95,98 (4,21) 97,19 (0,24) Não Satimage SMOTE+ENN 95,67 (1,18) 84,14 (0,52) Não Flag SMOTE+ENN 79,32 (28,83) 86,03 (1,86) Não Glass SMOTE+ENN 92,90 (7,30) 96,81 (1,62) Não Letter-a SMOTE 99,91 (0,12) 99,95 (0,09) Não Nursery SMOTE+Tomek 99,27 (0,36) 99,38 (0,03) Não Conforme pode ser verificado na tabela 7.4.1.1, nos experimentos de (Batista e Monard, 2004), dos 15 problemas em estudo, 10 dos melhores desempenhos foram obtidos com a combinação de métodos de sobreamostragem e subamostragem. Em comparação com o AGB, o mesmo apresentou melhor desempenho em 9 dos 15 problemas, apesar de o mesmo somente utilizar a técnica de sobreamostragem. Também 81 verificou-se que o AGB possui maior estabilidade, pois demonstrou menor desvio padrão em 14 dos 15 problemas em estudo, e no problema Letter-vowel, o desvio padrão foi igual. Com relação ao indicador DANGER, o algoritmo AGB somente apresentou instâncias sintéticas próximas à superfície de decisão no problema Post-Operative, onde obteve melhor resultado em relação ao SMOTE+ENN. Nos outros problemas, as instâncias sintéticas não foram criadas próximas à superfície de decisão, e mesmo assim, em 8 dos casos o desempenho de classificação foi maior. 7.4.2 Comparação com o Algoritmo Borderline SMOTE O método Borderline SMOTE, proposto por (Han et al., 2005), o qual foi detalhado na seção 4.3.3, aplica o algoritmo SMOTE somente a partir de instâncias pertencentes ao conjunto DANGER, o qual consiste de instâncias próximas à superfície de decisão. Neste estudo, os autores concluem que as instâncias sintéticas devem ser criadas próximas à superfície de decisão, pois a mesma é mais susceptível a erros causados por desbalanceamento entre classes, de acordo com os autores: “Os exemplos da classe minoritária na borda de decisão são mais facilmente mal classificados do que aqueles distantes da borda de decisão. Então os nossos métodos somente efetuam sobreamostragem dos exemplos da classe minoritárias na borda de decisão.” Para a execução deste experimento com o AGB, os três conjuntos de dados utilizados em (Han et al., 2005), foram submetidos ao processo de balanceamento com o algoritmo AGB, e em seguida classificados com o algoritmo C4.5. Cada execução consiste em um processo de validação cruzada, com dez desdobramentos, sendo obtida a média para a métrica F-Measure desses desdobramentos. De forma a avaliar a estabilidade do algoritmo, foram efetuadas 10 execuções independentes, sendo a média e o desvio padrão (entre parênteses) de F-Measure exibidos na tabela 7.4.2.1. 82 Tabela 7.4.2.1 – Comparação de resultados entre o AGB e o método Borderline SMOTE 1. F-Measure DANGER Conjunto de Dados Borderline SMOTE1 AGB Pima 65,10 67,16 (1,04) Não Habermann 52,70 53,48 (2,46) Não Satimage 57,60 58,80 (0,2) Não Como pode ser visto na tabela 7.4.2.1, em todos os problemas o AGB obteve melhor desempenho de F-Measure. Não é possível comparar o desvio padrão, pois os autores não publicaram essa informação. A métrica DANGER foi aplicada aos experimentos da seção 7.4.1, bem como aos experimentos desta seção. Na seção 7.4.1, o algoritmo AGB somente apresentou instâncias sintéticas DANGER em um problema, onde se obteve melhor resultado em relação ao SMOTE+ENN. Nos outros problemas, as instâncias sintéticas não foram criadas próximas à superfície de decisão, e mesmo assim, em 8 dos casos o desempenho de classificação foi maior. Na tabela 7.4.2.1, o AGB não gerou instâncias DANGER em nenhum dos problemas, mas obteve melhor desempenho de F-Measure, em relação ao Borderline SMOTE1. Com estes resultados, deduz-se que a criação de instâncias sintéticas junto à superfície de decisão pode acarretar problemas de ruído e sobreposição entre classes, o que contradiz os resultados publicados por (Han et al., 2005). 7.4.3 Comparação com o Algoritmo ADASYN Conforme detalhado na seção 4.3.3, o método ADASYN (He et al., 2008) tem como ponto chave adaptar a quantidade de instâncias sintéticas produzidas pelo SMOTE para cada instância xi no conjunto de instâncias positivas P. Para este experimento, os conjuntos de dados utilizados em (He et al., 2008) tiveram suas instâncias reordenadas aleatoriamente, e separadas em 50% para treino, e 50% para teste. Cada execução consiste em submeter o conjunto de treinamento ao 83 processo de balanceamento com o algoritmo AGB, combinado com o algoritmo C4.5. Com o modelo construído, foi utilizado o mesmo algoritmo de classificação no conjunto de teste, de forma a avaliar o desempenho do balanceamento obtido. De forma a avaliar a estabilidade do algoritmo, foram efetuadas 10 execuções independentes, sendo a média e o desvio padrão (entre parênteses) de Precisão, Recall, F-Measure e G-Mean exibidos na tabela 7.4.3.1. Tabela 7.4.3.1 – Comparação de resultados entre o AGB e o método ADASYN (He et al., 2008). Conjunto de Dados Algoritmo Precision Recall F-Measure G-Mean Ionosphere ADASYN 86,86 82,98 80,95 81,62 AGB 92,36 (2,81) 85,71 (0,0) 88,90 (1,31) 90,71 (0,75) ADASYN 54,12 60,97 57,26 66,25 AGB 69,12 (2,16) 65,44 (2,95) 66,31 (1,32) 74,21 (0,93) ADASYN 80,67 90,15 85,05 91,68 AGB 90,37 (1,33) 93,61 (1,13) 91,96 (0,73) 95,25 (0,53) ADASYN 96,78 76,03 95,60 84,53 AGB 92,72 (3,54) 98,15 (1,69) 95,36 (2,44) 98,68 (0,97) ADASYN 20,73 45,38 28,05 62,91 AGB 40,30 (4,67) 44,44 (4,95) 42,27 (4,81) 65,25 (3,71) Pima Vehicle Vowel Abalone Conforme demonstrado na tabela 7.4.3.1, o AGB obteve maior desempenho que o ADASYN em quase todas as métricas e problemas. O ADASYN obteve melhor desempenho em apenas duas métricas, sendo a maior diferença de 0,94, na métrica Recall do conjunto de dados Abalone. Em (He et al., 2008) não foram publicados os valores de desvio padrão dos experimentos, portanto, não é possível efetuar a comparação dos mesmos. 7.4.4 Experimentos com Aprendizado Incremental Nesta seção, serão demonstrados os desempenhos de classificação e tempos de execução do AGB, em conjunto com um classificador de aprendizado incremental. 84 Nos experimentos anteriores, os autores não publicaram os tempos dos algoritmos, dessa forma, para que seja possível comparar os tempos de processamento do AGB com aprendizado incremental, primeiro é necessário comparar o desempenho de classificação do AGB com essa estratégia de aprendizado. Para tal comparação, foram utilizados o algoritmo Naive Bayes (NB), e os algoritmos SMOTE e AdaBoost em conjunto com o Naive Bayes. O AGB foi executado em conjunto com o algoritmo de aprendizado incremental Naive Bayes Updateable (NBU), o qual foi fundamentado por (John e Langley, 1995). Vale ressaltar que os algoritmos Naive Bayes e o Naive Bayes Updateable tratam-se do mesmo algoritmo e compartilham o mesmo desempenho sobre o mesmo conjunto de dados, a única diferença é que o segundo permite uma atualização de probabilidades no modelo previamente construído. Todos os algoritmos estão implementados no Weka versão 3.6. Para o algoritmo SMOTE, foi utilizado k = 5 . A tabela 7.3.1 mostra os parâmetros utilizados para o AG. Para o AdaBoost, denominado no Weka como AdaBoostM1, foi utilizado o número de iterações=10, não utilização de amostragem, e peso limite=100. Em todos os algoritmos, foi utilizado o tempo corrente em milissegundos para se iniciar o gerador de números aleatórios. Conforme foi esclarecido nos capítulos 2 e 6, é recomendada a utilização de um conjunto de treino e outro de teste no aprendizado incremental, portanto, os 18 conjuntos de dados relacionados na seção 7.2 tiveram suas instâncias reordenadas aleatoriamente, e particionados em 80% para treinamento, e 20% para teste. De forma a avaliar a estabilidade dos algoritmos SMOTE e AGB, foram efetuadas 10 execuções independentes, sendo a média e o desvio padrão (entre parênteses) de AUC exibidos onde aplicáveis na tabela 7.4.4.1. Na tabela 7.4.4.1, verifica-se que o AGB + NBU obteve maior desempenho de AUC em 12 problemas, e obtendo classificação perfeita no problema Glass, juntamente com os algoritmos Naive Bayes e AdaBoost. Em todos os experimentos, o AGB apresentou desvio padrão abaixo de 1, e foi superior ou igual ao Naive Bayes. Nota-se ainda que o problema Post-Operative demonstrou mal desempenho de classificação em todos os algoritmos. 85 Tabela 7.4.4.1 – Comparação de resultados entre o AGB e os algoritmos do Weka. AUC Naive Bayes Conjunto de Dados (NB) SMOTE+NB AdaBoost+NB AGB+NBU Ionosphere 92,50 93,15 (0,49) 88,70 95,32 (0,32) Pima 80,40 80,00 (0,15) 77,80 82,99 (0,53) German 75,40 78,60 (0,07) 76,80 77,82 (0,07) Post-Operative 23,50 41,20 (5,02) 0,05 27,08 (2,2) Habermann 60,40 64,80 (0,84) 75,90 77,91 (0,84) Splice-ie 99,10 98,70 (2,12) 98,60 99,13 (0,09) Splice-ei 99,40 98,50 (1,21) 98,80 99,57 (0,67) Vehicle 84,00 84,60 (0,68) 82,70 90,69 (0,21) Letter-vowel 72,90 72,90 (0,52) 73,20 100,00 (0,0) New-thyroid 99,30 98,75 (0,77) 99,65 99,70 (0,84) E.Coli 92,20 91,65 (0,35) 93,00 98,66 (0,32) Satimage 93,40 92,05 (0,21) 91,80 93,67 (0,42) Vowel 98,20 97,30 (1,15) 99,20 99,89 (0,41) Flag 62,90 67,50 (0,56) 45,70 67,14 (0,19) Glass 100,00 97,40 (0,0) 100,00 100,00 (0,0) Letter-a 95,90 95,70 (1,22) 99,00 98,50 (0,98) Nursery 99,50 99,10 (2,25) 99,40 99,15 (0,29) Abalone 67,30 67,42 (0,15) 72,40 81,03 (0,31) Na tabela 7.4.4.1, verifica-se que o AGB + NBU obteve maior desempenho de AUC em 12 problemas, e obtendo classificação perfeita no problema Glass, juntamente com os algoritmos Naive Bayes e AdaBoost. Em todos os experimentos, o AGB apresentou desvio padrão abaixo de 1, e foi superior ou igual ao Naive Bayes. Nota-se ainda que o problema Post-Operative demonstrou mal desempenho de classificação em todos os algoritmos. Na tabela 7.4.4.2 e nas figuras 7.4.4.1 e 7.4.4.2, estão dispostas as médias do tempo de processamento dos algoritmos em estudo, após 10 execuções, as quais foram processadas em um computador Intel Dual Core T7500 com 2.2 Gigahertz de velocidade de processamento e 2 gigabytes de memória RAM. O desvio padrão não será demonstrado, pelo fato de ter ocorrido pouca variância de tempo entre as 10 execuções. 86 Tabela 7.4.4.2 – Comparação de tempos de execução entre o AGB e os algoritmos do Weka, em segundos. Ionosphere Pima German Post-Operative Habermann Splice-ie Splice-ei Vehicle Letter-vowel New-thyroid E.Coli Satimage Vowel Flag Glass Letter-a Nursery Abalone Naive Bayes (NB) 2,7 0,7 0,8 0,4 0,9 1,6 1,1 0,7 54,2 0,7 0,9 33,5 0,9 0,4 0,5 16,1 0,8 0,5 SMOTE+NB 3,0 1,1 1,2 0,41 0,97 50,2 34,2 2,6 124,9 1,0 1,2 3,6 1,1 0,7 0,8 18,2 1,1 0,8 AdaBoost+NB 28 15 18 3 5 20 20 17 5.599 5 6 960 105 5 7 600 60 35 AGB com AGB sem aprendizado aprendizado incremental incremental 640 217 534 324 964 412 204 12 286 251 17.057 709 17.249 800 889 490 231 154 28 13 512 274 6.711 3.795 442 154 328 253 21 13 9.321 6.453 7.875 5.458 1.280 802 Avaliando os resultados obtidos, conclui-se que em todos os problemas, o AGB incremental apresentou menor tempo de processamento em relação AGB não incremental. Todavia, com exceção do AdaBoost no problema Letter-Vowel, o AGB incremental apresentou maior tempo de processamento em relação aos métodos Naive Bayes, SMOTE e AdaBoost. Conforme descrito nos capítulos 2, 5 e 6, os algoritmos genéticos aplicados à classificação tipicamente apresentam um maior tempo de processamento, se comparado a outros algoritmos, e mesmo que o aprendizado incremental tenha um melhor desempenho em relação à estratégia não incremental, ainda resta para cada indivíduo da população do AG o treinamento das instâncias sintéticas. Após o treinamento incremental, ainda resta o cálculo da função de aptidão do indivíduo, que consiste na métrica AUC, a qual é obtida através da avaliação do modelo criado junto ao conjunto de teste. 87 Figura 7.4.4.1 – Histograma que compara o tempo de processamento (em segundos) do AGB com e sem aprendizado incremental. Figura 7.4.4.2 – Histograma que compara os tempos (em segundos) entre os algoritmos Naive Bayes, SMOTE, AdaBoost e o AGB. 88 Capítulo 8 Conclusões Neste trabalho foi apresentada uma estratégia de sobreamostragem utilizando um algoritmo genético para balanceamento (AGB), a qual efetua o ajuste do conjunto de dados através da criação de instâncias sintéticas positivas orientadas por um processo evolutivo. O algoritmo foi desenvolvido como um plugin de pré-processamento na plataforma de mineração de dados Weka versão 3.6 (Witten e Frank, 2005), sendo aplicável a atributos numéricos e nominais, permitindo ainda a utilização de aprendizado incremental de forma a diminuir o tempo de processamento. Foram efetuados experimentos com dezoito conjuntos de dados desbalanceados, provenientes do UCI Machine Learning Repository (Blake e Merz, 1998), de forma a comprovar a eficácia do algoritmo proposto. Em um dos experimentos, os conjuntos de dados foram balanceados com o AGB e classificados com o algoritmo C4.5. Os resultados obtidos foram comparados aos de três estudos publicados na literatura especializada, e na maioria dos casos, o AGB obteve melhor desempenho de classificação. Em outro experimento, a métrica DANGER indicou que os melhores balanceamentos obtidos com o AGB consistiam de instâncias sintéticas distantes da superfície de decisão, o que contradiz os resultados publicados por (Han et al., 2005). No terceiro experimento o AGB utilizou uma estratégia de aprendizado incremental com o algoritmo Naive Bayes Updateable, sendo o desempenho de classificação e tempo de execução comparados aos dos algoritmos Naive Bayes, e SMOTE e AdaBoost em conjunto com Naive Bayes. Os resultados demonstraram que o AGB incremental obteve melhor desempenho de classificação na maioria dos problemas, e um menor tempo de processamento em relação ao AGB não incremental. Todavia, na maioria dos 89 casos, o AGB apresentou um tempo de processamento maior em relação aos outros algoritmos avaliados. Com os resultados apresentados, demonstrou-se que o processo de sobreamostragem aplicado a conjuntos de dados desbalanceados tem como função o favorecimento da classe positiva no processo de classificação, e que a criação de instâncias sintéticas junto à superfície de decisão pode acarretar problemas de ruído e sobreposição entre classes. Apesar do maior tempo de processamento, o desempenho de classificação obtido com o algoritmo proposto indica um caminho interessante e competitivo, em relação aos outros algoritmos aplicados em pré-processamento de conjuntos de dados desbalanceados. Em trabalhos futuros pretende-se utilizar o AGB em conjunto com estratégias de subamostragem, a utilização de outras métricas de distância aplicadas a atributos nominais, bem como a aplicação do algoritmo em conjuntos de dados com mais de duas classes. 90 Referências Bibliográficas Anthony, M., Biggs, N., 1997, Computational Learning Theory, Cambridge University Press. Argentini, A., Blanzieri, E., 2010, About Neighborhood Counting Measure Metric and Minimum Risk Metric, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 32, issue 4, pp. 763-765. Arlot, S., Celisse, A., 2010, A survey of cross-validation procedures for model Selection, Statistics Surveys 4, pp 40-79. Bradley, A.P., 1997, The Use of the Area Under the ROC Curve in the Evaluation of Machine Learning Algorithms, Pattern Recognition, vol. 30, no. 7, pp.1145-1159. Barreto, J.M., 1996, Algoritmo genético: inspiração biológica na solução de problemas uma introdução. Revista Marítima Brasileira – Suplemento Especial, Pesquisa Naval, número 11, pp. 105-128. Batista, G. E. A. P. A., 2003, PhD. Thesis: Pré-processamento de Dados em Aprendizado de Máquina Supervisionado, Departamento de Ciência da Computação e Estatística, Universidade de São Paulo, São Paulo, SP, Brasil. Batista, G.E.A.P.A., Prati, R.C., Monard, M.C., 2004, A Study of the Behavior of Several Methods for Balancing Machine Learning Training Data, ACM SIGKDD Explorations Newsletter, vol. 6, no. 1, pp. 20-29. Batista, G.E.A.P.A., Prati, R.C., Monard, M.C., 2005, Balancing Strategies and Class Overlapping, In: Proceedings of the VI International Symposium on Intelligent Data Analysis, Madrid, Springer-Verlag, LNAI 3646, pp. 24-35. 91 Boriah, S., Chandola, V., Kumar, V., 2007, Similarity Measures for Categorical Data: A Comparative Evaluation, In: Proceedings of the SIAM International Conference on Data Mining, Minneapolis, Minnesota, USA, pp. 243-254. Beckmann, M., de Lima, B. S. L. P., Ebecken, N.F.F., 2009, Algoritmos Genéticos como Estratégia de Pré-Processamento para o Aprendizado de Máquina em Conjuntos de Dados Desbalanceados, CILAMCE/2009 – Congresso Latino Americano em Métodos Computacionais em Engenharia, Búzios, Brasil. Bifet, A., Holmes, G., Kirkby, R., Pfahringer, B., 2010, MOA: Massive Online Analysis, Journal of Machine Learning Research, vol. 11, pp. 1601-1604. Blake, C., & Merz, C., 1998, UCI Repository of Machine Learning Databases, disponível em: http://www.ics.uci.edu/~mlearn/~MLRepository.html, Department of Information and Computer Sciences, University of California, Irvine. Booch, G., Jacobson, I., and Rumbaugh, J., 1999, Unified Modeling Language – User’s Guide, 2 ed., Addison–Wesley. Boley, D.L., 1998, Principal Direction Divisive Partitioning, Data Mining and Knowledge Discovery, vol. 2, no. 4, pp. 325-344. Breiman, L., Friedman, J., Olshen, R., Stone C., 1984, Classification and Regression Trees, Monterey, CA, USA, Wadsworth and Brooks. Breiman, L., 1996, Heuristics of Instability and Stabilization in Model Selection, The Annals of Statistics, vol. 24, no. 6, 2350-2383. Carvalho, D.R., Freitas, A.A., 2002, A genetic algorithm for discovering small-disjunct rules in data mining. Applied Soft Computing vol. 2, issue 2, pp. 75-88. Chawla, N.V., Bowyer, K.W., Hall, L.O., Kegelmeyer, W.P., 2002, SMOTE: SyntheticMinority Over-sampling Technique, JAIR vol. 16, pp. 321-357. 92 Chawla, N.V., Lazarevic, A., Hall, L.O., Bowyer, K.W., 2003, SMOTEBoost: Improving Prediction of the Minority Class in Boosting, In: Proceeding of Seventh European Conf. Principles and Practice of Knowledge Discovery in Databases, CavtatDubrovnik, Croatia, pp. 107-119. Chawla, N.V., 2003, C4.5 and imbalanced data sets: investigating the effect of sampling method, probabilistic estimate, and decision tree structure, In: Workshop on Learning from Imbalanced Datasets II, International Conference on Machine Learning, Washington DC, USA. Chen L., Cai Z., Chen, L., Gu Q., 2010, A Novel Differential Evolution-Clustering Hybrid Resampling Algorithm on Imbalanced Datasets, Third International Conference on Knowledge Discovery and Data Mining, Phuket, Thailand. Cornúejols, A., 1993, Getting order independence in incremental learning, In: Proceedings of the Sixth European Conference on Machine Learning, pp. 196–212, Vienna, Austria. Czarnitzki, D., Doherr, T., 2002, Genetic Algorithms: A Tool for Optimization in Econometrics - Basic Concept and an Example for Empirical Applications, ZEW Discussion Paper no. 02-41. Available at SSRN: http://ssrn.com/abstract=320987. Dasarathy, B.V., 1991, Nearest Neighbor Pattern Classification Techniques, IEEE Computer Society Press. de Lima, B. S. L. P., Breno, P.J., Ebecken, N.F.F., 2005, A hybrid fuzzy/genetic algorithm for the design of offshore oil production risers. International Journal for Numerical Methods in Engineering, v. 64, p. 1459-1482. Drummond, C., Holte, C., 2003, C4.5, Class Imbalance, and Cost Sensitivity: Why Under-Sampling beats Over-Sampling, Workshop on Learning from Imbalanced Datasets II, International Conference on Machine Learning, Washington DC, USA. 93 Drummond, C., Holte, R.C., 2000, Exploiting the Cost (In)Sensitivity of Decision Tree Splitting Criteria, In: Proc. International Conference on Machine Learning, pp. 239-246, Stanford, CA, USA. Ebecken, N.F.F., Hruschka, E.R., Hruschka Jr., E.R., 2005, Missing Values Imputation for a Clustering Genetic Algorithm, Lecture Notes in Computer Science, SpringerLink, vol. 1, pp. 245-254. Elkan, C., 2001, The Foundations of Cost-Sensitive Learning, The Seventeenth International Joint Conference on Artificial Intelligence, pp. 973-978. Estabrooks, A, Jo, T., Japkowicz, N., 2004, A Multiple Resampling Method for Learning from Imbalanced Data Sets, Computational Intelligence, vol. 20, pp. 18-36. Ezawa, K., Moninder, S., Steven, N., 1996, Learning Goal Oriented Bayesian Networks for Telecommunications Management, The International Conference on Machine Learning, Morgan Kaufmann, pp. 139-147. Fan, W., Stolfo, S.J., Zhang, J., Chan, P.K., 1999, AdaCost: Misclassification CostSensitive Boosting, In: Proceedings of International Conference of Machine Learning, pp. 97-105, Bled, Slovenia. Fawcett, T., Provost, F., 1996, Combining Data Mining and Machine Learning for Effective User Profile, The 2nd International Conference on Knowledge Discovery and Data Mining, AAAI Press, pp. 8-13, Portland, Oregon, USA. Fawcett, T., 2004, ROC Graphs: Notes and Pratical Considerations for Researchers, Kluwer Academic Publishers. Fawcett, T., 2005, An introduction to ROC analysis, Pattern Recognition Letters 27(8), 861-874. Flach, P.A., Wu, S., 2005, Repairing concavities in ROC curves, International Joint Conference On Artificial Intelligence, Morgan Kaufmann, pp. 702-707, Scotland, UK. 94 Fisher, D., 1987, Knowledge acquisition via incremental conceptual clustering, Machine Learning vol. 2, no. 2, SpringerLink, pp. 139–172. Fisher, D., Xu, L., Zard, N., 1992, Ordering effects in clustering, In: Proceedings of the Eighth International Conference on Machine Learning, Scotland, UK. Frank, E., Hall, M., Pfahringer, B., 2003, Locally Weighted Naive Bayes, In: 19th Conference in Uncertainty in Artificial Intelligence, pp. 249-256, Acapulco, MEX. Freitas, A.A., 2002, Evolutionary computation. Handbook of Data Mining and Knowledge Discovery, Oxford University Press, pp. 698-706. Freitas, A.A., 2003, A survey of evolutionary algorithms for data mining and knowledge Discovery, Advances in evolutionary computing: theory and applications, Springer-Verlag, pp. 819–845. Goldberg, D.E., 1989, Genetic Algorithms in Search, Optimization, and Machine Learning, Addison-Wesley Professional. Giraud-Carrier, C., Martinez, T., 1995, ILA: Combining inductive learning with prior knowledge and reasoning, Technical report CSTR-95-03, University of Bristol, Department of Computer Science. Giraud-Carrier, C., 2000, A note on the utility of incremental learning, AI Communications, vol. 13, issue 4, pp. 215-223. Gosling, J., Joy, B., Steele, G., Bracha, G., 2000, The Java Language Specification. Addison–Wesley, 2 ed. Han, H., Wang, W.Y., Mao, B.H., 2005, Borderline-SMOTE: A New Over-Sampling Method in Imbalanced Data Sets Learning, In: Proceedings of International Conference of Intelligent Computing, pp. 878-887, Hefei, China. 95 Hart, P. E., 1968, The Condensed Nearest Neighbor Rule, IEEE Transactions on Information Theory, vol. IT-14. pp. 515–516. Hastie, T., Tibshirani, R., Friedman, J., 2003, The Elements of Statistical Learning, Data Mining, Inference and Prediction, Springer Series in Statistics. pp 411-433. Haykin S., 1999, Neural Networks: A Comprehensive Foundation, 2 ed., Prentice-Hall. He, H., Shen, X., 2007, A Ranked Subspace Learning Method for Gene Expression Data Classification, In: Proc. Int’l Conf. Artificial Intelligence, pp. 358-364. He, H., Bai, Y., Garcia, E.A.., 2008, ADASYN: Adaptive Synthetic Sampling Approach for Imbalanced Learning, In: Proceedings of International Joint Conference Neural Networks, pp. 1322-1328. He, H., Garcia, E.A., 2009, Learning from Imbalanced Data, IEEE Transactions on Knowledge and Data Enginering, vol. 21, no. 9, pp. 1263-1284. Holland, J.H., 1975, Adaptation in natural and artificial systems, University of Michigan Press. Holte, R.C., Acker, L., Porter, B., 1989, Concept Learning and the Problem with Small Disjuncts, In: Proceedings of the Eleventh International Joint Conference on Artificial Intelligence, 813-818, Menlo Park, CA, USA. Hong, X., Chen, S., Harris, C.J., 2007, A Kernel-Based Two-Class Classifier for Imbalanced Data Sets, IEEE Trans. Neural Networks, vol. 18, no. 1, pp. 28-41. Hulse, J.V., Khoshgoftaar, T., 2009, Knowledge discovery from imbalanced and noisy data, Elsevier, Data & Knowledge Engineering, vol. 68, pp. 513–1542. Japkowicz, N., 2001, Supervised Versus Unsupervised Binary-Learning Feedforward Neural Networks, Machine Learning, vol. 42, no. 1-2, pp. 97-122. 96 by Japkowicz, N., Stephen, S., 2002, The class imbalance problem: a systematic study, Inteligent Data Analysis, vol. 6, no. 5, pp. 429-450. Japkowicz, N., 2003, Class imbalances. Are we focusing on the right issue?, In: Proceedings of the ICML’2003 Workshop on Learning from Imbalanced Data Sets II, Washington DC, USA. Jo, T., Japkowicz, N., 2004, Class Imbalances Versus Small Disjuncts, Sigkdd Explorations, vol. 6, issue 1, pp. 40-49. John, G.H., Langley, P., 1995, Estimating Continuous Distributions in Bayesian Classifiers, In proceedings of the Eleventh Conference on Uncertainty in Artificial Intelligence, Morgan Kaufmann Publisher. Kohavi, R., Quinlan, J.R., 2002, Decision Tree Discovery, Handbook of Data Mining and Knowledge Discovery, chapter 16.1.3, pages 267-276. Oxford University Press. Koza, J.R., 1995, Survey of genetic algorithms and genetic programming, In: Proceedings of Wescon 95, IEEE Press, pp. 589-594. Kubat, M., Matwin, S., 1997, Addressing the Curse of Imbalanced Training Sets: Onesided Selection. In Proceedings of ICML. pp.179–86, Nashville, Tenesee, USA. Kubat, M., Holte, R., Matwin, S., 1998, Machine Learning for the Detection of Oil Spills in Radar Images, Machine Learning, vol.30, pp.195-215. Kullback, S., Leibler, R. A., 1951, On Information and Sufficiency, Annals of Mathematical Statistics, vol. 22, no. 1, pp. 79-86. Kuzar, M.Z., Kononenko, I., 1998, Cost-Sensitive Learning with Neural Networks, In: Proceedings of European Conf. Artificial Intelligence, pp. 445-449, Brighton, UK. Laurikkala, J., 2001, Improving Identification of Difficult Small Classes by Balancing Class Distribution, Technical Report A-2001-2, University of Tampere. 97 Lewis, D.D., Catlett J., 1994, Heterogeneous Uncertainty Sampling for Supervised Learning, The 11th International Conference on Machine Learning, Morgan Kaufmann, pp.148-156. Lin, Y., Yoonkyung, L., Grace, W., 2002, Support Vector Machines for Classification in Nonstandard Situations, Machine Learning, vol. 46, no. 1-3, pp.191-202. Liu, W., Chawla, S., Cieslaky, D.A., Chawla, N.V., 2010, A Robust Decision Tree Algorithm for Imbalanced Data Sets, In: Proceedings of the SIAM International Conference on Data Mining, Columbus, Ohio, USA. Liu, X.Y., Wu, J., Zhou, Z.H., 2006a, Exploratory Under Sampling for Class Imbalance Learning, In: Proc. Int’l Conf. Data Mining, pp. 965-969. Liu, X.Y., Zhou, Z.H., 2006b, The Influence of Class Imbalance on Cost-Sensitive Learning: An Empirical Study, Proc. Int’l Conf. Data Mining, pp. 970-974. Loh, W.Y., 2002, Regression trees with unbiased variable selection and interaction detection, Statistica Sinica, vol. 12, pp. 361–386. MacGregor, J., 1988, The effects of order in learning classifications by example: Heuristics for finding the optimal order, Artificial Intelligence, no. 34, pp. 361–370. MacQueen, J.B., 1967, Some Methods for Classification and Analysis of Multivariate Observations, Proceedings of Fifth Berkeley Symposium on Mathematical Statistics and Probability, Berkeley, University of California Press, vol.1, pp.281-297. McCarthy, K., Zabar, B., Weiss, G.M., 2005, Does Cost-Sensitive Learning Beat Sampling for Classifying Rare Classes?, In: Proc. Int’l Workshop Utility-Based Data Mining, pp. 69-77. 98 Maloof, M.A., 2003, Learning When Data Sets Are Imbalanced and When Costs Are Unequal and Unknown, In: Proc. Int’l Conf. Machine Learning, Workshop Learning from Imbalanced Data Sets II, Washington DC, USA Manevitz, L.M., Malik, Y., 2001, One-Class Svms for Document Classification, Machine Learning Research, vol. 2, no. 2, pp.139-154. Michalewicz, Z., 1996, Genetic algorithm + data structures = evolution programs, 3º ed., Springer-Verlag. Motta, A.A., Ebecken, N.F.F., 2007, On the Application of Genetic Algorithms in Underwater Explosive Charges Optimization, International Journal For Computation Methods In Engineering Science And Mechanics, vol. 8, pp. 1-9. Nickerson, A., Japkowicz, N. & Millos, E., 2001, Using Unsupervised Learning to Guide Resampling in Imbalanced Data Sets, In Proceedings of the 8th International Workshop on AI and Statistics, pp.261-65, Key West, Florida, USA. Orriols-Puig, A., Bernadó-Mansilla, E., 2009, Evolutionary rule-based systems for imbalanced datasets, Soft Computing, vol. 13, no. 3, pp. 213-225. Pazzani, M., Merz, C., Murphy, P., Ali, K., Hume, T., Brunk, C., 1994, Reducing misclassification costs, In Proceedings of the Eleventh International Conference on Machine Learning, pp 217-225. Pearson, R., Goney, G., Shwaber, J., 2003, Imbalanced Clustering for Microarray TimeSeries, Proc. Int’l Conf. Machine Learning, Workshop Learning from Imbalanced Data Sets II, , Washington DC, USA Petrovic, S., Fayad C., 2005, A Genetic Algorithm for Job Shop Scheduling with Load Balancing, Lecture Notes in Computer Science, Springer Link, vol. 3809, pp. 339-348. 99 Pramanik, A.G., Painuly, P.K., Singh V, Katiyar, Rakesh, 2001, Geophysical Technology Integration in Hydrocarbon Exploration and Production: An Overview, Geohorizons, vol.6, no.2. Prati, R.C., Batista, G.E.A.P.A., Monard, M.C, 2004, Class Imbalances versus Class Overlapping: an Analysis of a Learning System Behavior, In: MICAI, pp. 312 -321, Springer-Verlag. Reinelt, G., 1991, TSPLIB, A Traveling Salesman Problem Library, ORSA Journal on Computing 3, 376-384. Disponível em: http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/ Sariff, N.B., Buniyamin, N., 2009, Comparative study of Genetic Algorithm and Ant Colony Optimization algorithm performances for robot path planning in global static environments of different complexities, Computational Intelligence in Robotics and Automation (CIRA), IEEE International Symposium, pp. 132-137. Spears, William, 2001, Foundations of Genetic Algorithms 6. Morgan Kaufmann. Srinivas, M., Patnaik, L.M., 1994a, Genetic algorithms: A survey, IEEE. Srinivas, M., Patnaik, L.M., 1994b, Adaptive probabilities of crossover and mutation in genetic algorithms, IEEE Transactions on System, Man and Cybernetics, vol.24, no.4, pp.656–667. Qiong, G., Cai, Z., Zhu, L., Huang, B., 2008, Data Mining on Imbalanced Data Sets, International Conference on Advanced Computer Theory and Engineering, Phuket, Thailand. Quinlan, J.R, 1986, Machine Learning, Vol. 1, pp. 81-106. Quinlan, J.R, 1988, C4.5 Programs for Machine Learning, Morgan Kaufmann. 100 Quinlan, J. R., 1996, Bagging, boosting, and c4.5, in: Proceedings of the Thirteenth National Conference on Arti_cial Intelligence, AAAI Press and the MIT Press, pp. 725730, Portland, Oregon, USA. Schapire, R.E., 1999, A brief introduction to boosting, In Proceedings of the Sixteenth International Joint Conference on Artificial Intelligence. pp. 1401-1406, Stockholm, Sweden. Shannon, C.E., 1951, Prediction and entropy of printed English, The Bell System Technical Journal, vol. 30, pp. 50-64. Storn, R., Price K., 1997, Differential Evolution: A Simple and Efficient Adaptive Scheme for Global Optimization over Continuous Spaces, Journal of Global Optimization, vol. 11, pp. 341-359. Sun, Y., Kamel, M.S., Wong, A.K.C., Wang Y., 2007, Cost-Sensitive Boosting for Classification of Imbalanced Data, Pattern Recognition, vol. 40, no. 12, pp. 3358-3378. Su, J., Zhang, H., Ling, C.X., Matwin, L.S., 2008, Discriminative Parameter Learning for Bayesian Networks, In: Proceedings of International Conference of Machine Learning, Helsinki, Finland. Tate, D.M., Smith, A.E., 1993, Expected allele coverage and the role of mutation in genetic algorithms, In. Proc. of the Fifth Int. Conf. on Genetic Algorithms, pp. 31–37, San Mateo, CA, USA, Morgan Kaufmann Tomek, I., 1976, Two Modifications of CNN, IEEE Transactions on Systems Man and Communications, vol.6 , pp. 769–772. Utgoff, P., 1988, ID5: An incremental ID3, In Proceedings of Fifth International Workshop on Machine Learning, pp. 107–120, Ann Arbor, Michigan, USA. Van Rijsbergen, C.J., 1979, Information Retrieval. Butterworths. 101 Walker J.D., File, P.E., Miller, C.J., Samson, W.B., 1994, Building DNA maps, a genetic algorithm based approach, Advances in molecular bioinformatics. S. SchulzeKremer, IOS Press. pp.179-199. Wang. B.X., Japkowicz, N., 2004, Imbalanced Data Set Learning with Synthetic Samples, In: Proc. IRIS Machine Learning Workshop, Ottawa, Canada. Webb, G., Boughton J., Wand, Z., 2005, Not So Naive Bayes: Aggregating OneDependence Estimators, Machine Learning. Archives, Vol. 58, Issue 1, pp 5-24. Weiss, G. M., 1999, Timeweaver: a genetic algorithm for identifying predictive patterns in sequences of events, In Proceedings of the Genetic and Evolutionary Computation Conference, pages 718-725, Morgan Kaufmann, Orlando, Florida, USA. Weiss, G.M., Provost, F., 2001, The Effect of Class Distribution on Classifier Learning: An Empirical Study, Technical Report MLTR-43, Dept. of Computer Science, Rutgers Univ. Weiss, G.M., 2004, Mining with Rarity: A Unifying Framework, ACM SIGKDD Explorations Newsletter, vol. 6, no. 1, pp. 7-19. Weiss, G.M., McCarthy, K., Zabar, B., 2007, Cost-Sensitive Learning vs. Sampling: Which is Best for Handling Unbalanced Classes with Unequal Error Costs?, Proceedings of the 2007 International Conference on Data Mining, CSREA Press, pp. 35-41. White, M.S., Flockton, S.J., 1994, Genetic algorithms for digital signal processing, Lecture Notes in Computer Science, 1994, Vol. 865, pp. 291-303. Whitley, Darrell, 1994, A Genetic Algorithm Tutorial, Springer Science + Business Media B.V., pp. 65-85. 102 Wilson, D.R, Martinez, T.R., 1997, Improved Heterogeneous Distance Functions, AI Access Foundation and Morgan Kaufmann Publishers, Journal of Artificial Intelligence Research vol. 6, pp.1-34. Wilson, D. L., 1972, Asymptotic Properties of Nearest Neighbor Rules Using Edited Data, IEEE Transactions on Systems, Man, and Communications vol. 2, no. 3, pp. 408– 421. Witten, I.H., Frank, E., 2005, Data Mining: Practical machine learning tools and techniques, 2nd Edition, San Francisco, CA, USA, Morgan Kaufmann. Woods, K., Doss, C., Bowyer, K., Solka, J., Priebe, C., Kegelmeyer, W., 1993, Comparative Evaluation of Pattern Recognition Techniques for Detection of Microcalcifications in Mammography, In: Proc. Int’l J. Pattern Recognition and Artificial Intelligence, vol. 7. Wu, G., Chang, E.Y., 2003, Class-Boundary Alignment for Imbalanced Dataset Learning, The International Conference of Machine Learning, Workshop on Learning from Imbalanced Data Sets, pp. 49-56, Washington DC, USA. Wu, G., Chang, E.Y., 2004, Aligning Boundary in Kernel Space for Learning Imbalanced Data Set, In: Proc. Int’l Conf. Data Mining, pp. 265-272. Wu, G., Chang, E.Y., 2005, KBA: Kernel Boundary Alignment Considering Imbalanced Data Distribution, IEEE Trans. Knowledge and Data Eng., vol. 17, no. 6, pp. 786-795. Wu, X., Kumar, V., Quinlan, J.R., 2007, et al., Top 10 algorithms in data mining. Knowlegdment and Information System, Springer-Verlag, vol. 1, pp. 1-37. Zadrozny, B., Elkan, C., 2001, Learning and Making Decisions When Costs and Probabilities Are Both Unknown, In: the Seventh International Conference on Knowledge Discovery and Data Mining, pp. 204-213, San Francisco, California, USA. 103