80
Universidade Presbiteriana Mackenzie Faculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica Agrupamento Evolutivo de Dados 1. Introdução.......................................... 2 1.1. Componentes da Tarefa de Agrupamento.............6 1.2. Complexidade da Tarefa de Agrupamento...........10 1.3. Agrupamento x Classificação.....................12 1.4. Medidas de Proximidade..........................13 1.5. Tipos de Métodos de Agrupamento.................15 2. Agrupamento Evolutivo de Dados.....................18 2.1. Codificação.....................................21 2.2. Operadores......................................24 2.3. Funções de Fitness..............................30 3. Exemplo: Um Algoritmo Imunoevolutivo para Agrupamento de Dados.............................................. 34 3.1. Codificação e Refinamento dos Agrupamentos......36 3.2. Mutação.........................................36 3.3. Função de Fitness, Afinidade, Supressão.........39 3.4. Avaliação de Desempenho.........................42 Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 1

2010: Agrupamento Evolutivo de Dados

Embed Size (px)

DESCRIPTION

EL

Citation preview

Page 1: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Agrupamento Evolutivo de Dados1. Introdução.............................................................................................................2

1.1. Componentes da Tarefa de Agrupamento....................................................61.2. Complexidade da Tarefa de Agrupamento.................................................101.3. Agrupamento x Classificação.....................................................................121.4. Medidas de Proximidade............................................................................131.5. Tipos de Métodos de Agrupamento...........................................................15

2. Agrupamento Evolutivo de Dados.....................................................................182.1. Codificação.................................................................................................212.2. Operadores..................................................................................................242.3. Funções de Fitness......................................................................................30

3. Exemplo: Um Algoritmo Imunoevolutivo para Agrupamento de Dados..........343.1. Codificação e Refinamento dos Agrupamentos.........................................363.2. Mutação......................................................................................................363.3. Função de Fitness, Afinidade, Supressão...................................................393.4. Avaliação de Desempenho.........................................................................42

4. Discussão............................................................................................................50Material desenvolvido com base nas seguintes referências: WITTEN, I.H.; FRANK, E. Data Mining: Practical Machine Learning Tools and Techniques. Morgan Kaufmann Publishers, 2005. HAN, J.; KAMBER, M. Data Mining, Concepts and Techniques. Morgan Kaufmann, 2001. EVERITT, B. S.; LANDAU, S.; LEESE, M. (2001), Cluster Analysis. 4th Ed., Arnold. HRUSCHKA ET AL., “A Survey of Evolutionary Algorithms for Clustering”, IEEE Trans. on Syst., Man, and Cyb. – Part C, 39(2), PP. 133-155, 2009. Há também contribuições obtidas a partir de trabalhos do Prof. Dr. Eduardo Raul Hruschka.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 1

Page 2: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

1. Introdução

Uma das habilidades mais básicas dos organismos vivos é a capacidade de agrupar

objetos similares para produzir uma classificação.

A ideia de organizar coisas similares em categorias é bastante antiga e reflete a

capacidade de identificar características similares em alguns objetos, como forma,

cor, cheiro, posição, altura, etc.

Análise de grupos é um termo genérico usado para designar um amplo espectro de

métodos numéricos de análise de dados multivariados com o objetivo de descobrir

grupos ou clusters homogêneos de objetos.

O agrupamento de objetos em diferentes grupos ou clusters pode simplesmente

representar uma forma conveniente de organizar grandes bases de dados de

maneira que elas sejam mais facilmente compreendidas ou pesquisadas, como

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 2

Page 3: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

também para realizar tarefas muito mais sofisticadas como tomada de decisão em

processos críticos.

Exemplos de aplicações potenciais:

o Medicina: identificação de categorias de diagnósticos, pacientes, remédios, etc.;

o Biologia: propor taxonomia para animais e plantas;

o Marketing: identificar grupos de clientes, produtos, serviços, etc.;

o Arqueologia: investigar relações entre diferentes tipos de objetos;

o Finanças: identificar o perfil de clientes fraudadores ou transações fraudulentas,

etc.

É importante salientar que, na maioria dos casos, há diferentes agrupamentos

possíveis para a mesma base de dados e, portanto, a utilidade de um agrupamento

depende do propósito da análise.

o Por exemplo, um conjunto de carros pode ser agrupado de acordo com a cor, o

consumo de combustível, o continente de fabricação, a fábrica, o peso, etc.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 3

Page 4: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

A análise de clusters, também denominada de agrupamento de dados (data

clustering), é a organização de um conjunto de objetos (normalmente

representados como vetores de características, ou seja, pontos em um espaço

multidimensional) em grupos baseado na similaridade.

Dito de outra forma, agrupar dados é o processo de particionar um conjunto de

dados em subconjuntos (clusters) de forma que os dados em cada cluster

(idealmente) compartilhem características comuns – normalmente proximidade em

relação a alguma medida de distância.

O agrupamento de dados é uma técnica comum em análise estatística de dados que

é usada em diversas áreas, incluindo aprendizagem de máquina, mineração de

dados, reconhecimento de padrões, análise de imagens e bioinformática.

Diversas outras nomenclaturas possuem significado similar, como taxonomia

numérica, análise de clusters, reconhecimento de padrões não-supervisionado e

análise tipológica.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 4

