i
ALGORITMOS GENÉTICOS COMO ESTRATÉGIA DE PRÉ-PROCESSAMENTO
EM CONJUNTOS DE DADOS DESBALANCEADOS
Marcelo Beckmann
Disserta...
ii
ALGORITMOS GENÉTICOS COMO ESTRATÉGIA DE
PRÉ-PROCESSAMENTO EM CONJUNTOS DE DADOS DESBALANCEADOS
Marcelo Beckmann
DISSERT...
iii
Beckmann, Marcelo
Algoritmos Genéticos como Estratégia de Pré-
Processamento em Conjuntos de Dados Desbalanceados
/Mar...
iv
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 mad...
v
Resumo da Dissertação apresentada à COPPE/UFRJ como parte dos requisitos
necessários para a obtenção do grau de Mestre e...
vi
Abstract of Dissertation presented to COPPE/UFRJ as partial fulfillment of the
requirements for the degree of Master of...
vii
Sumário
1 Introdução
1
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
viii
3.2.2 Raridade Relativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.3 Raridade...
ix
5.3 Funcionamento do Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.4 Aplicações . ...
1
Capitulo 1
Introdução
Atualmente, a quantidade de dados gerada por processos automatizados têm
crescido de forma explosi...
2
presença de uma nova amostra de solo, é possível predizer se na região onde a mesma
foi coletada existe uma nova jazida ...
3
Com o objetivo de solucionar ou mitigar tal problema, existem atualmente
diversas iniciativas de pesquisa e desenvolvime...
4
plataforma de mineração de dados Weka (Witten e Frank, 2005). Conforme será visto
no capítulo 7, o AG proposto neste tra...
5
Capítulo 2
Classificação
Este capítulo tem como objetivo apresentar a atividade de classificação em
mineração de dados, ...
6
atributos, e um atributo específico, que contém o rótulo daquela instância, o qual
associa a mesma a uma classe pré-dete...
7
Nas próximas seções serão descritos os algoritmos de classificação citados neste
trabalho, o processo de aprendizado inc...
8
probabilidade da classe jy ocorrer quando da ocorrência de x. Com isso, obtém-se um
discriminante, de forma que:
Se )|()...
9
(Quinlan, 1986), C4.5 (Quinlan, 1988), C5.0 (Quinlan, 1996, Kohavi e Quinlan, 2002),
GUIDE (Loh, 2002), entre outros.
• ...
10
O ganho de informação (information gain) é um nome alternativo para a
divergência de Kullback-Leibler (Kullback e Leibl...
11
O valor de k pode variar de acordo com os dados disponíveis para treinamento.
Geralmente utiliza-se tentativa e erro pa...
12
Algoritmos incrementais são também conhecidos como algoritmos em tempo real
(online) que requerem pouca memória (Anthon...
13
conjunto de dados original seja treinado uma só vez, e as novas instâncias criadas para
balanceamento treinadas increme...
14
TNFPFNTP
FNFP
Err
+++
+
=
(2)
TNFPFNTP
TNTP
Acc
+++
+
=
(3)
As métricas detalhadas nas próximas seções utilizam as vari...
15
computar instâncias positivas em seu divisor, a métrica de recall não é sensível à
distribuição.
FNTP
TP
call
+
=Re
(5)...
16
Sensitividade ou Recall (5), e o eixo x à (1-Especificidade) (8), conforme pode ser visto
na equação 8.
Espec=
TNFP
TN
...
17
Figura 2.4.5 – Exemplo de Gráfico ROC, onde os pontos identificados por
letras representam os principais comportamentos...
18
Capítulo 3
O Problema de Classificação em Conjuntos de
Dados Desbalanceados
Este capítulo tem como objetivo apresentar ...
19
diagnosticada como saudável, ou seja, um falso negativo, a mesma não será tratada a
tempo (Woods et al. 1993).
É de com...
20
Outro problema relacionado às métricas inadequadas para conjuntos de dados
desbalanceados está associado à estrutura in...
21
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 Rari...
22
3.2.4 Fragmentação de Dados
Algoritmos que utilizam estratégias de dividir e conquistar, como por exemplo, o
algoritmo ...
23
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 r...
24
3.3 Sobreposição de Classes
De acordo com os experimentos de (Japkowicz, 2003), (Batista e Monard, 2004),
(Prati et al....
25
3.4 Pequenos Disjuntos
Em condições ideais, os conjuntos de dados deveriam apresentar conceitos em
grandes agrupamentos...
26
3.5 Sensibilidade dos Algoritmos de Classificação
Conforme os experimentos efetuados por (Japkowicz e Stephen, 2002), o...
27
Capítulo 4
Soluções para o Problema de Classificação em
Conjuntos de Dados Desbalanceados
Este capítulo tem como objeti...
28
Neste capítulo serão detalhadas as principais estratégias para ajuste em nível de
dados, as quais são o foco deste trab...
29
problemas como remoção de conceitos importantes relativos à classe negativa, e sobre
ajustamento (overfitting) ao adici...
30
De forma a se evitar ou mitigar tais efeitos causados pela amostragem aleatória de
exemplos, utiliza-se alguma heurísti...
31
do processo, pode-se remover alguns exemplos corretamente classificados do conjunto
N, de forma que NP ≅ .
• Tomek Link...
32
método, de forma a remover instâncias apenas da classe majoritária. Isso é obtido ao se
inicializar o conjunto C soment...
33
vizinhos mais próximos. Se ix pertencer à classe majoritária, e ocorrer um erro de
predição relativo aos seus vizinhos ...
34
conta que nem sempre uma distribuição homogênea de instâncias sintéticas é aplicável a
um problema de desbalanceamento,...
35
instâncias próximas à superfície de decisão, identificadas como conjunto DANGER. De
acordo com os experimentos efetuado...
36
Entrada: T
Saída: T balanceado
1. Obtenha os grupos da classe negativa de T com PDDP;
2. max <- número de exemplos do m...
37
1) O processo de mutação é baseado no algoritmo SMOTE (10), onde se obtém valores
aleatórios δ entre [0,1] para a criaç...
38
técnicas de ajuste nos dados (Liu e Zhou, 2006b, McCarthy et. al, 2005), e de acordo
com (Chawla et. al, 2004, Maloof, ...
39
Se 











>
)(
)(
12
21
)/(
)/(
1
2
2
1
yP
yP
yxp
yxp
λ
λ
, então x ∈ 1y
Se 










...
40
abordagem mostrou ser superior em problemas multiclasses do que a tradicional técnica
de aprendizado em duas classes. T...
41
Capítulo 5
Algoritmos Genéticos
Este capítulo tem como objetivo apresentar a heurística de algoritmos genéticos.
5.1 In...
42
maneira simples, se comparado a outros algoritmos, (Whitley, 1994), e possui vantagens
em relação a outros métodos em d...
43
5.2 Componentes do Algoritmo
O AG é constituído de componentes que simulam a evolução de indivíduos ao
longo de geraçõe...
44
Tabela 5.2.1 – Terminologia utilizada em algoritmos genéticos
Termo Descrição
Alelo Define os valores que um gene pode ...
45
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 ...
46
5.2.3 Função Objetivo
A função objetivo )(xf , também conhecida como função de desempenho e em
inglês, fitness, é a fun...
47
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 atingi...
48
Figura 5.2.6.1 – Seleção por roda da roleta. Os indivíduos com maior
desempenho acumulado têm maior probabilidade de se...
49
5.2.8 Cruzamento
O cruzamento (crossover) é um dos principais operadores do AG, o qual reproduz
em um ambiente computac...
50
Figura 5.2.8.2 – Cruzamento múltiplo.
• Uniforme
Existe uma máscara pré-definida, orientando onde a troca de genes deve...
51
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 probl...
52
5.2.10 Parâmetros do Algoritmo
De forma a orientar o funcionamento do algoritmo, alguns parâmetros são
necessários. A l...
53
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,...
54
5.4 Aplicações
As aplicações do AG são bastante abrangentes, sendo indicado em problemas
NP-Difíceis e em casos onde ou...
55
• Mineração de Dados: Em atividades de preparação, seleção de atributos,
classificação e predição (Freitas, 2002, 2003,...
56
Capítulo 6
Algoritmo Genético para Balanceamento de
Conjuntos de Dados
Este capítulo tem como objetivo apresentar a est...
57
Conforme foi verificado no capítulo 3, existem diversas causas associadas ao
problema de balanceamento, as quais ocorre...
58
Figura 6.1.1 – Conjunto de dados desbalanceados.
Figura 6.1.2 – Aplicação de regiões sintéticas de forma a balancear o ...
59
6.2 Codificação
O cromossomo C que codifica uma solução no AGB é composto de um conjunto
de t genes, sendo nrt *= , ond...
60
Figura 6.2.2 – Regiões assinaladas com os mínimos e máximos de cada gene do
cromossomo.
Para atributos do tipo categóri...
61
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...
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets
Upcoming SlideShare
Loading in …5
×

Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets

1,749 views

Published on

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.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,749
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dissertation: Genetic Algorithms as a pre processing strategy for imbalanced datasets

  1. 1. i 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 Francisco Favilla Ebecken Rio de Janeiro Setembro de 2010
  2. 2. ii 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
  3. 3. iii 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.
  4. 4. iv 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.
  5. 5. v 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.
  6. 6. vi 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.
  7. 7. vii Sumário 1 Introdução 1 1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Contexto de Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Objetivos e Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Organização Deste Trabalho . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Classificação 5 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
  8. 8. viii 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
  9. 9. ix 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 . . . . . . . . . . . . 82 7.4.3 Comparação com o Algoritmo ADASYN . . . . . . . . . . . . . . . . . . . . 83 7.4.4 Experimentos com Aprendizado Incremental . . . . . . . . . . . . . . . . 84 8 Conclusões 89 Referências Bibliográficas 91
  10. 10. 1 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
  11. 11. 2 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
  12. 12. 3 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
  13. 13. 4 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.
  14. 14. 5 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
  15. 15. 6 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.
  16. 16. 7 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: )( )()|( )|( xp yPyxp xyP jj j = (1) Onde: x - Um determinado valor de uma variável jy - 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 )|( xyP j , retorna a
  17. 17. 8 probabilidade da classe jy ocorrer quando da ocorrência de x. Com isso, obtém-se um discriminante, de forma que: Se )|()|( 12 xyPxyP > , então x ∈ 2y , Se )|()|( 21 xyPxyP > , então x ∈ 1y , Se )|()|( 12 xyPxyP = , então x ∈ classe com maior probabilidade a priori, isto é, ),max( 12 yy . 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 1y , a probabilidade de instâncias da outra classe 2y serem classificadas incorretamente como 1y 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 entãose ⇒ 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
  18. 18. 9 (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 { }nxx ,...,1 e com probabilidade )( ixp , é obtida pela equação ∑= −= n i ii xpxpXE 1 2 )(log)()( .
  19. 19. 10 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. ),( XSIG , 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 )(.)(),( V V V SE S S SEXSIG ∑−= , sendo Xv ∈ . 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.
  20. 20. 11 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.
  21. 21. 12 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
  22. 22. 13 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.
  23. 23. 14 TNFPFNTP FNFP Err +++ + = (2) TNFPFNTP TNTP Acc +++ + = (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. FPTP TP ec + =Pr (4) 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
  24. 24. 15 computar instâncias positivas em seu divisor, a métrica de recall não é sensível à distribuição. FNTP TP call + =Re (5) 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). . callecisão callecisão measureF RePr. Re.Pr).1( + + =− β β (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). TNTPMeanG *=− (7) 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 à
  25. 25. 16 Sensitividade ou Recall (5), e o eixo x à (1-Especificidade) (8), conforme pode ser visto na equação 8. Espec= TNFP TN + (8) 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.
  26. 26. 17 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).         + Φ= negpos AUC φφ δ (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.
  27. 27. 18 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
  28. 28. 19 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.
  29. 29. 20 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”.
  30. 30. 21 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.
  31. 31. 22 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.
  32. 32. 23 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.
  33. 33. 24 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.
  34. 34. 25 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.
  35. 35. 26 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.
  36. 36. 27 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;
  37. 37. 28 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 miyxT ii ,...,1},,{ == , onde Xxi ∈ é uma instância no conjunto de atributos },...,{ 1 naaX = , e Yyi ∈ é uma instância no conjunto de classes, },...,1{ cY = , existe um subconjunto com instâncias positivas XP ⊂ , e um subconjunto de instâncias negativas XN ⊂ , onde NP < . 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 NP ≅ . 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 NP ≅ . 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
  38. 38. 29 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”.
  39. 39. 30 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 'iN , tii == ,...,1 , compostos de exemplos retirados aleatoriamente de N, onde NNi <' , onde se usa comumente PNi =' . Os subconjuntos ti NN ',...,' são criados e treinados separadamente, onde um classificador iH é treinado usando 'iN 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 iH , tii == ,...,1 . Depois que o classificador iH é treinado, se um exemplo Nxi ∈ é corretamente classificado, é aceitável conjecturar que ix é de alguma maneira redundante em N, dado que iH já aprendeu a classificar esse exemplo. Então, ao longo
  40. 40. 31 do processo, pode-se remover alguns exemplos corretamente classificados do conjunto N, de forma que NP ≅ . • 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 ),( ji xx , sendo Pi ,...,1= , e Nj ,...,1= , onde Pxi ∈ e Nxj ∈ , e dada uma função de distância ),( ji xxd , o par ),( ji xx é considerado um Tomek Link se não existir instância kx de forma que ),(),( jiki xxdxxd < ou ),(),( jikj xxdxxd < , definindo que uma das instâncias ),( ji xx 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 jx 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 TC ⊆ é 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
  41. 41. 32 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 Txi ∈ , 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 Txi ∈ , encontra-se os seus k=3
  42. 42. 33 vizinhos mais próximos. Se ix pertencer à classe majoritária, e ocorrer um erro de predição relativo aos seus vizinhos mais próximos, ix será removido. Se ix 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 ix 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 ix e ixˆ , sendo ixˆ selecionada aleatoriamente entre os k vizinhos de ix , e δ um número aleatório entre 0 e 1, conforme (10). O processo é repetido n vezes para cada instância ix do conjunto P. δ).ˆ(sin iiitético xxxx −+= (10) 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
  43. 43. 34 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 ix no conjunto de instâncias positivas P, sendo Pi ,...,1= . Tal adaptação é feita levando-se em conta que para cada instância Pxi ∈ , serão criadas GDg ii .= instâncias sintéticas positivas, sendo iD 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. Z KD i i ∆ = (11) Onde ∆ é o número de K vizinhos mais próximos pertencentes à classe majoritária, e Z é uma constante de normalização de forma que ∑ =1D . β).( PNG −= (12) 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
  44. 44. 35 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).
  45. 45. 36 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:
  46. 46. 37 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 mux . 2) O cruzamento opera de acordo com (13), onde ijx é o j-ésimo atributo do exemplo ix , 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 mux . (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
  47. 47. 38 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 1y , a probabilidade de instâncias da outra classe 2y serem classificadas incorretamente como 1y 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).       = 021 120 λ λ L (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).
  48. 48. 39 Se             > )( )( 12 21 )/( )/( 1 2 2 1 yP yP yxp yxp λ λ , então x ∈ 1y Se             < )( )( 12 21 )/( )/( 1 2 2 1 yP yP yxp yxp λ λ , então x ∈ 2y (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
  49. 49. 40 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.
  50. 50. 41 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
  51. 51. 42 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.
  52. 52. 43 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.
  53. 53. 44 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.
  54. 54. 45 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.
  55. 55. 46 5.2.3 Função Objetivo A função objetivo )(xf , 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.
  56. 56. 47 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( xfmédia xf . 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 ix , proporcional à sua aptidão, consiste da razão entre o desempenho )( ixf e o somatório do desempenho de toda a população, onde pmax=população máxima (16). ∑= = max 1 )( )( p k k i i xf xf p (16)
  57. 57. 48 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.
  58. 58. 49 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)
  59. 59. 50 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 %100%50 << pc (Srinivas e Patnaik, 1994b).
  60. 60. 51 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 %5%1,0 << pm . 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.
  61. 61. 52 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, população máxima O tamanho da população irá depender da complexidade do 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 Cruzamento Define o percentual da população que será selecionado para cruzamento. Percentual de Mutação Define o percentual da população que será selecionado para mutação. Percentual ou quantidade de elitismo Define um percentual ou quantidade dos melhores indivíduos 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á.
  62. 62. 53 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.
  63. 63. 54 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).
  64. 64. 55 • 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.
  65. 65. 56 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.
  66. 66. 57 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.
  67. 67. 58 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.
  68. 68. 59 6.2 Codificação O cromossomo C que codifica uma solução no AGB é composto de um conjunto de t genes, sendo nrt *= , onde r é a quantidade de regiões, e n a quantidade de atributos, sendo },...,1{},,...,1{)},(),...,({ njrcagagC nrjc === . Cada gene )( jc ag está associado a uma região c, e a um atributo ja , e é composto de um valor mínimo e máximo, compreendido entre os valores mínimos e máximos do atributo ja , no subconjunto P de instâncias positivas (17). ePagP jjcj ),max())(min()min( ≤≤ )max())(max()min( jjcj PagP ≤≤ (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.
  69. 69. 60 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.
  70. 70. 61 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, NP ≅ . São criadas 100 .Pb q = 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 qissS qi ,...,1},,...,{ == , uma instância sintética is , 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 ix , pertencente ao conjunto de instâncias positivas P (18),

×