V i conjunto de vetores de características
3.2 Módulo de Agrupamentos de Dados
Figura 3.1: Visão geral da Arquitetura proposta composta de 2 (duas) fases : Treinamento e Teste; e de 4 (quatro) módulos: Agrupamento de Dados, Geração de Classificadores, Seleção Dinâmica de Classificadores e Combinação Classificadores.
grupo contém os elementos mais semelhantes entre si, de acordo com a medida de similaridade adotada. Os grupos gerados pelo módulo de Agrupamento de Dados são utilizados como entrada para o módulo de Geração de Classificadores. Para cada grupo Ti, i variando de 1
até n, é criado um conjunto de classificadores Cicontendo m classificadores especialistas nas
regiões encontradas anteriormente, ou seja Ci= {ci1, ci2, ..., cim}, sendo cimo último classificador
especialista gerado para o grupo Ti. O conjunto de todos os classificadores gerados é dado por
C , desta forma C = {C1,C2, ...,Cn}, que contém n×m classificadores.
Após o processamento inicial, utiliza-se o conjunto de classificadores geradosC para determinar a classe de um padrão de entrada xq. O conjunto de classificadoresC é fornecido
como entrada para o módulo de Seleção Dinâmica de Classificadores que irá selecionar um subconjunto de classificadoresC0 que classifiquem corretamente os elementos da região de competência pertencentes ao conjunto de validação V . Os classificadores selecionados C0 são combinados pelo módulo de Combinação de Classificadores e utilizados para determinar a classe wqdo padrão de entrada xq. Esse processo é repetido para cada novo padrão apresentado
pertencente a base de entradaX .
Nas próximas seções, os módulos acima apresentados serão descritos detalhadamente.
3.2
Módulo de Agrupamentos de Dados
Este módulo é responsável por gerar os agrupamentos dos dados. Assume-se que os dados podem ser agrupados utilizando a similaridade entre eles. O objetivo é formar grupos que
35 3.2. MÓDULO DE AGRUPAMENTOS DE DADOS apresentem um maior grau de similaridade entre os elementos de forma a criar conjuntos de classificadores especialistas em subgrupos dos dados originais.
O grau de similaridade dos dados pode ser identificado utilizando uma função de distância. A função de distância utilizada neste trabalho é baseada em Kullback-Leibler divergence [23], porém, obedecendo à propriedade de simetria, ou seja, a distância entre A e B é igual a distância entre B e A. Esta função foi escolhida por ser comumente utilizada em processamento de imagens para comparar histogramas, que representam a informação de frequência em que uma cor aparece em determinada imagem. A função de distância utilizada é apresentada na Equação 3.1.
d( f1, f2) ≡ N
∑
i=1
f1(i) log f1(i) + N
∑
i=1
f2(i) log f2(i) − N
∑
i=1
( f1(i) + f2(i)) log( f1(i) + f2(i)) + 2 log 2 ,
3.1
sendo f1e f2os histogramas das imagens e i a posição do histograma de tamanho N.
Utilizando-se dessa função, as distâncias entre os dados (que para este trabalho são imagens de impressões digitais) são calculadas. O processamento dos dados passa inicialmente por uma etapa de pré-processamento, na qual os histogramas são obtidos, em seguida é realizado o cálculo das distâncias entre as imagens, e por fim as imagens mais similares são agrupadas usando uma técnica de agrupamento hierárquico [22] que permite a fácil separação dos dados em grupos com características similares através de cortes na árvore criada. A Figura 3.2 apresenta uma visão geral do módulo de Agrupamentos de Dados.
Figura 3.2: Visão geral do módulo de Agrupamento de Dados.
Como pode ser visto na Figura 3.2, inicialmente é calculado o histograma das imagens de entrada. Esses histogramas são utilizados para se obter a similaridade das imagens e para a geração da árvore de agrupamento. O cálculo de similaridade é realizado através da função de distância(Equação 3.1). Com base nas distâncias obtidas a árvore de agrupamento é gerada tomando os objetos que apresentem maior similaridade. A árvore de agrupamento é formada por vários níveis de agrupamentos, cada grupo se liga a grupos em um nível posterior. Formam-se inicialmente grupos binários que são agrupados em grupos maiores até que todos os objetos estejam ligados numa mesma árvore.
Diversos métodos podem ser utilizados para obter os agrupamentos . Os mais conhecidos são: single linkage, complete linkage e weighted average linkage, [43]. No método Single
36 3.2. MÓDULO DE AGRUPAMENTOS DE DADOS Linkagetambém chamado de "vizinho mais próximo", a distância entre dois grupos é a menor distância entre os elementos mais próximos desses grupos. No método Complete linkage, a distância entre dois grupos é a distância entre os elementos mais distantes desses grupos, ou seja a distância máxima entre esses grupos. Já o método weighted average linkage calcula a distância como a média da distância entre os grupos. Consequentemente, esse método é menos influenciado por valores extremos.
Após a geração da árvore de agrupamentos, é realizada a etapa de criação dos grupos. Os grupos são criados realizando cortes na árvore de agrupamento de modo a atender determinado critério. Um critério pode ser um limiar de distância, desta forma, todos os elementos que estão ligados abaixo deste limiar são agrupados. Outro critério é definir a quantidade máxima de grupos a ser gerados, neste caso a aplicação se encarrega de estabelecer um limiar de corte de modo a obter a maior quantidade de grupos, limitada a quantidade máxima de grupos estabelecida.
3.2.1
Pseudocódigo do módulo de Agrupamento de Dados
O Algoritmo 3.1 mostra o funcionamento do módulo de Agrupamento de Dados. Como entrada estão o conjunto de dados de treinamentoT e a quantidade de grupos n que serão criados. A saída do algoritmo são os agrupamentos gerados {T1, T2, ..., Tn}. O primeiro passo do algo-
ritmo é gerar os histogramas das imagens de entrada utilizando-se da função gerar_histograma, em seguida realiza-se o cálculo das distâncias entre os histogramas através da função calcu- lar_distancias. As distâncias calculadas são utilizadas para gerar a árvore de agrupamento por meio da função gerar_arvore_agrupamento. Por fim, são criados os n agrupamentos utilizando-se da função criar_grupos, passando como parâmetros a árvore gerada e a quantidade de grupos n.
Algoritmo 3.1: Pseudocódigo do módulo de Agrupamento de Dados. Entradas:T ,n Saídas: {T1, T2, ..., Tn} para ti∈T faça 1: histogramas(i) ←− gerar_histograma(ti) fim 2: distancias ←− calcular_distancias(histogramas) 3: arvore ←− gerar_arvore_agrupamento(distancias) 4: {T1, T2, ..., Tn} ←− criar_grupos(arvore, n)