Page 5: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Intuitivamente, objetos pertencentes ao mesmo grupo são mais similares entre si do

que a objetos pertencentes a grupos distintos.

Um cluster pode ser definido com base na coesão interna (homogeneidade) e

isolamento externo (separação) de seus objetos (Figura 1).

Figura 1: Exemplos de grupos de dados.

A variedade de técnicas para representar os dados, avaliar a proximidade

(similaridade) entre os dados e agrupar os dados produziu uma grande riqueza de

métodos de agrupamento.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 5

Page 6: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Embora as técnicas de agrupamento possam ser usadas em diferentes contextos, é

importante que uma quantidade mínima de hipóteses sobre os dados seja usada

durante o processo de agrupamento, para que a análise não seja polarizada***.

1.1. Componentes da Tarefa de Agrupamento

A análise de grupos normalmente envolve as seguintes etapas:

1. Pré-processamento dos dados: correspondente a preparação dos dados para

agrupamento, podendo envolver limpeza, transformação, seleção de atributos,

etc.;

2. Definição da medida de proximidade: normalmente avaliada por uma função de

distância entre pares de objetos;

3. Agrupamento: pode ser efetuado por diferentes métodos e os grupos são hard

(cada objeto pertence a um único grupo) ou fuzzy (cada objeto possui um grau de

pertinência variável a um ou mais grupos).

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 6

Page 7: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

4. Abstração dos dados: é o processo de extrair uma representação simples e

compacta do conjunto de dados. Por exemplo, uma abstração típica dos dados é

a descrição dos clusters através de protótipos, ou padrões representativos dos

clusters, como seu centroide.

5. Avaliação da saída: a avaliação da saída de um algoritmo de agrupamento

depende do contexto e dos objetivos da análise. Por exemplo, em uma análise

exploratória de uma base de dados de imóveis, objetos pertencentes ao mesmo

grupo podem permitir a identificação de perfis de moradores de um determinado

bairro. A saída do algoritmo de agrupamento também pode ser avaliada em

relação à validade do agrupamento; o que pode ser feito através de uma

avaliação externa, ou seja, os grupos encontrados são comparados com uma

estrutura conhecida a priori; uma avaliação interna, ou seja, tenta-se determinar

se a estrutura encontrada pelo algoritmo é apropriada aos dados; e uma

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 7

Page 8: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

avaliação relativa, que compara duas estruturas avaliando o mérito relativo de

cada uma delas.

É importante salientar que nenhuma técnica de agrupamento é universalmente

aplicável e, além disso, diferentes técnicas podem permitir a extração de diferentes

informações de uma mesma base de dados.

Isso é consequência do fato de que muitos algoritmos assumem, implicitamente,

características específicas para as bases de dados.

Para ilustrar, considere o problema apresentado na Figura 2. Este problema,

conhecido como problema das duas espirais, não é resolvido corretamente por

grande parte dos métodos de agrupamento quando são usadas coordenadas

retangulares (apresentado na figura) para representar os dados. Porém, quando são

usadas coordenadas polares para os dados o problema torna-se facilmente

resolvível pela maioria dos algoritmos de agrupamento.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 8

Page 9: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Figura 2: Problema das duas espirais representado em coordenadas retangulares.

É essencial, portanto, que o usuário de um algoritmo de agrupamento tenha um

bom conhecimento do método a ser empregado, saiba detalhes do processo de

aquisição e pré-processamento dos dados, e tenha um bom conhecimento de

domínio.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 9

Page 10: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

1.2. Complexidade da Tarefa de Agrupamento

A maioria dos algoritmos de agrupamento se concentra em obter k grupos de

objetos semelhantes de acordo com algum critério pré-estabelecido.

O número de possibilidades de se classificar N objetos em k grupos é dado por:

N(N,k) = (1)

Por exemplo, existem N(25,5) = 2.436.684.974.110.751 formas de classificar 25

objetos em 5 grupos.

Dessa maneira, pode-se perceber a complexidade de se agrupar corretamente uma

base de dados de 25 objetos em 5 grupos.

Ao considerar que o valor de k é desconhecido, o número total de maneiras de se

agrupar N objetos em k grupos é:

(2)

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 10

Page 11: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

De uma maneira mais formal, o problema de se encontrar uma solução ótima para

a separação de N objetos em k grupos é NP-difícil e, devido ao fato de que o

número de separações possíveis desses N objetos em k grupos aumenta

aproximadamente na razão kN/k!, a tentativa de se encontrar uma solução ótima

globalmente é usualmente inviável sob o ponto de vista computacional.

Por outro lado, a escolha do valor de k é uma tarefa complicada, pois alguns desses

valores não implicam em partições naturais.

Nesse sentido, pode-se rodar o algoritmo de agrupamento diversas vezes, variando-

se o valor de k, para depois escolher a solução cujas características se parecem

melhores ou, ainda, aquelas soluções que forneçam a interpretação mais

significativa dos dados. Esta estratégia frequentemente assume um certo

conhecimento de domínio.

Uma alternativa se constitui em escolher a melhor solução – valor mais adequado

de k – de acordo com algum critério numérico.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 11

Page 12: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

A determinação do número ótimo de grupos em um conjunto de dados é um dos

mais difíceis aspectos do processo de agrupamento.

1.3. Agrupamento x Classificação

É importante perceber a diferença entre agrupamento e classificação de dados.

Na classificação os dados de entrada do algoritmo são rotulados, sendo que a

tarefa do algoritmo de classificação é identificar a classe à qual um novo dado,

ainda não visto, pertence.

Normalmente, os dados rotulados são apresentados ao algoritmo de classificação

(ou estimação) para que ele seja treinado, ou seja, para criar um ‘modelo’ capaz de

classificar (estimar) corretamente novos dados.

No caso do agrupamento, o problema consiste em agrupar um conjunto de dados

não-rotulados em grupos (ou clusters) que tenham algum significado ou utilidade

prática.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 12

Page 13: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

De certa forma, os rótulos dos dados estão associados aos grupos, porém eles serão

obtidos apenas a partir do algoritmo de agrupamento e não serão usados durante o

processo de treinamento do algoritmo.

1.4. Medidas de Proximidade

Um elemento central no processo de identificação de grupos é a avaliação da

‘proximidade’ entre objetos.

A maioria dos métodos de agrupamento assume, como ponto de partida, uma

matriz de dados de dimensão N  L que representa N objetos de dimensão L cada:

, (3)

onde cada objeto da base de dados está representado por um vetor linha xi de

dimensão L, i = 1, ... , N.

Uma outra estrutura de dados muito comum é a matriz de dissimilaridade, com

dimensão N  N, na qual cada elemento da matriz corresponde a uma medida

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 13

Page 14: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

quantitativa da proximidade (ou equivalentemente da dissimilaridade d(i,j) ou dij)

entre pares de objetos:

(4)

A matriz de dados também é denominada de matriz de dois-modos (as linhas

representam elementos distintos das colunas), enquanto a matriz de dissimilaridade

também é denominada de matriz de um-modo (ambas linhas e colunas representam

dissimilaridade).

Grande parte dos algoritmos de agrupamento utiliza medidas de dissimilaridade

para avaliar, indiretamente, a proximidade entre objetos.

Para isso, é preciso identificar primeiramente se a base de dados possui dados do

tipo categórico, numérico ou ambos.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 14

Page 15: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

1.5. Tipos de Métodos de Agrupamento

Há diversos algoritmos de agrupamento na literatura e a escolha de um deles

depende da aplicação e do tipo de dados disponíveis.

Considere uma base de dados X = {x1, x2, ..., xN} com N objetos, onde xj, j = 1, ...,

N, corresponde a um vetor de dados com L atributos. Uma partição dos dados é

uma coleção C = {C1, C2, ..., Ck} de k subconjuntos, Ci , tal que C1 C2

...  Ck = X.

De forma abrangente os métodos podem ser divididos em:

1. Hierárquicos: os métodos hierárquicos criam uma decomposição hierárquica

dos dados. Estes métodos podem ser aglomerativos ou divisivos, baseado em

como o processo de decomposição é efetuado.

a. Os métodos aglomerativos começam com cada objeto pertencendo a um

grupo e unem sucessivamente objetos em grupos de acordo com a

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 15

Page 16: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

proximidade entre eles até que um critério de parada seja atingido (por

exemplo, houver um único grupo contendo todos os objetos).

b. Os métodos divisivos começam com todos os objetos fazendo parte do

mesmo grupo e particionam sucessivamente os grupos em grupos

menores, até que um critério de parada seja atingido (por exemplo, cada

objeto pertença a um grupo distinto);

2. Particionais: dado um conjunto com N objetos, um método particional constrói

k partições dos dados, sendo que cada partição representa um cluster (k  N).

Dado o número k de partições, um método particional cria uma partição inicial e

emprega um algoritmo de realocação iterativa que tem por objetivo melhorar o

particionamento movendo objetos entre grupos.

3. Não-Exclusivos (overlapping): dado um conjunto com N objetos, os métodos

não-exclusivos permitem que um objeto pertença completamente (soft) ou

parcialmente (fuzzy) a mais de um grupo simultaneamente.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 16

Page 17: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Outras características dos algoritmos também podem ser usadas para classificá-los

como:

1. Monotéticos x Politéticos: corresponde ao uso sequencial ou simultâneo dos

atributos no processo de agrupamento. A maioria dos algoritmos é politética, ou

seja, todos os atributos são usados para calcular a distância entre os objetos;

2. Hard x Fuzzy: em um agrupamento hard cada objeto pertence a um único grupo,

Ci Cj = ; enquanto um agrupamento fuzzy atribui graus de pertinência aos

grupos para cada um dos objetos da base, neste caso a condição Ci Cj = é

relaxada;

3. Determinístico x Estocástico: métodos determinísticos apresentam sempre o

mesmo agrupamento, independentemente de parâmetros do algoritmo e/ou

condição inicial; os algoritmos estocásticos podem apresentar diferentes

soluções dependendo dos parâmetros e/ou condição inicial. Obs.: outros fatores

podem influenciar, como a ordem de apresentação dos objetos.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 17

Page 18: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

2. Agrupamento Evolutivo de Dados

Sob uma perspectiva de otimização, o agrupamento pode ser considerado um tipo

específico de problema NP-hard (Seção 1.2).

Essa característica tem estimulado o desenvolvimento de algoritmos eficientes de

busca e otimização para resolver o problema de agrupamento de dados, incluindo a

pesquisa sobre métodos heurísticos de propósito geral.

Particularmente, os algoritmos evolutivos se constituem em heurísticas

amplamente aplicadas e, muitas vezes, efetivas na solução de problemas NP-hard,

fornecendo soluções quase-ótimas para esta classe de problemas em tempo

aceitável.

Sob essa perspectiva, uma vasta gama de algoritmos evolutivos para agrupamento

de dados tem sido proposta na literatura e estes são baseados na otimização de

alguma função objetivo, conhecida como função de custo ou função de fitness.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 18

Page 19: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Os algoritmos evolutivos essencialmente evoluem soluções de agrupamento

através de operadores que usam regras probabilísticas para processar partições de

dados amostradas a partir de um espaço de busca.

o De forma simples, partições com melhores valores de fitness possuem maiores

probabilidades de serem amostradas.

o Assim, a busca evolutiva é polarizada pelas melhores soluções de agrupamento e

tende a realizar uma exploração mais eficiente do espaço de busca do que os

métodos tradicionais de amostragem aleatória, por exemplo, múltiplas

inicializações do k-means.

o Além disso, a utilização de uma função de custo explícita permite,

diferentemente do caso dos algoritmos apresentados anteriormente, avaliar a

qualidade relativa das soluções de agrupamento sendo propostas e melhorá-las

iterativamente visando maximizar a performance do algoritmo de agrupamento

sob a ótica da função-objetivo proposta.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 19

Page 20: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Essa seção faz uma revisão de alguns algoritmos evolutivos para agrupamento de

dados, considerando os seguintes elementos:

o Representação das soluções candidatas (codificação);

o Operadores;

o Função de fitness.

Para ilustrar os algoritmos em estudo, considere a seguinte base de dados

hipotética:

x1 = (1,1), C1.

x2 = (1,2), C1.

x3 = (2,1), C1.

x4 = (2,2), C1.

x5 = (10,1), C2.

x6 = (10,2), C2.

x7 = (11,1), C2.

x8 = (11,2), C2.

x9 = (5,5), C3.

x10 = (6,6), C3.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 20

Page 21: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

2.1. Codificação

Os três principais tipos de codificação propostos na literatura para agrupamento de

dados com algoritmos evolutivos são: binário, inteiro e real.

o Codificação binária: cada solução de agrupamento (partição) é normalmente

representada por uma cadeia binária de comprimento N, sendo N a quantidade

de objetos da base. Cada posição da cadeia corresponde a um objeto da base e o

valor do gene i é 1 se o objeto i for um protótipo e 0 caso contrário. Esse tipo de

representação leva a um algoritmo do tipo baseado em medoides, pois um objeto

da base torna-se um protótipo do grupo ou não.

Ex.: Se assumirmos que os objetos 1, 5 e 9 são protótipos da base numa solução

candidata qualquer, então temos a seguinte representação para este genótipo:

[1000100010].

Uma representação binária alternativa envolve o uso de uma matriz de dimensão

k × N para cada indivíduo, sendo que as linhas representam os grupos e as

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 21

Page 22: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

colunas representam os objetos. Neste caso, se o j-ésimo objeto pertence ao i-

ésimo grupo, então o valor 1 é colocado no i-ésimo elemento da j-ésima coluna

do genótipo, enquanto os demais valores permanecem em 0.

Ex.: Se assumirmos a partição original da base de dados (objetos 1 a 4 C1,

objetos 5 a 8 C2, e objetos 9 e 10 C3), então temos a seguinte representação

para este genótipo:

1 1 1 1 0 0 0 0 0 00 0 0 0 1 1 1 1 0 00 0 0 0 0 0 0 0 1 1

o Codificação inteira: Numa possível codificação inteira para as soluções de

agrupamento, um genótipo é um vetor inteiro de N posições (N = número de

objetos da base), sendo cada posição correspondente ao rótulo do grupo ao qual

um objeto particular pertence.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 22

Page 23: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Ex.: Se assumirmos a partição original da base de dados (objetos 1 a 4 C1,

objetos 5 a 8 C2, e objetos 9 e 10 C3), então temos a seguinte representação

para este genótipo: [1111222233]. Note que essa codificação é naturalmente

redundante e, portanto, o tamanho do espaço de busca é muito maior que o

espaço original de possíveis soluções.

Uma representação inteira alternativa envolve o uso de um arranjo de k

elementos numa representação baseada em medoides, sendo que cada elemento

do vetor corresponde ao número do objeto que é o medoide do grupo k.

Ex.: Se assumirmos que os objetos 2, 6 e 10 são os medoides dos grupos, então

o vetor que representa os protótipos (soluções candidatas) é: [2 6 10].

o Codificação real: Na codificação real, os genótipos correspondem a números

reais que representam as coordenadas dos protótipos dos grupos. Se o genótipo

codifica k grupos em um espaço de dimensão L, então o comprimento de cada

genótipo é L.k.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 23

Page 24: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Ex.: O genótipo [1.5 1.5 10.5 1.5 5.5 5.0] codifica os protótipos (1.5 1.5), (10.5

1.5), (5.5 5.0).

2.2. Operadores

Quando operadores genéticos tradicionais de cruzamento e mutação são utilizados

em problemas de agrupamento, eles simplesmente manipulam os valores dos genes

sem considerar suas interrelações.

No entanto, no contexto de agrupamento de dados, as interrelações entre genes

devem constituir o objetivo primário do processo de otimização.

Portanto, é importante se atentar para a necessidade de desenvolver operadores

genéticos orientados à tarefa de agrupamento de dados.

Vamos considerar alguns operadores específicos com base nos três principais tipos

de codificação:

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 24

Page 25: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Operador de Cruzamento (Crossover)

o Codificação binária: Um operador tipicamente usado para codificação binária é

o crossover uniforme, através do qual os genótipos dos pais trocam bits. Note

que, caso k seja fixo, esse operador pode levar ao surgimento de soluções

candidatas com um número de protótipos maior ou menor que k.

o Codificação inteira: Uma maneira de combinar soluções de agrupamento

advindas de diferentes genótipos é: dados dois genótipos G1 e G2 com,

respectivamente, k1 e k2 grupos, um número c, c {1, 2, ..., k1}, de grupos é

selecionado aleatoriamente de G1 e copiado para G2. Os grupos de G2 que não

sofrem alteração são mantidos e aqueles mudados têm seus objetos não afetados

alocados nos grupos mais próximos. Dessa forma obtemos o descendente G3 e,

similarmente, obtemos o descendente G4.

Ex.: Para ilustrar esse procedimento, considere os seguintes genótipos:

G1 = 1123245125432533424

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 25

Page 26: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

G2 = 1212332124423221321

Vamos assumir que os grupos {2, 3} de G1 foram aleatoriamente selecionados:

G1 = 1123245125432533424

Quando estes grupos são copiados para G2, eles modificam os grupos 1, 2 e 3 de

G2, enquanto o grupo 4 não é alterado.

G2 = 1223232124432233321

As posições sublinhadas, que correspondem aqueles genes indiretamente

afetados pelos grupos 2 e 3 de G1 agora são mudados para 0:

G3 = 0023200024432033020

Os genes setados em zero deverão ser colocados nos grupos mais próximos já

codificados por G3. O mesmo procedimento é aplicado para se obter um

descendente G4, exceto pelos grupos selecionados para serem copiados em G1.

Estes grupos agora são os grupos de G2 inicialmente mudados para gerar o

descendente G3, ou seja, 1, 2 e 3.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 26

Page 27: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

o Codificação real: Operadores de crossover de um ponto ou dois pontos (single-

point ou two-points) não são sensíveis a contexto, ou seja, não consideram as

interrelações entre os grupos no momento do cruzamento. Isso pode gerar,

dentre outras coisas, soluções inválidas, particionamentos com dois centroides

iguais, etc. Operadores de cruzamento específicos podem ser pensados, como:

Crossover aleatório: selecione aleatoriamente k/2 centroides de cada um dos

pais e troque entre si; centroides duplicados são substituídos por sorteios

aleatórios.

Distância do centroide: os grupos são inicialmente ordenados com base na

distância deles ao centroide da base de dados. Os grupos mais próximos deste

centroide global são denominados de grupos centrais e os demais de grupos

remotos. Um descendente é criado tomando-se os grupos centrais de um dos

pais e os grupos remotos do outro pai.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 27

Page 28: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Crossover par a par: os grupos codificados em diferentes pais são pareados de

acordo com a similaridade de seus centroides. Um descendente é gerado

tomando-se aleatoriamente um centroide de cada par de grupos.

Crossover par a par por vizinho mais próximo (pairwise nearest neighbor

crossover): os 2k centroides de dois pais podem ser agrupados em k grupos

que formarão o descendente.

Operador de Mutação

o Codificação binária: Uma forma de mutar genótipos binários codificados como

visto anteriormente é simplesmente alternar bits do genótipo, o que corresponde

a deletar protótipos existentes ou inserir novos protótipos.

o Codificação inteira: No caso de uma codificação inteira na qual cada posição do

genótipo representa o rótulo de um objeto da base, diferentes tipos de

operadores de mutação podem ser empregados:

Troca aleatória do rótulo de objetos probabilisticamente selecionados;

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 28

Page 29: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Troca do valor de um gene dependendo da distância dos centroides dos

grupos em relação ao objeto correspondente. Especificamente, a

probabilidade de trocar o valor de um gene de um dado objeto é maior se o

centroide do grupo correspondente está mais próximo do objeto.

Para a representação alternativa baseada nos medoides, é possível selecionar

aleatoriamente um medoide e substituí-lo por outro objeto da base, de acordo

com uma probabilidade pré-determinada.

Nota: Nos casos em que o algoritmo evolutivo permite a determinação

automática do número k de grupos da base, é comum o uso de operadores de

mutação que permitem a criação de novos grupos (rótulos), a remoção de

grupos e a mudança de grupo de um determinado objeto. Um caso desses será

apresentado posteriormente.

o Codificação real: Para este tipo de codificação também é possível projetar

diferentes tipos de operadores de mutação:

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 29

Page 30: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Perturbar suavemente os centroides codificados em cada genótipo;

Substituir protótipos por objetos da base de dados, o que aumenta a

probabilidade de se criar ou eliminar grupos através da mutação.

2.3. Funções de Fitness

Muitos critérios de validação de agrupamentos podem ser usados para avaliar

partições contendo um número k de grupos.

Vários destes critérios podem ser adaptados e usados como função de fitness de

algoritmos evolutivos para agrupamento.

Portanto, as funções de fitness usadas em algoritmos evolutivos representam

apenas um subconjunto das possíveis funções de fitness a serem usadas. Vejamos

algumas delas:

o Representação baseada em medoide:

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 30

Page 31: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Soma das distâncias intra-cluster : Minimização da soma das distâncias entre

os objetos da base X = {x1, x2, ..., xN} e os medoides do conjunto {m1, m2, ...,

mk} {x1, x2, ..., xN}. Para isso é definido o critério de fitness:

, (5)

onde m representa o medoide mais próximo do objeto xi, d(xi,m) = minj

d(xi,mj) e d(,) corresponde a medida de distância.

o Representação baseada em centroide:

Soma das distâncias intra-cluster : Minimização da soma das distâncias entre

os objetos da base X = {x1, x2, ..., xN} e os centroides dos grupos {c1, c2, ...,

ck}. Para isso é definido o critério de fitness:

, (6)

onde {C1, ..., Ck} é o conjunto de k grupos codificados no genótipo, xi é um

objeto da base e cj é o centroide do grupo Cj.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 31

Page 32: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

o Independente de representação:

MaxInter-MinIntra : A função de fitness abaixo maximiza a distância

intergrupo dinter enquanto minimiza a distância intragrupo dintra e está associada

a cada genótipo:

(7)

onde dinter(Cj) é a distância entre o grupo Cj e o conjunto de todos os outros

grupos e dintra(Cj) é a distância intragrupo de Cj, e w é um peso associado a

distância integrupo definido pelo usuário.

Silhueta : Seja um objeto xi pertencente a um grupo A e a dissimilaridade

média entre os outros objetos de A em relação a xi denotada por a(xi). Seja

outro grupo C; a dissimilaridade do objeto i em relação aos objetos de C é

denotada por d(xi,C). Após o cálculo de d(xi,C) para todos os grupos C ≠ A, o

de menor valor é escolhido, ou seja, b(xi) = min d(xi,C), C ≠ A. Este valor

representa o valor do objeto xi para o grupo mais próximo:

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 32

Page 33: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

(8).

O valor s(xi) [1, +1], sendo que quanto maior o valor de s(xi) maior é a

proximidade do objeto xi com um dado grupo. Se o valor de s(xi) for zero,

então não é possível definir claramente se este objeto xi deveria estar no grupo

atual ou em outro grupo próximo. Se um grupo A possui apenas um valor

então s(xi) não é definida e é considerada zero. O critério da Silhueta é dado

pela média de s(xi), i = 1, ..., N e a melhor forma de agrupamento é encontrada

maximizando esta função.

3. Exemplo: Um Algoritmo Imunoevolutivo para Agrupamento de Dados

Os algoritmos evolutivos possuem sua inspiração na Teoria da Evolução das

espécies de Charles Darwin.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 33

Page 34: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Esses algoritmos são capazes de encontrar boas soluções em tempo computacional

razoável e, por este motivo, eles são utilizados como opção para a solução de

problemas complexos.

O princípio da evolução é o conceito primário que liga todos os seres vivos em

uma corrente singular de eventos.

Cada espécie presente nesta corrente é produto de um conjunto de eventos

específicos sobre uma pressão seletiva aplicada pelo ambiente nos organismos.

Ao longo de gerações, seleção natural e variações formam-se os indivíduos melhor

adaptados ao ambiente.

A ocopt-aiNet é um algoritmo imunoevolutivo proposto para combinar conceitos

de sistemas imunológicos artificiais e algoritmos evolutivos capaz de encontrar

particionamentos ótimos em bases de dados que apresentam grupos naturais de

dados.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 34

Page 35: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

O algoritmo ocopt-aiNet foi desenvolvido com o objetivo de minimizar alguns dos

inconvenientes encontrados nos algoritmos clássicos de agrupamento, a saber, a

proposição de uma única solução de agrupamento a cada execução, a necessidade

de especificação a priori do número de grupos da base, e a busca local em torno de

uma região específica do espaço.

Sendo assim, o algoritmo ocopt-aiNet apresenta as seguintes características:

o Determinação automática do número de grupos da base;

o Ampla exploração do espaço de busca;

o Geração de múltiplos particionamentos simultâneos para a base de dados,

permitindo uma análise mais exploratória e multimodal da base.

3.1. Codificação e Refinamento dos Agrupamentos

A codificação do algoritmo ocopt-aiNet incorpora o rótulo de cada grupo da base

de dados na codificação. Exemplo:

Célula 1- [111122221133333]

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 35

Page 36: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Após a geração da população inicial é utilizado o algoritmo k-médias para o

refinamento (busca local) dos grupos codificados pelas células.

O objetivo desse refinamento é o de executar uma aproximação do objetivo do

algoritmo de encontrar agrupamentos ótimos de dados, manipulando cada célula da

rede para uma melhor organização.

3.2. Mutação

São utilizados três operadores de mutação no algoritmo ocopt-aiNet: Exclusão,

Divisão e Transformação. Apenas um operador de mutação pode ser aplicado para

cada célula, com probabilidade 1 – f(i).

Os Operadores de Exclusão e Divisão tem probabilidade Pm = 25% de serem

aplicados, enquanto o Operador de Transformação tem probabilidade Pm = 50%

de ser aplicado.

Operador de Exclusão

Célula 1 – [113413422134433]

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 36

Page 37: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Operador de Divisão

Célula 2 – [113413413134433]

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 37

Page 38: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Operador de Transformação

Esse operador verifica se o objeto correspondente à posição encontra-se no grupo

correto.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 38

Page 39: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Para isso é verificada a similaridade do objeto aos centroides dos grupos formados

pela célula:

o Caso ele esteja no grupo correto, ou seja, tenha similaridade maior com o

centroide de seu próprio grupo do que com os dos outros, seu rótulo é

mantido;

o Caso exista um centroide de outro grupo com o qual este objeto tenha maior

similaridade do que com o centroide do grupo a que ele está alocado, então o

rótulo é alterado para o desse centroide com maior similaridade.

3.3. Função de Fitness, Afinidade, Supressão

A função de fitness usada na ocopt-aiNet foi a Silhoueta, apresentada

anteriormente.

No algoritmo imunológico a afinidade tem como objetivo principal suprimir

células que apresentem codificações de agrupamentos semelhantes.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 39

Page 40: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Para o algoritmo ocopt-aiNet a afinidade das células mantidas para a próxima

geração é calculada a partir da quantidade de objetos rotulados para um mesmo

grupo em duas células de memória, mesmo que rótulos distintos sejam usados para

codificar os mesmos grupos.

na qual Af(a,b) é o valor da afinidade entre as Células a e b, Ni representa o total

de objetos rotulados em um mesmo grupo nas Células a e b e N representa o

número total de objetos de uma célula.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 40

Page 41: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

1. Iniciar a população com N células aleatoriamente.2. Enquanto valor médio do número de grupos de w tem diferença menor que

, faça2.1. *Aplicar refinamento de agrupamentos as células da rede.2.2. Avaliar cada célula de acordo com seu fitness.2.3. Aplicar normalização linear no fitness.2.4. Gerar um número Nc de clones para cada célula pai.2.5. Aplicar mutação proporcional o fitness da célula pai, mantendo

célula pai.2.6. Determinar o fitness de todas as células da população.2.7. Para cada clone, selecionar o de maior fitness e calcular o fitness

médio da população selecionada.2.8. Se diferença entre fitness médio da população em relação ao fitness

médio da iteração anterior for menor que , continuar. Senão, voltar ao Passo 2.

2.9. Determinar a afinidade de todas as células na população. Suprimir as células com afinidade menor que o limiar de supressão ().

2.10. Introduzir um percentual d% de células geradas aleatoriamente e retornar ao Passo 2.

3. Fim Enquanto.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 41

Page 42: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

3.4. Avaliação de Desempenho

Parâmetros do algoritmo

o N = 20; Nc = 10; k = 10.

o = 0.001; = 0.001; w = 20.

o = 0.1; d = 10%.

o k-médias: max_it = 5.

Bases de dados: Auto MPG, Animais, Ruspini, Yeast.

Base Auto MPG:

FUNÇÃO OBJETIVO

Max Méd Min Desvio

ocopt-aiNet v1 0,74347 0,73004 0,66453 0,02317

ocopt-aiNet v2 0,73714 0,72536 0,71330 0,00795

EAC 0,77486 0,77486 0,77486 ---

k-médias 0,77486 0,49982 0,42565 0,13564Função objetivo para a base Auto MPG.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 42

Page 43: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

DIVERSIDADE NRO. DE INDIVÍDUOS

Max Méd Min Desvio Max Méd Min Desvio

ocopt-aiNet v1 0,5116 0,4890 0,466 0,0178 13,00 11,4 9,0 1,174

ocopt-aiNet v2 0,5187 0,4365 0,365 0,0397 41,00 30,5 26,0 4,089

EAC 0,0000 0,0000 0,000 --- 1,00 1,00 1,0 ---

k-médias 0,3705 0,2542 0,000 0,1294 --- --- --- ---

Diversidade e número de soluções para a base Auto MPG.

NÚMERO DE GRUPOS

Max Méd Min Desvio

ocopt-aiNet v1 5,33333 5,22984 5,00000 0,09249

ocopt-aiNet v2 7,87500 7,40105 6,82758 0,28392

EAC 2,00000 2,00000 2,00000 ---

k-médias 6,60000 4,30000 2,00000 1,74814

Número de grupos nas soluções para a base Auto MPG.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 43

Page 44: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

TEMPO COMPUTACIONAL (hh:mm:ss)

Max Méd Min Desvio

ocopt-aiNet v1 00:46:58 00:17:49 00:03:21 00:14:11

ocopt-aiNet v2 02:12:36 00:55:04 00:11:06 00:41:13

EAC 00:35:39 00:31:50 00:30:19 00:01:32

k-médias 00:00:00 00:00:00 00:00:00 ---

Tempo computacional para a base Auto MPG.

Grupo Carro MPG Cil. Desl. Pot. Peso Aceleração Ano Origem

1

Ford 20,2 6 200 88 3060 17,1 81 1

Chrysler 17,6 6 225 85 3465 16,6 81 1

Chevrolet 15 8 400 150 3761 9,5 70 1

Buick 14 8 455 225 3086 10 70 1

2

Toyota 24 4 113 95 2372 15 70 3

Datsun 27 4 97 88 2130 14,5 70 3

Volkswagen 26 4 97 46 1835 20,5 70 2

Peugeot 25 4 110 87 2672 17,5 70 2

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 44

Page 45: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Agrupamento da base Auto MPG pelo EAC.

Grupo Carro MPG Cil. Desl. Pot. Peso Aceleração Ano Origem

1

Datsun 32 4 85 70 1990 17 76 3Toyota 28 4 97 75 2155 16,4 76 3Honda 31,5 4 98 68 2045 18,5 77 3Renault 36 4 79 58 1825 18,6 77 2

2

Dodge 28 4 98 80 2164 15 72 1Ford 19 4 122 85 2310 18,5 73 1

Chevrolet 25 4 140 75 2542 17 74 1Dodge 28 4 90 75 2125 14,5 74 1

3

Ford 21 6 200 85 2587 16 70 1Amc 21 6 199 90 2648 15 70 1

Plymouth 22 6 198 95 2833 15,5 70 1Amc 18 6 199 97 2774 15,5 70 1

4

Datsun 27 4 97 88 2130 14,5 70 3Peugeot 25 4 110 87 2672 17,5 70 2

Volkswagen 26 4 97 46 1835 20,5 70 2Toyota 24 4 113 95 2372 15 70 3

5

Chevrolet 18 8 307 130 3504 12 70 1Buick 15 8 350 165 3693 11,5 70 1

Blymouth 18 8 318 150 3436 11 70 1Amc 16 8 304 150 3433 12 70 1

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 45

Page 46: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Agrupamento da base Auto MPG pelo algoritmo ocopt-aiNet v2.

1 2 3 4 5G1 G1 G1 G1 G1

Pombo Pombo Pombo Pombo PomboGalinha Galinha Galinha Ganso GalinhaPato Pato Pato G2 G2Ganso Ganso Ganso Galinha PatoCoruja Coruja Coruja Pato GansoGavião Gavião Gavião G3 G3Águia Águia Águia Coruja Coruja

G2 G2 G2 Gavião GaviãoRaposa Raposa Raposa G4 G4Cão Cão Gato Águia ÁguiaLobo Lobo G3 G5 G5Gato Gato Cão Raposa RaposaTigre G3 Lobo Gato GatoLeão Tigre G4 G6 G6Cavalo Leão Tigre Cão CãoZebra G4 Leão Lobo LoboVaca Cavalo G5 G7 G7  Zebra Cavalo Tigre Tigre  G5 Zebra Leão Leão  Vaca G6 G8 G8    Vaca Cavalo Cavalo      Zebra Zebra      G9 G9

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 46

Agrupamentos da base Animais pela ocopt-aiNet v2.

Page 47: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

      Vaca Vaca0,79921 0,79645 0,80709 0,80001 0,80001

Base Ruspini:

Fitness: 0,89381

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 47

Page 48: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Fitness: 0,87405

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 48

Page 49: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Fitness: 0,87988

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 49

Page 50: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

4. Discussão O termo mineração de dados, ou data mining surgiu do interesse em se utilizar

grandes bancos de dados de uma maneira inteligente.

A ideia é descobrir conhecimento em grandes conjuntos de dados, que corresponde

a uma tarefa significativamente difícil e desafiadora, requerendo ativa participação

de engenheiros de conhecimento, analistas de sistemas, analistas de dados,

especialistas do domínio, usuários do sistema, estatísticos, etc.

É, portanto, uma tarefa interdisciplinar e multidisciplinar, centralizada na

participação ativa do ser humano.

De um modo mais formal, pode-se dizer que a mineração de dados se refere a uma

classe de métodos utilizados em alguns passos que abrangem o processo de

descoberta de conhecimento em bancos de dados (Knowledge Discovery in

Databases – KDD).

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 50

Page 51: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Este termo, cunhado em 1989, se refere ao processo, interativo e iterativo, de

descoberta de conhecimento em conjuntos de dados, incorporando conhecimento

de domínio e interpretação de resultados, com ênfase na aplicação dos métodos de

mineração de dados.

Pode-se definir a descoberta de conhecimento em bancos de dados como sendo o

processo não trivial de identificação de padrões válidos, novos, potencialmente

úteis e compreensíveis em grandes bancos de dados.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 51

Page 52: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Figura 3: Processo de KDD. (Fonte: Fayyad et al., 1996).

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 52

Page 53: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Figura 4: Multidisciplinaridade da mineração de dados.

Agrupamento de dados é uma das tarefas mais importantes do processo de KDD e

algoritmos evolutivos podem ser usados para, efetivamente, resolver problemas de

agrupamento de dados.

Encontrar diversidade em bases de dados é uma capacidade importante para

auxiliar na tomada de decisão por parte do usuário, permitindo uma análise mais

ampla das relações existentes entre os objetos pertencentes à base.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 53

Page 54: 2010: Agrupamento Evolutivo de Dados

Universidade Presbiteriana MackenzieFaculdade de Computação e Informática e Programa de Pós-Graduação em Engenharia Elétrica

Agradecimento

O autor agradece a Universidade Presbiteriana Mackenzie pelo permanente e

dedicado apoio às atividades de pesquisa, ao programa Mackpesquisa, ao CNPq e à

Fapesp pelos apoios financeiros.

Agrupamento Evolutivo de Dados - Leandro Nunes de Castro 54