• Nenhum resultado encontrado

Agrupamento e Classificação de Dados Usando Enxame de Partículas

N/A
N/A
Protected

Academic year: 2021

Share "Agrupamento e Classificação de Dados Usando Enxame de Partículas"

Copied!
82
0
0

Texto

(1)

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Agrupamento e Classificação de Dados

Usando Enxame de Partículas

Dissertação apresentada ao Programa de Pós-Graduação em Engenharia Elétrica da Universidade Presbiteriana Mackenzie, como requisito parcial para a obtenção do título de Mestre em Engenharia Elétrica.

Área de concentração: Engenharia da Computação.

Aluno: Alexandre Szabo

Orientador: Prof. Dr. Leandro Nunes de Castro

São Paulo 2010

(2)

Livros Grátis

http://www.livrosgratis.com.br

(3)

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Agrupamento e Classificação de Dados

Usando Enxame de Partículas

Dissertação apresentada ao Programa de Pós-Graduação em Engenharia Elétrica da Universidade Presbiteriana Mackenzie, como requisito parcial para a obtenção do título de Mestre em Engenharia Elétrica.

Área de concentração: Engenharia da Computação.

Aluno: Alexandre Szabo

Aprovada em

BANCA EXAMINADORA

________________________________________________________________ Prof. Dr. Leandro Nunes de Castro

Universidade Presbiteriana Mackenzie

________________________________________________________________ Prof. Dr. Pedro Paulo Balbi de Oliveira

Universidade Presbiteriana Mackenzie

________________________________________________________________ Prof. Dr. Walmir Matos Caminhas

Universidade Federal de Minas Gerais

São Paulo 2010

(4)

S996a Szabo, Alexandre.

Agrupamento e classificação de dados usando enxame de partículas / Alexandre Szabo – 2010.

78 f. : il. ; 30 cm.

Dissertação (Mestrado em Engenharia Elétrica) – Universidade Presbiteriana Mackenzie, São Paulo, 2010.

Bibliografia: f. 70-78.

1. Enxame de partículas. 2. Mineração de dados. 3. Agrupamento de dados. 4. Classificação de dados. I. Título.

(5)

À Universidade Presbiteriana Mackenzie (UPM), ao Mackpesquisa e ao Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) pelo apoio financeiro, sem o qual não seria possível a realização deste trabalho.

Agradeço ao orientador, Prof. Dr. Leandro Nunes de Castro, pelas oportunidades que sempre oferece aos seus alunos, pelo constante incentivo à pesquisa e pelas atividades que realizamos juntos durante o Mestrado.

À Ana Karina Fontes Prior, aluna do curso de Mestrado em Engenharia Elétrica, agradeço pela companhia, amizade e considerável contribuição em minhas atividades acadêmicas.

Agradeço aos amigos, aos professores do Programa de Pós-Graduação em Engenharia Elétrica da UPM e àqueles que também contribuíram para a concretização desta dissertação.

(6)

A Mineração de Dados é parte de um processo interativo e iterativo de extração de conhecimentos a partir de bases de dados. Há muitas tarefas envolvidas na mineração de dados, desde o pré-processamento até a validação da aplicação de ferramentas automáticas de extração de conhecimento. Agrupamento e classificação de dados são duas das mais importantes tarefas de mineração e têm sido amplamente estudadas também em outras áreas do conhecimento, como a matemática e a estatística. Essa dissertação propõe e investiga a aplicação de algoritmos de Computação Natural, mais especificamente, algoritmos de Inteligência de Enxame para resolver problemas de agrupamento e classificação de dados. Um algoritmo proposto recentemente na literatura é investigado em detalhes, são propostas melhorias e adaptações em sua estrutura tal que ele possa ser aplicado na realização das tarefas de mineração de dados supracitadas. Seu desempenho é comparado com o de outros algoritmos típicos da literatura e os resultados mostram que as novas versões propostas são competitivas em relação às alternativas testadas, sugerindo uma área promissora de pesquisa.

Palavras-chave: Enxame de partículas, mineração de dados, agrupamento de dados,

(7)

Data Mining is part of an iterative and interactive process of knowledge extraction from databases. There are many tasks involved in data mining, from data pre-processing to the validation of the application of automatic knowledge extraction tools. Grouping and classification are two of the most important data mining tasks and have been broadly studied in other areas as well, such as mathematics and statistics. This dissertation proposes and investigates the application of Natural Computing, more specifically, Swarm Intelligence algorithms to solve grouping and classification problems. A recently proposed algorithm is investigated in detail, and adaptations and improvements are proposed such that it can be applied to the aforementioned data mining tasks. Its performance is compared to that of other standard algorithms from the literature, and the presented results suggest that the new versions introduced here are competitive and lead to a promising research trend.

(8)

Figura 2.1: Processo de descoberta de conhecimento em bases de dados (BIGUS, 1996)...15 Figura 2.2: Agrupamento hierárquico divisivo e aglomerativo sobre objetos {a, b, c, d}. (Adaptado de: J. Han & M. Kamber, Data Mining: Concepts and Techniques, 2000, Morgan Kaufman)...18 Figura 2.3: Agrupamento de um conjunto de objetos pelo método k-means. (O centróide de cada grupo é marcado por um “+”). (Fonte: J. Han & M. Kamber, Data Mining: Concepts and Techniques, 2000, Morgan Kaufman)...20 Figura 3.1: Vizinhança do PSO. (a) Vizinhança global. (b) Vizinhança local. (Fonte: L. N. de Castro, Fundamentals of Natural Computing: Basic Concepts, Algorithms, and Applications, 2006, CRC Press)...31 Figura 5.1: Distância entre a partícula e o objeto ao longo das iterações para 3

constante…...48 Figura 5.2: Distância entre a partícula e o objeto ao longo das iterações para 3

aleatório...49 Figura 5.3: Distância entre a partícula e o objeto ao longo das iterações para 1 e 3 constantes...49 Figura 5.4: Distância entre a partícula e o objeto ao longo das iterações para 1 e 3 aleatórios...50 Figura 5.5: Distância entre a partícula 1 e os objetos ao longo das iterações para 3

constante...52 Figura 5.6: Distância entre a partícula 2 e os objetos ao longo das iterações para 3

constante...52 Figura 5.7: Distância entre a partícula 1 e os objetos ao longo das iterações para 3

aleatório...52 Figura 5.8: Distância entre a partícula 2 e os objetos ao longo das iterações para 3

(9)

constantes...53 Figura 5.10: Distância entre a partícula 2 e os objetos ao longo das iterações para 1e 3 constantes...53 Figura 5.11: Distância entre a particula 1 e os objetos ao longo das iterações para 1e 3 aleatórios...54 Figura 5.12: Posições da partícula 1 no espaço de busca para 1 e 3 aleatórios...54 Figura 5.13: Distância entre a partícula 2 e os objetos ao longo das iterações para aleatórios 1e3...55 Figura 5.14: Posições da partícula 2 no espaço de busca para 1 e 3 aleatórios...55 Figura 5.15: Distância entre a partícula 1 e os objetos ao longo das iterações para 2e 3 constantes...56 Figura 5.16: Distância entre a partícula 2 e os objetos ao longo das iterações para 2e3 constantes...56 Figura 5.17: Distância entre a partícula 1 e os objetos ao longo das iterações para 2e3 aleatórios...56 Figura 5.18: Distância entre a partícula 2 e os objetos ao longo das iterações para 2e3 aleatórios...57 Figura 5.19: Distância entre a partícula 1 e os objetos ao longo das iterações para 1e2

e 3 constantes...57

Figura 5.20: Distância entre a partícula 2 e os objetos ao longo das iterações para 1e2

e 3 constantes...57

Figura 5.21: Distância entre a partícula 1 e os objetos ao alongo das iterações para 1e

2 e 3 aleatórios...58 Figura 5.22: Distância entre a partícula 2 e os objetos ao alongo das iterações para 1e

(10)

Tabela 5.1: Principais características das bases de dados utilizadas para validação dos algoritmos propostos...47 Tabela 5.2: Resumo dos resultados para os experimentos 3 e 1+3, com uma única

partícula...50 Tabela 5.3: Resumo dos resultados para os experimentos 3, 1+3, 2+3 e1+2+3,

com duas partículas. Os resultados mostram a Variação de , Media de iterações para a convergência, Min/ Max interações para a convergência, Média das distâncias (partícula 1) e Média das distâncias (partícula 2)...59 Tabela 5.4: Média  Desvio Padrão de Entropia (E), Pureza (P), Percentual de Classificação Incorreta (CI) e Tempo de Execução (T) em milissegundos, para o mPSC, PSC e k-means...60 Tabela 5.5: Parâmetros usados nos Experimentos com os algoritmos Pittsburgh PSO, Michigan PSO, Michigan Adaptativo PSO...62 Tabela 5.6: Resultados do desempenho de classificação (Pcc) do PSClass e dos

algoritmos Naïve Bayes, K-NN e das redes MLP...62 Tabela 5.7: Número médio de protótipos para os algoritmos Pittsburgh PSO, Michigan PSO e Michigan Adaptativo PSO (Cervantes et al., 2009)...63 Tabela 5.8: Média do Percentual de Classificação Correta para os algoritmos PSClass e PPSO...63 Tabela 5.9: Média do Percentual de Classificação Correta para os algoritmos PSClass e MPSO...64 Tabela 5.10: Média do Percentual de Classificação Correta para os algoritmos PSClass e AMPSO...64 Tabela 5.11: Limiares de afinidade para cada base de dados...66 Tabela 5.12: Resultados do desempenho de classificação (Pcc) do PSClass e do

(11)

1 INTRODUÇÃO ... 11 1.1 JUSTIFICATIVA ... 11 1.2 HIPÓTESES ... 12 1.3 CONTRIBUIÇÕES DA DISSERTAÇÃO ... 12 1.4 ORGANIZAÇÃO DA DISSERTAÇÃO ... 13 2 MINERAÇÃO DE DADOS ... 14 2.1 AGRUPAMENTO DE DADOS ... 16 2.1.1 Métodos Hierárquicos ... 17 2.1.2 Métodos Particionais... 18 2.1.3 O Algoritmo k-means ... 19 2.2 CLASSIFICAÇÃO DE DADOS ... 20 2.2.1 O Algoritmo LVQ ... 22 2.2.2 O Algoritmo K-NN ... 23 2.3 AVALIAÇÃO DE DESEMPENHO ... 23 2.3.1 Agrupamento: Entropia ... 24 2.3.2 Agrupamento: Pureza ... 24

2.3.3 Classificação: Acurácia Preditiva ... 25

2.3.4 Classificação: Método k-pastas ... 25

3 INTELIGÊNCIA DE ENXAME ... 27

3.1 ENXAME DE PARTÍCULAS ... 28

3.2 VARIANTES DO PSO ... 32

3.2.1 Agrupamento por Enxame de Partículas ... 33

3.2.2 Classificação por Enxame de Partículas... 34

4 AGRUPAMENTO E CLASSIFICAÇÃO COM O PSO ... 37

4.1 mPSC: AGRUPAMENTO USANDO ENXAME DE PARTÍCULAS ... 37

4.2 PSClass: CLASSIFICAÇÃO USANDO ENXAME DE PARTÍCULAS ... 39

4.3 cPSClass: CLASSIFICADOR CONSTRUTIVO POR ENXAME DE PARTÍCULAS ... 43

5 AVALIAÇÃO DE DESEMPENHO ... 46

5.1 ANÁLISE DE CONVERGÊNCIA DO PSC ... 47

5.1.1 Análise com uma Partícula e um Objeto ... 48

5.1.2 Análise com duas Partículas e dois Objetos ... 51

(12)

6 CONCLUSÕES E TRABALHOS FUTUROS ... 68 REFERÊNCIAS BIBLIOGRÁFICAS ... 70

(13)

1 INTRODUÇÃO

Nas empresas, indústrias, entidades financeiras, instituições de ensino e muitas outras a quantidade de dados produzida e armazenada é tão grande que não é possível analisar tal volume sem o auxílio de ferramentas computacionais. Algumas destas ferramentas são capazes de analisar grandes massas de dados e retornar conhecimento útil e compreensível sobre os dados analisados. Este processo de análise é denominado descoberta de conhecimento em bases de dados ou simplesmente KDD (Knowledge Discovery in Data Bases) (Goldschmidt e Passos, 2005).

Uma das principais etapas do KDD é a mineração de dados, que compreende, dentre outras, as tarefas de agrupamento e classificação de dados (Goldschmidt e Passos, 2005). Dado um banco de dados, procura-se saber quais informações estes dados representam e como elas podem ser usadas para a tomada de decisão, ou seja, deseja-se extrair o conhecimento implícito nesta base. Portanto, o processo de KDD tem como importante aplicação o apoio à tomada de decisão. Nas empresas, de um modo geral, operadores, gerentes e diretores estão a todo o momento tomando decisões que implicam no sucesso dos negócios e o uso de ferramentas computacionais inteligentes permite-lhes tomar decisões eficientes e eficazes.

Esta dissertação propõe a investigação e adaptação de um algoritmo de otimização, denominado algoritmo de otimização por enxame de partículas (PSO – do inglês Particle Swarm Optimization) (Kennedy e Eberhart, 1995), para aplicação nas tarefas de agrupamento e classificação de dados. Sob o ponto de vista conceitual os resultados esperados são ferramentas de Computação Natural (de Castro, 2007) aplicáveis em tarefas de mineração de dados. Para avaliar os métodos de agrupamento e classificação estudados e desenvolvidos foram utilizadas bases de dados da literatura, mais especificamente do Repositório de Dados da Universidade da Califórnia em Irvine – UCI (URL: http://ftp.ics.uci.edu/pub/machine-learning-databases).

1.1 JUSTIFICATIVA

Há duas motivações principais para esta dissertação:

1. Sob o ponto de vista do problema: com o aumento do volume de dados

(14)

computacionais inteligentes para análise e extração automática de conhecimento a partir de dados.

2. Sob o ponto de vista da ferramenta de solução: desenvolver algoritmos

bioinspirados baseados no PSO (Particle Swarm Optimization) para tarefas de agrupamento e classificação de dados, ou seja, transformar um algoritmo originalmente desenvolvido para resolver problemas de otimização em uma nova ferramenta efetiva de mineração de dados.

O algoritmo PSO é um algoritmo de busca que faz uso de uma população de soluções candidatas que interagem entre si em busca da solução ótima de um dado problema usando apenas informações dos próprios candidatos a solução e de uma função de custo a ser otimizada. A metáfora biológica do PSO é a sociocognição, ou seja, o comportamento social humano (Kennedy, 2004).

1.2 HIPÓTESES

1. As tarefas de agrupamento e classificação podem ser entendidas de maneira análoga a problemas de otimização.

2. É possível modificar uma ferramenta de busca e otimização para que ela seja aplicada a tarefas de agrupamento e classificação de dados.

1.3 CONTRIBUIÇÕES DA DISSERTAÇÃO

Sob o ponto de vista de pesquisa e desenvolvimento de ferramentas bioinspiradas para agrupamento e classificação de dados, esta dissertação tem quatro objetivos principais:

1. Analisar a importância dos termos cognitivo, social e de auto-organização no algoritmo Particle Swarm Clustering (PSC) (Cohen e de Castro, 2006);

2. Analisar o desempenho do algoritmo PSC em diferentes bases de dados;

3. Modificar o PSC para ser aplicado a problemas de classificação, produzindo um novo algoritmo denominado PSClass;

4. Modificar o PSClass de forma que ele possa determinar automaticamente o número de representantes de classes para a base de dados;

(15)

1.4 PUBLICAÇÕES ASSOCIADAS

 PRIOR, A. K. F. ; de CASTRO, L. N. ; de FREITAS, L. R. ; SZABO, A. . The Proposal of two Bio-Ispired Algorithms for Text Clustering. Learning and Nonlinear Models, v. 6, p. 29-43, 2009.

 SZABO, A.; PRIOR, A. K. F., de CASTRO, L. N. . The Behavior of Particles in the Particle Swarm Clustering Algorithm, In Proceedings of the IEEE World Congress on Computational Intelligence (FUZZY 2010), Barcelona, Spain.

 SZABO, A.; PRIOR, A. K. F., de CASTRO, L. N. . The Proposal of a Velocity Memoryless Clustering Swarm, In Proceedings of the IEEE World Congress on Computational Intelligence (CEC 2010), Barcelona, Spain.

 SZABO, A. and de CASTRO, L. N. . PSClass: Uma Versão para Classificação do Algoritmo de Enxame de Partículas, In Proceedings of the XVIII Congresso Brasileiro de Automática 2010, Bonito, MS.

1.5 ORGANIZAÇÃO DA DISSERTAÇÃO

Essa dissertação está organizada da seguinte forma. No Capítulo 2 é introduzido o conceito de Mineração de Dados, as principais etapas do processo de Descoberta de Conhecimento em Bases de Dados, as tarefas de agrupamento e classificação de dados, alguns algoritmos clássicos de agrupamento e classificação, e medidas de avaliação de desempenho. O Capítulo 3 aborda conceitos sobre Enxame de Partículas, principais variações do algoritmo PSO original para tarefas de agrupamento e classificação, dentre elas o algoritmo PSC para agrupamento, e algoritmos baseados no PSO para classificação. No Capítulo 4 são propostos três algoritmos: o mPSC, o qual faz uso de uma metáfora particular e foi inspirado no algoritmo PSC; o algoritmo PSClass, uma modificação do PSC para classificação de dados, o qual também usa heurísticas do algoritmo LVQ1; e o algoritmo cPSClass, uma modificação do PSClass para encontrar automaticamente o número de protótipos que representem adequadamente as bases de dados. No Capitulo 5 é avaliado o desempenho dos algoritmos propostos na dissertação e feita uma análise detalhada do algoritmo PSC. A dissertação é concluída no Capítulo 6 com uma discussão geral sobre o trabalho e a proposta de temas para continuidade do trabalho.

(16)

2 MINERAÇÃO DE DADOS

A tecnologia computacional tem evoluído de forma extraordinária, assim como a velocidade de processamento e a capacidade de armazenamento de dados têm aumentado de maneira significativa. Ao mesmo tempo ampliam-se as capacidades de gerar, coletar e processar dados, propiciando a aplicação eficiente das tecnologias de informação emergentes. A indústria dos bancos de dados testemunhou o desenvolvimento das seguintes funcionalidades: coleta de dados; criação de bases de dados; e gerenciamento dos dados, incluindo a armazenagem, recuperação e o processamento da base de dados de transações. Esses avanços da tecnologia têm produzido um problema de superabundância de dados, pois a capacidade de coletar e armazenar dados tem superado a habilidade humana de analisar e extrair conhecimento dos mesmos (Fayyad et al., 1996a). Nesse contexto, é necessária a aplicação de técnicas e ferramentas que transformem, de maneira inteligente e automática, dados disponíveis em informações úteis que representem conhecimento.

O termo mineração de dados (do inglês data mining) surgiu do interesse em 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. (Fayyad et al., 1996; Bigus, 1996; Chen et al., 1996; Witten e Frank, 2005; Han e Kamber, 2000). É, portanto, uma tarefa multidisciplinar, centralizada na participação ativa do ser humano (Brachman e Anand, 1996; Uthurusamy, 1996). 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. Este termo, definido 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 (Fayyad, et al., 1996b). A aplicação de técnicas de mineração de dados é justificada quando a quantidade de dados envolvida no processo ocultar a relação entre eles.

O processo de descoberta de conhecimento em bancos de dados é útil em vários domínios da ciência (bioinformática, por exemplo), bem como em várias aplicações, tais

(17)

como Marketing e Finanças (Klosgen e Zytkow, 1996). Nesse contexto, os bancos de dados representam depósitos de conhecimento em potencial, que podem ser explorados para se descobrir relações, padrões e regras. 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 (Fayyad et al., 1996b). O processo de descoberta de conhecimento enfatiza a aplicação de técnicas de mineração de dados, as quais envolvem basicamente três etapas (Figura 2.1) (Bigus, 1996):

1. Preparação ou pré-processamanto de dados: limpeza (remoção de ruídos e dados inconsistentes), integração (múltiplas fontes de dados são combinadas), seleção ou redução (escolha dos dados relevantes à análise), transformação (transformação ou consolidação dos dados apropriados para a mineração); 2. Mineração de dados: aplicação de algoritmos para a extração de padrões a

partir dos dados;

3. Análise ou avaliação das informações: identificação e apresentação de informações ou conhecimentos verdadeiramente úteis.

Estas três etapas são correlacionadas e interdependentes, de tal forma que a abordagem ideal para extrair informações relevantes em bancos de dados consiste em considerar as inter-relações entre cada uma das etapas e sua influência no resultado final.

Figura 2.1: Processo de descoberta de conhecimento em bases de dados

Pré-processamento Mineração Avaliação e Apresentação Fontes de Dados

(18)

As funcionalidades da mineração de dados são usadas para especificar os tipos de informações a serem obtidas nas tarefas de mineração. Em geral essas tarefas podem ser classificadas em duas categorias (Han e Kamber, 2000; Witten e Frank, 2005):

1. Descritivas: caracterizam as propriedades gerais dos dados; e 2. Preditivas: fazem inferências com os dados objetivando predições.

Em muitos casos o usuário não tem ideia do tipo de conhecimento contido nos dados, tornando importante a capacidade das ferramentas de mineração em encontrar diferentes tipos de conhecimento. As principais tarefas de mineração de dados investigadas nessa dissertação são o agrupamento e a classificação de dados.

2.1 AGRUPAMENTO DE DADOS

Clustering é o nome dado ao processo de agrupamento de um conjunto de objetos em classes ou clusters (grupos) de objetos similares. Tem suas raízes em diversas áreas, como mineração de dados, estatística, biologia e aprendizagem de máquina (Han e Kamber, 2000).

Diferentemente dos processos de classificação, a análise de clusters considera dados de entrada não-rotulados, ou seja, a classe a qual cada padrão de entrada (objeto) pertence não é conhecida a priori. O processo de agrupamento ou clusterização é normalmente usado para identificar tais classes (Everitt et al., 2001). Este processo refere-se ao particionamento de um conjunto de objetos em grupos (ou clusters) com base em alguma similaridade entre eles, de modo que objetos de um mesmo grupo sejam similares entre si e dissimilares com relação aos objetos dos demais grupos.

Os dados são agrupados com o objetivo de maximizar a distância inter-classe e minimizar a distância intra-classe, ou, dito de outra forma, maximizar a similaridade intra-classe e minimizar a similaridade inter-classe. Portanto, um cluster é uma coleção de objetos similares uns aos outros e dissimilares aos objetos de outros clusters.

A dissimilaridade entre os objetos é baseada no valor de seus atributos e frequentemente é obtida com base em alguma medida de distância (Han e Kamber, 2000). Neste trabalho foi adotada a distância Euclidiana como medida de dissimilaridade entre os objetos das bases de dados. A distância Euclidiana é a medida de distância mais popular e é definida da seguinte maneira:

(19)

(2.1)

onde xi e xj são dois objetos de dimensão p.

Cada cluster formado pode ser visto como uma classe de objetos. Como os rótulos das classes dos dados de treinamento não são conhecidos, este processo é denominado de treinamento não-supervisionado (ou aprendizagem não-supervisionada) (Mitchell et al., 1990). A atividade de agrupamento de dados pode ser dividida em cinco tarefas (Jain et al., 1999):

1. Representação: as características dos dados a serem avaliados devem ser representadas por estruturas manipuladas pelo algoritmo de agrupamento. No algoritmo PSC (Cohen e de Castro, 2006), por exemplo, os padrões são representados por vetores, sendo que cada posição do vetor possui uma característica ou atributo do dado a ser avaliado.

2. Definição de uma medida de proximidade ou distância: usualmente é usada uma função que avalia a semelhança entre dois objetos. A distância Euclidiana pode ser usada como medida de proximidade entre dois objetos. Ela é usada, por exemplo, nos algoritmos PSC e mPSC (Szabo et al., 2010b) para medir a dissimilaridade entre uma partícula e um objeto.

3. Agrupamento: refere-se ao processo de busca de classes de objetos em uma base de dados.

4. Abstração do dado (se necessário): esta tarefa refere-se ao processo de descrição dos grupos encontrados.

5. Avaliação da saída (se necessário): métodos estatísticos podem ser usados para avaliar a qualidade dos grupos encontrados.

Os principais métodos de agrupamento podem ser divididos em hierárquicos ou particionais (Jain et al., 1999; Han e Kamber, 2000).

2.1.1 Métodos Hierárquicos

Estes métodos são caracterizados por sucessivas divisões ou fusões hierárquicas dos dados, geralmente apresentando como resultado um dendrograma, o qual representa

(20)

os possíveis agrupamentos de dados. Segundo (Han e Kamber, 2000), o método hierárquico agrupa os objetos dentro de uma árvore de grupos. Assim, ele pode ser:

1. Aglomerativo: inicialmente cada objeto pertence a um grupo e os objetos se unem sucessivamente em grupos até que um critério de parada seja atingido. 2. Divisivo: no início do processo de agrupamento, todos os objetos fazem parte

do mesmo grupo. Este grupo é então particionado sucessivamente em grupos menores até que um critério de parada seja atingido.

A Figura 2.2 ilustra a operação de um método de agrupamento hierárquico.

Figura 2.2: Agrupamento hierárquico divisivo e aglomerativo sobre objetos {a, b, c, d}. (Adaptado de: J.

Han & M. Kamber, Data Mining: Concepts and Techniques, 2000, Morgan Kaufman)

2.1.2 Métodos Particionais

Nos métodos particionais um conjunto de objetos é particionado em k grupos (partições) até atingir um critério de parada. Os algoritmos particionais podem ser classificados em:

1. Monotético ou Politético

Referem-se à quantidade de atributos usados no processo de agrupamento. A maior parte dos algoritmos particionais é politética, ou seja, todos os atributos dos objetos são usados para avaliar a dissimilaridade entre eles e realizar o agrupamento.

Aglomerativo

passo 0 passo 1 passo 2 passo 3 passo 4

a b c d ab cd abcd

passo 4 passo 3 passo 2 passo 1 passo 0

(21)

2. Hard ou Nebuloso

Um algoritmo particional é classificado como hard quando cada um dos objetos pertence a um único grupo ou fuzzy se houver um grau de pertinência aos grupos para cada um dos objetos.

3. Determinístico ou Estocástico

Algoritmos determinísticos são aqueles que apresentam o mesmo resultado sempre que executados, ou seja, apresentam sempre o mesmo agrupamento e a mesma quantidade de iterações toda vez que são executados. Os algoritmos estocásticos, por outro lado, podem apresentar diferentes soluções para o mesmo problema, dependendo de parâmetros como inicialização, ordem de apresentação dos objetos e outros.

2.1.3 O Algoritmo k-médias

O k-médias, do inglês k-means, (Lloyd, 1982) é um dos algoritmos de agrupamento particional mais conhecido e utilizado na literatura (Arthur e Vassilvitskii 2006; Likas et al., 2002; Han e Kamber, 2000; Lai et al., 2009). Ele recebe o parâmetro k como entrada, tal que o algoritmo encontre k grupos em uma dada base de dados. Como usaremos o k-médias para comparação de desempenho, esta seção faz uma descrição sucinta do algoritmo.

O algoritmo funciona da seguinte maneira (Han e Kamber, 2000; Lai et al., 2009):

1. k objetos (registros) da base de dados são selecionados aleatoriamente, cada qual representando o centróide ou protótipo de um grupo inicialmente;

2. Cada objeto da base de dados é avaliado e associado ao grupo mais similar, baseado em alguma medida de distância entre o objeto e a distância média (centróide) daquele grupo;

3. Um novo centróide para cada grupo é computado.

O processo pára quando um critério de convergência é atingido. Normalmente é usado o erro quadrático, definido como:

(22)

onde E é a soma do erro quadrático para todos os objetos na base de dados; k é o número de grupos informado pelo usuário; x é o ponto no espaço representando um dado objeto; e mr é o centróide do grupo Sr.

Para ilustrar a operação do k-médias, considere a Figura 2.3 que mostra o resultado da aplicação do algoritmo k-médias a uma base de dados bidimensional simples. O processo de agrupamento é iniciado na Figura 2.3a. A Figura 2.3b mostra a atualização da posição dos protótipos. O agrupamento é concluído na Figura 2.3c, onde cada protótipo encontra-se no centróide de seu respectivo grupo.

Figura 2.3: Agrupamento de um conjunto de objetos pelo método k-means. (O centróide de cada grupo é

marcado por um “+”). (Fonte: J. Han & M. Kamber, Data Mining: Concepts and Techniques, 2000, Morgan Kaufman)

O algoritmo k-médias, classificado como politético, hard e estocástico, amplamente referenciado na literatura, terá seu desempenho comparado com o dos algoritmos propostos nesta dissertação.

2.2 CLASSIFICAÇÃO DE DADOS

Predição é uma terminologia usada para se referir à construção e uso de um modelo para avaliar a classe de um objeto não rotulado ou para estimar o valor de um atributo de um dado objeto. O primeiro caso é denominado tarefa de classificação de dados e o segundo caso é denominado regressão (em estatística) ou simplesmente estimação (Kotz e Johnson, 1992). Sob essa perspectiva, classificação e regressão constituem os dois principais tipos de tarefas de predição, em que a classificação é usada para predizer valores nominais ou discretos, enquanto a regressão é usada para predizer valores contínuos ou ordinais. Ferramentas de classificação podem ser

(23)

aplicadas à identificação de spams, classificação de objetos, atribuição de crédito, detecção de fraudes, dentre muitas outras áreas.

O processo de predição, classificação ou estimação, possui duas etapas essenciais:

1. Treinamento ou Aprendizagem: na primeira etapa o preditor (classificador ou estimador) é gerado, tal que ele se torne capaz de descrever e distinguir um conjunto pré-determinado de classes. O classificador é gerado usando um conjunto de dados rotulados de treinamento, ou seja, para cada vetor de entradas a saída desejada, que pode ser a classe a qual o objeto pertence, é conhecida. Isso implica na disponibilidade de pares {(xi,ci)}i = 1..., N, em que xi e cii, são os vetores de entrada e as respectivas saídas desejadas.

O classificador gerado pode ser representado de várias formas, por exemplo, um conjunto de regras capazes de predizer a classe para uma amostra de objetos não rotulados.

Como os rótulos das classes dos dados de treinamento são conhecidos, este processo é denominado de treinamento supervisionado (ou aprendizagem supervisionada) (Mitchell et al., 1990).

2. Teste ou Classificação: uma vez que o preditor (classificador) foi gerado, é preciso avaliar seu desempenho quando aplicado a dados não usados no processo de treinamento, conhecidos como dados de teste ou, em alguns casos, dados de validação. O desempenho do preditor quando aplicado a dados de teste oferece uma estimativa de sua capacidade de generalização. A predição para objetos não rotulados é normalmente feita através de “modelos” gerados na etapa de treinamento ou algum mecanismo capaz de comparar objetos classificados a priori com objetos novos a serem classificados. Portanto, há algoritmos que geram um modelo de classificação (classificador), como, por exemplo, Árvores de Decisão (Han & Kamber, 2000; Westphal & Blaxton, 1998), Redes Neurais Artificiais (Silva et al., 2008, Han & Kamber, 2000) e algoritmos LVQ (Learning Vector Quantization) (Kohonen, 1986; Kohonen, 1990; Lloyd et al., 2007; Umer & Khiyal, 2007).

(24)

2.2.1 O Algoritmo LVQ

Os Algoritmos de Quantização Vetorial (LVQ – do inglês Learning Vector Quantization) compõem uma classe de algoritmos de aprendizagem supervisionada para classificação de dados (Seo et al., 2003) proposta por Kohonen (1986) como uma melhoria em quantização vetorial rotulada. Essa classe de algoritmos será particularmente importante no contexto dessa dissertação, pois é a partir dela que será desenvolvido o algoritmo de enxame de partículas para classificação de dados a ser proposto na dissertação.

O objetivo do método LVQ de aprendizagem é determinar um conjunto de protótipos (denominados codebook vectors) que melhor represente cada classe da base de dados (Shui-Sheng et al., 2005). Como o algoritmo não conhece a distribuição das classes a priori, o limite ótimo entre as classes da base de dados é aproximado gerando um conjunto de pontos denominados codebook vectors (Lloyd et al., 2007).

Um algoritmo básico é usado por todos os métodos baseados no LVQ (Umer e Khiyal, 2007):

1. O algoritmo recebe como entrada um objeto yi da base de dados com sua

classe correta ck;

2. Um número de protótipos é selecionado para a classe ck;

3. O protótipo vencedor é determinado por alguma medida de dissimilaridade entre os protótipos das classes e o objeto de entrada.

4. Os protótipos são atualizados de forma a minimizar o erro de classificação. O processo de atualização dos protótipos é iterativo e a seleção do protótipo vencedor é determinada por um método de vizinho mais próximo (Nearest Neighbor). Este método determina o melhor protótipo para um objeto através de alguma medida de dissimilaridade entre o protótipo e o objeto, como, por exemplo, a distância Euclidiana.

Dado um objeto yi da base de dados, o protótipo xj de maior afinidade

(vencedor) com esse objeto é atualizado segundo as equações abaixo (Kohonen, 1990):

(25)

se o protótipo xj e o objeto yi pertencem à mesma classe;

(2.4)

se o protótipo xj e o objeto yi não pertencem à mesma classe;

Em ambos os casos α(t) é a taxa de aprendizagem do algoritmo, ou seja, o tamanho do passo dado na direção [yi(t) xj(t)] a cada iteração t.

Assim, o algoritmo tenta mover os protótipos que estão distantes das fronteiras de classe (Kohonen, 1990), promovendo menor erro de classificação incorreta.

Como um só protótipo é atualizado por vez (o protótipo vencedor), o algoritmo LVQ apresentado acima é conhecido como LVQ1 e é considerado o mais simples dentre os algoritmos LVQ (Lloyd et al., 2007). Além dessa característica particular do LVQ1, os algoritmos LVQ são de fácil implementação (Witoelar et al., 2007).

2.2.2 O Algoritmo K-NN

Os algoritmos de K-Vizinhos Mais Próximos (K-NN, do inglês K-Nearest Neighbors) (Cover e Hart, 1967; Dasarathy, 1991; Cervantes et al., 2009) e Naïve Bayes (Han e Kamber, 2000; Jamain e Hand, 2005) são exemplos de algoritmos que não geram um modelo preditor. Dessa maneira, o algoritmo deve ser executado cada vez que um novo objeto precisa ser avaliado.

Especificamente no algoritmo K-NN o rótulo dos objetos desconhecidos é predito pela classe majoritária dos vizinhos mais próximos do objeto, sendo que os k vizinhos mais próximos para cada objeto são determinados por alguma medida de dissimilaridade entre os vizinhos e o objeto, como a distância Euclidiana discutida anteriormente.

2.3 AVALIAÇÃO DE DESEMPENHO

A análise de desempenho de algoritmos fornece um grau de confiabilidade dos resultados produzidos pelos mesmos. Isto implica na decisão de escolher o algoritmo

(26)

mais eficiente e eficaz para uma determinada aplicação. Esta seção apresenta e descreve as medidas de avaliação de desempenho para os algoritmos abordados nesta dissertação. Em (Amigó et al. 2009; e Zhao e Karypis, 2004) as principais medidas de avaliação de desempenho para tarefas de agrupamento e classificação de dados são definidas, conforme será apresentado na sequência.

2.3.1 Agrupamento: Entropia

A entropia mede a homogeneidade de um grupo. Esta informação mostra como os objetos da base de dados estão distribuídos nos grupos encontrados.

(2.5)

onde é Sr o grupo avaliado; k é o número total de classes da base de dados; niré o

número de objetos da classe i e nr o número de objetos no grupoSr. Baixo valor de

entropia indica melhor qualidade do grupo. A entropia global é a soma da entropia de cada grupo, ponderada pelo tamanho de cada grupo:

(2.6)

onde g indica que se trata da entropia global, r representa um grupo particular, k é o total de grupos na base de dados; nr é o número de objetos no grupo r e n é o número de

objetos na base de dados.

2.3.2 Agrupamento: Pureza

A pureza indica quão puro é o grupo avaliado, isto é, a razão da classe dominante de um grupo em relação ao número total de objetos neste grupo.

(2.7)

(27)

Onde nir é o número de objetos da classe i no grupo r, e nr o número de objetos no

grupo Sr. Quanto maior a pureza melhor é a qualidade do grupo. A pureza global segue

a mesma ideia do cálculo da entropia global:

(2.8)

onde g indica que se trata da entropia global; r representa a um grupo particular; k é o número total de grupos na base de dados; nr é o número de objetos no grupo Sr e n é o

número de objetos da base de dados.

2.3.3 Classificação: Acurácia Preditiva

A acurácia preditiva, também conhecida como o percentual de classificação correta, Pcc, é o número de objetos classificados corretamente, Ncc, dividido pelo

número total de objetos, N, vezes 100%:

(2.9)

2.3.4 Classificação: Método k-pastas

O método k-pastas é normalmente usado para estimar o desempenho de generalização de algoritmos de classificação. Este método divide a base de dados em k-conjuntos, ou k-pastas, tal que os k-conjuntos sejam disjuntos. Cada uma das k-pastas contém o mesmo número de objetos e o mesmo número de classes.

Normalmente são usadas 10 pastas para avaliar o classificador, sendo uma das pastas separada para a etapa de teste do algoritmo e as demais para o treinamento. O classificador é avaliado 10 vezes, sempre separando uma pasta que ainda não foi usada para o teste e as demais para o treinamento.

(28)

Segundo (Han e Kamber, 2005), os algoritmos de classificação podem ser avaliados e comparados através dos critérios de escalabilidade, robustez, velocidade, acurácia preditiva e interpretabilidade.

(29)

3 INTELIGÊNCIA DE ENXAME

No início dos anos 90, o fascínio exercido pelos insetos nos biólogos começou a atrair a atenção de pesquisadores de outras áreas, como computação e engenharia. O estudo dos insetos pode oferecer novos caminhos para o desenvolvimento de projetos de sistemas inteligentes nos quais características como autonomia, comportamento emergente e processamento distribuído, substituíam as necessidades atuais como controle, pré-programação e centralização. O termo Inteligência de Enxame (do inglês swarm intelligence) foi primeiramente usado no trabalho de Beni e Wang (1989), o qual descrevia o comportamento de um grupo de robôs que interagiam num determinado ambiente respeitando um conjunto de regras locais inspiradas no comportamento de formigas. Apesar da variedade de definições existentes para esse termo na literatura, particularmente a definição dada por White e Pagurek (1998) é interessante:

“Inteligência de Enxame é a propriedade de sistemas de agentes não inteligentes com capacidades individuais limitadas exibirem um comportamento coletivo inteligente”.

Outra definição particularmente relevante é: “Inteligência de Enxame inclui qualquer esforço para desenvolver algoritmos ou dispositivos paralelamente distribuídos de solução de problemas inspirados pelo comportamento coletivo de insetos sociais e outras sociedades de animais”. (Bonabeau et al., 1999; p7).

Segundo Kennedy et al. (2001), entretanto, pode-se nomear como enxame qualquer comportamento coletivo, como uma revoada de pássaros e um sistema imunológico. Existem basicamente duas frentes de pesquisa na Inteligência de Enxame: os trabalhos baseados no comportamento de insetos sociais e os trabalhos baseados na habilidade do homem em processar conhecimento (de Castro, 2007). Em ambas as linhas de pesquisa têm-se um grupo de agentes que interagem entre si e com o ambiente. Na primeira frente há trabalhos baseados no comportamento social de formigas, como a habilidade de encontrar caminhos para fontes de alimentos e a habilidade de organizar o ninho. Todos esses comportamentos resultam em algoritmos que resolvem diversos problemas, em particular problemas de otimização (combinatória) (Dorigo e Stutzle, 2004) e problemas de agrupamento de dados (Vizine et al., 2005). Na segunda frente há

(30)

os trabalhos inspirados em enxame de partículas e no comportamento social humano, com ênfase nas aplicações a problemas contínuos (Kennedy, 2004).

O foco desta dissertação está ligado com a segunda frente de pesquisa na área, ou seja, aquela baseada no comportamento humano em processar conhecimento. Em particular, o objetivo é adaptar um algoritmo de otimização por enxame de partículas para aplicação nas seguintes tarefas de mineração de dados: agrupamento e classificação.

3.1 ENXAME DE PARTÍCULAS

O estudo empírico de um indivíduo em seu meio social é papel da psicologia social (Kennedy, 2004). Este ramo da psicologia investiga o relacionamento interpessoal, a influência da sociedade, a percepção, a cognição e outras facetas da interação entre indivíduos e comunidade. Toda esta capacidade de processar informação do ser humano faz com que ele se adapte às mais variadas situações e ambientes sociais. O processo de persuasão mútua consiste, por exemplo, em duas pessoas discutindo sobre suas ideias e uma tentando convencer a outra de que as suas são “melhores”. Se este processo for estendido para um grande número de indivíduos através do tempo, podemos observar um processo de auto-organização de normas e culturas (Kennedy, 2004). Este processo de persuasão mútua foi implementado computacionalmente com o objetivo de resolver problemas de otimização de difícil solução. Este algoritmo, chamado Otimização por Enxame de Partículas (do inglês Particle Swarm Optimization, PSO), ou simplesmente Particle Swarm (PS), foi proposto em (Kennedy e Eberhart, 1995), tendo sido inicialmente descrito como um comportamento social entre indivíduos, como uma revoada de pássaros ou um cardume de peixes. O algoritmo PSO foi proposto com o objetivo de produzir inteligência artificial fazendo analogias à interação social. Ele tem suas raízes nas áreas de Vida Artificial e Psicologia Social (Kennedy et al., 2001).

Segundo (Kennedy e Eberhart, 1995), as primeiras simulações do PSO foram influenciadas pelos pesquisadores (Heppner e Grenander, 1990) e (Reynolds, 87). Heppner e Grenander (1990), intrigados com a coreografia de bandos de aves, e Reynolds (1987), interessado em descobrir regras responsáveis pelo sincronismo

(31)

existente em uma grande revoada de pássaros, simularam computacionalmente o movimento de indivíduos em um bando de pássaros (Kennedy e Eberhart, 1995).

O trabalho de Wilson (1975), um biólogo social, foi fundamental para projetar o PSO. Em seu artigo, Wilson descreve o comportamento social de cardumes de peixes. Ele notou que membros individuais do cardume aprendem com os peixes mais experientes a buscar alimento. As principais observações no trabalho de Wilson que levaram ao projeto do PSO foram:

1. O peixe guarda em sua memória o local onde a comida foi encontrada. Esta característica está relaciona à cognição, à experiência individual. Esta memória é representada por pi na Equação (3.1)a ser apresentada adiante.

2. Peixes menos experientes aprendem a buscar comida com aqueles mais experientes. Este fato comprova a influência do comportamento social em cada indivíduo. A experiência do cardume é representada pelo vetor gi, na Equação (3.1)a ser apresentada adiante.

Com esta informação, agentes (partículas) podem ser modelados em um contexto social levando em conta a interação entre eles.

Kennedy et al. (2001) usam três princípios para descrever o processo adaptativo do algoritmo:

1. Avaliar: Capacidade do indivíduo de se auto-avaliar, ou seja, avaliar quão boa é sua solução em relação ao problema que está sendo tratado;

2. Comparar: o indivíduo possui capacidade de comparar sua solução com a solução dos demais indivíduos;

3. Imitar: o indivíduo possui capacidade de imitar o comportamento de outros. O princípio básico do algoritmo PSO é a movimentação de um conjunto de partículas (indivíduos) em um espaço vetorial, geralmente Euclidiano. O número de partículas depende da dificuldade do problema a ser resolvido (Poli et al., 2007) e normalmente é informado pelo usuário. Porém, é muito comum encontrar uma população na faixa entre 20 e 50 partículas (Poli et al., 2007). As partículas interagem entre si em busca das melhores soluções a um dado problema. Dessa maneira, pode-se dizer que as partículas competem pela melhor posição (solução) no espaço de busca,

(32)

mas também compartilham (colaboram) entre si a melhor posição neste espaço (gi). Cada partícula tem uma velocidade própria atualizada segundo a equação abaixo:

(3.1)

onde é o sinal de multiplicação elemento a elemento entre vetores, vi é o vetor de

velocidade da partícula na iteração i, o qual é mantido em um intervalo [vmax, +vmax],

segundo as regras:

Se vid > vmax então vid = vmax Se vid < vmax então

vid = vmax

sendo d a dimensão da partícula i. O valor vmax, presente no algoritmo PSO original, tem

sido usado para evitar a “explosão” das partículas e assegurar a convergência das mesmas (Clerc e Kennedy, 2002). O vetor pi (vizinhança local) é definido como termo

cognitivo, pois é o termo que leva em consideração a própria experiência da partícula. Ele representa a melhor posição encontrada pela partícula i durante todo o processo adaptativo. O vetor gi é o termo social, pois considera a experiência de todas as partículas. Ele representa a melhor posição encontrada dentre todas as partículas (vizinhança global).

A variável  da Equação (3.1), proposta em (Shi e Eberhart, 1998), é denominada peso de inércia e faz com que as partículas parem de se mover com o passar das iterações, contribuindo para a convergência do algoritmo. Segundo (Poli et al., 2007), muitos pesquisadores inicializam ω com um valor alto (e.g., 0.9) e o reduz gradativamente a um valor mais baixo (e.g., 0.4).

Os parâmetros 1 e 2, denominados “coeficientes de aceleração” (Poli et al.,

2007) são vetores aleatórios positivos compostos por números extraídos de distribuições uniformes com limites superiores pré-definidos. Estes parâmetros auxiliam na capacidade da partícula em explorar o espaço de busca (Kennedy, 1998) e controlam a

(33)

velocidade das partículas, eliminando a necessidade do parâmetro vmax (Poli et al.,

2007).

Segundo (Poli et al., 2007), os coeficientes de aceleração (1 e 2) são

algebricamente equivalentes ao peso de inércia (ω) no algoritmo PSO. A posição das partículas é atualizada de acordo com a Equação (3.2) abaixo:

(3.2)

Segundo (Kennedy, 1997), esta equação representa uma mudança contínua no estado mental dos indivíduos do enxame.

Experimentos realizados por (Eberhart e Shi, 2000) mostram que não apenas vi

deve ser limitado, mas xi também. Então a posição da partícula também pode ser

limitada de acordo com um domínio escolhido para o problema. O tipo de vizinhança entre os indivíduos deve ser definido, ou seja, como os indivíduos influenciam uns aos outros (topologia populacional). A Figura 3.1a ilustra a vizinhança global, na qual todos influenciam todos, e a Figura 3.1b mostra uma vizinhança em que cada indivíduo influencia apenas seus vizinhos mais próximos.

Figura 3.1: Vizinhança do PSO. (a) Vizinhança global. (b) Vizinhança local. (Fonte: L. N. de Castro,

Fundamentals of Natural Computing: Basic Concepts, Algorithms, and Applications, 2006, CRC Press)

Na sequência é apresentado o pseudocódigo do algoritmo PSO para minimização de função.

(34)

1. procedure [X] = PSO(max_it, vmax, n_part, )

2. initialize X //usually every particle xi is initialized at random

3. initialize V //at random, vi  [-vmax, vmax] 4. t = 1 5. while t < max_it do 6. for i = 1 to n_part do 7. if f(xi) < f(pi) then //f(pi) is lBest 8. pi = xi 9. end if 10. if f(xi) < f(pg) then //f(pg) is gBest 11. pg = xi 12. end if 13. update Equação (3.1) 14. vi(t+1) [-vmax, vmax] 15. update Equação (3.2) 16. end for 17. update  18. t = t+1 19. end while 20. end procedure

Pseudocódigo 3.1: Algoritmo PSO

3.2 VARIANTES DO PSO

Desde sua proposição (Kennedy e Eberhart, 1995), o algoritmo PSO sofreu diversas modificações para atender aos mais variados tipos de problemas, como otimização (Carlisle e Dozier, 2000; Eberhart e Kennedy, 1995; Hu e Eberhart, 2002; Kennedy e Eberhart, 1997), análise de dados (Cohen e de Castro, 2006; Omran at al., 2005; Potok et al., 2005; Chen e Ye, 2004; van der Merwe e Engelbrecht, 2003), e jogos eletrônicos (Bing e Wang, 2008), dentre outros.

O PSO tem apresentado desempenho significativo quando comparado com outras metodologias de computação, como algoritmos genéticos (Eberhart e Kennedy, 1995; Angelini, 1998; Djeffal et al., 2009) e redes neurais artificiais (Gudise e Venayagamoorthy, 2003). Mais variantes do PSO podem ser vistas em (Kennedy et al., 2001; Engelbrecht 2005; Clerc 2006; Poli et al., 2007). Esta seção introduz as principais variações do PSO para tarefas de agrupamento e classificação de dados, enfatizando aqueles trabalhos que serão usados como base comparativa ou de desenvolvimento das propostas da dissertação.

(35)

3.2.1 Agrupamento por Enxame de Partículas

Nesta seção é abordado o algoritmo PSC – Particle Swarm Clustering (Cohen e de Castro, 2006), base para o desenvolvimento de uma nova versão para agrupamento de dados e uma versão para classificação, contribuições da dissertação.

Para projetar o PSC, o PSO foi modificado de modo que as partículas candidatas se tornem protótipos dos clusters. Portanto, o PSC segue o mesmo princípio do PSO: movimentação de partículas em um espaço vetorial multidimensional. A dimensão das partículas é dada pelo número de atributos dos objetos da base de dados a ser analisada, e a quantidade de partículas deve ser no mínimo igual à quantidade de clusters na base.

No algoritmo PSO cada partícula é uma solução potencial a um problema de otimização, enquanto no PSC todas as partículas configuram uma única solução no contexto de agrupamento de dados (Cohen e de Castro, 2006). O PSC não usa uma função de custo explícita para avaliar a qualidade das soluções encontradas, como necessário no caso do PSO. As partículas são definidas em um espaço Euclidiano e a distância Euclidiana é usada como uma medida de dissimilaridade entre um objeto e uma partícula. Outra diferença entre os dois algoritmos é a inclusão do termo auto-organizado no algoritmo PSC que, juntamente com a ausência de uma função de custo explícita, permite caracterizá-lo como um algoritmo não-supervisionado.

No PSC as partículas são movidas e rotuladas de forma que elas se tornem protótipos dos clusters (ou grupos). Para que isso ocorra, os objetos são apresentados às partículas e, para cada objeto, a partícula mais próxima se movimenta na direção dele. A partícula xj é influenciada pelo melhor resultado dela (pji) em relação ao objeto, pela

partícula que esteve mais próxima do objeto (gi) e também pelo próprio objeto (yi). Assim, a ideia de sociocognição do PSO é absorvida e implementada no contexto de agrupamento de dados. No Pseudocódigo 3.2 segue a versão original do PSC proposta por (Cohen e de Castro, 2006).

1. procedure [X] = PSC(data_set,max_it,vmax,n_part,ω) 2. Y = data_set

3. initialize X //at random

4. initialize V //at random, vj [-vmax,vmax] 5. initialize dist

6. t = 1

7. while t < max_it do,

8. for i = 1 to N do, //for each data 9. for j = 1 to n_part do, 10. dist(j) = distance(yi,x

j) 11. end for

(36)

12. I = min(dist) 13. if distance(xI, yi) < distance(pIi, yi), 14. then pIi = xI, 15. end if 16. if distance(xI, yi) < distance(gi, yi), 17. then gi = x I, 18. end if 19. vI(t+1) = ω vI(t) + φ1 (pIi- xI(t)) + φ2 (gi - xI(t)) + φ3 (yi - xI(t)) 20. vI [-vmax,vmax] 21. xI(t+1) = xI(t) + vI(t+1) 22. end for

23. for i = 1 to n_part do, 24. if(xi != win) 25. vi(t+1) = ω vi(t) + φ4 (xmost_win - xi(t)) 26. vi [-vmax,vmax] 27. xi(t+1) = xi(t) + vi(t+1) 28. end if 29. end for 30. ω = 0.95*ω 31. t = t + 1 32. end while 33. end procedure Pseudocódigo 3.2: Algoritmo PSC

As partículas que não se moveram são atualizadas pela partícula que mais vezes foi eleita vencedora, como pode ser observado nos passos 25 e 27 do Pseudocódigo 3.2. A atualização da velocidade das partículas é similar à proposta original do algoritmo PSO, porém é adicionado mais um termo (auto-organizado) correspondente à aprendizagem não-supervisionada, como segue:

(3.3)

Adicionando-se um vetor 3 correspondente aos pesos estocásticos que

multiplicarão a diferença entre a partícula e o objeto yi faz com que a partícula se mova na direção do objeto de entrada.

3.2.2 Classificação por Enxame de Partículas

Nos algoritmos genéticos (Freitas, 2002), em sua abordagem convencional, cada indivíduo de uma população representa uma solução para determinado problema. No contexto de mineração de dados, para a tarefa de predição, a população de soluções pode ser codificada seguindo, basicamente, duas abordagens (Freitas, 2002): Pittsburgh

(37)

e Michigan. Em (Cervantes et al., 2005), essas duas abordagens são aplicadas ao algoritmo PSO binário para problemas de classificação: Pittsburg PSO (PPSO) e Michigan PSO (MPSO).

Na abordagem Pittsburgh, uma aplicação do PSO original, cada partícula representa uma ou mais regras de predição. Uma só partícula do enxame pode ser usada para resolver um problema de classificação. Assim, cada partícula é constituída por um conjunto de protótipos (Cervantes et al., 2009). A função fitness dessa implementação é o percentual de classificação correta, Pcc, apresentado anteriormente. Cada objeto é

representado por um arranjo ou cadeia binária, na qual cada atributo é representado por um conjunto de bits mais um bit para representar a classe correta. As regras são representadas por sentenças constituídas por valores de dois ou mais atributos e possuem o mesmo tamanho dos objetos. A dimensão das partículas depende do tamanho da regra e o tamanho da população depende do número de regras utilizadas. O exemplo a seguir mostra a representação empregada no PSO Pittsburgh (Cervantes et al., 2005):

Dados os atributos X e Y, com seus valores { }, respectivamente; associados às classes {0,1}. A cadeia binária a seguir representa a

seguinte regra: se então classe 1.

Regra: classe 1.

Para a abordagem denominada Michigan, cada partícula representa uma única regra de predição, um único protótipo. Neste caso, cada solução é avaliada individualmente, fora do contexto das outras soluções (Cervantes et al., 2007; Cervantes et al., 2009). Nesta abordagem, todo o enxame ou parte dele é usado para classificar os objetos. Dessa maneira, o algoritmo deve evitar a convergência das partículas na direção de uma só partícula (Cervantes et al., 2007). Para tanto, o termo social foi eliminado da equação que atualiza a velocidade das partículas no PSO original. Há um termo repulsivo que tem por objetivo fazer com que a partícula vencedora seja repelida pela melhor partícula na sua vizinhança, evitando a convergência das partículas na direção de uma só partícula. A cada iteração do algoritmo, cada classe define duas vizinhanças diferentes das partículas. Uma vizinhança é formada por partículas competitivas e a outra por partículas não-competitivas, sendo que:

(38)

1. Partículas competitivas: são aquelas que pertencem à mesma classe da partícula vencedora. A partícula mais competitiva torna-se o centro de repulsão.

2. Partículas não-competitivas: são aquelas que possuem classe diferente da partícula vencedora. A partícula menos competitiva torna-se o centro de atração.

Em (Cervantes et al., 2009) foi apresentado o algoritmo Michigan Adaptativo (AMPSO), o qual aumenta o número de partículas no enxame dinamicamente com base no problema em estudo. Nas abordagens Pittsburgh PSO e Michigan PSO o número de partículas é fixo. O método AMPSO é um refinamento do método Michigan PSO (Cervantes et al., 2009) no qual todo o enxame é usado para a solução do problema e a classe é avaliada com base no protótipo mais próximo. Quando uma partícula detecta classes diferentes daquela que esta representa, o número de partículas cresce. Novas partículas são criadas na mesma posição da partícula vencedora (Cervantes et al., 2009). A probabilidade de reprodução para cada partícula é proporcional ao valor de fitness: quanto maior esse fitness, maior a probabilidade de crescimento para esta partícula.

Na Seção 5.3, o desempenho dos algoritmos PPSO, MPSO e AMPSO será utilizado para comparação com o algoritmo PSClass, a ser proposto adiante.

(39)

4 AGRUPAMENTO E CLASSIFICAÇÃO COM O PSO

Neste capítulo são apresentadas as principais contribuições dessa dissertação: o mPSC: algoritmo PSC modificado;

o PSClass: algoritmo PSC adaptado para resolver problemas de classificação de dados;

o cPSClass: algoritmo PSClass construtivo, ou seja, com determinação dinâmica do número de partículas do enxame.

4.1 mPSC: AGRUPAMENTO USANDO ENXAME DE PARTÍCULAS

Como discutido na Seção 3.1, o algoritmo PSO original faz analogia à interação social, como uma revoada de pássaros ou cardume de peixes. A mesma metáfora é usada em sua versão para agrupamento de dados – PSC (Cohen e de Castro, 2006). Porém, em (Szabo et al., 2010b) foi proposta uma modificação no algoritmo PSC original, resultando no algoritmo mPSC (modified Particle Swarm Clustering), considerando uma metáfora particular: a adaptação social do conhecimento humano introduzida no PSO por J. Kennedy (2004). Esta metáfora vai além de ajustar movimentos físicos, tais como em um cardume de peixes ou revoada de pássaros. Pessoas não ajustam apenas movimentos físicos, mas sua cognição, experiência (Kennedy e Eberhart, 1995).

A proposta é inspirada pelo processo de adaptação social do conhecimento humano através da habilidade cognitiva e da influência do ambiente social no qual um grupo de pessoas está inserido (Kennedy, 2004). A metáfora sugere um grupo de pessoas conversando sobre certo assunto e cada pessoa tentando convencer a outra de que sua ideia é a melhor. Depois de um período de tempo, há uma opinião comum entre os indivíduos, culminando na adaptação social do conhecimento.

Quando a metáfora é associada ao comportamento de pássaros, por exemplo, a velocidade do indivíduo no tempo (t+1) é dada por sua velocidade no tempo t mais sua experiência e a influência do ambiente social. O mesmo raciocínio aplica-se à posição de um agente no espaço.

(40)

Se a analogia é a habilidade do homem em processar conhecimento, então não é correto usar o termo velocidade, embora os agentes sejam modelados como partículas no espaço de busca. De acordo com (Kennedy, 1997), a Equação (3.2) representa uma mudança contínua no estado mental, opinião, crença, comportamento. Então, o vetor velocidade, dentro da metáfora social humana, deveria ser substituído por Δx, o qual representa uma pequena perturbação no comportamento do indivíduo. Essa mudança comportamental é dada pela experiência do indivíduo (termo cognitivo) e pela influência do ambiente social (termo social) no qual ele está inserido. Então, não há razão para usar a memória de velocidade da partícula. Eliminando o vetor v(t), o termo de inércia também desaparece. Dessa maneira, a Equação (3.2) e a Equação (3.3) são substituídas pela Equação (4.1) e pela Equação (4.2), respectivamente:

(4.1)

(4.2)

E, finalmente, as Equações (4.1) e (4.2) podem ser condensadas em uma única equação:

(4.3)

A Equação (4.3) pode ser interpretada da seguinte maneira: o comportamento do indivíduo no instante de tempo (t+1) é dado pelo comportamento do indivíduo no instante de tempo (t) mais uma perturbação dada por sua própria experiência e a influência do ambiente social no qual ele está inserido.

A principal motivação para essa modificação no PSC original é buscar uma maneira de convergência natural do algoritmo, sem o uso do parâmetro artificial chamado termo de inércia e, consequentemente, sem a memória de velocidade da partícula (v(t)), presentes no PSC.

(41)

Em (Poli et al., 2007), é discutido que uma das questões em aberto na pesquisa do PSO é o ajuste de seus parâmetros definidos pelo usuário. Eliminando o termo de inércia, o algoritmo torna-se mais fácil de ser ajustado manualmente, por haver menos parâmetros a serem ajustados antes que ele possa ser aplicado a um determinado problema. A partícula converge mais naturalmente, sem a necessidade de controlar a trajetória das partículas através do termo de inércia e vmax. Seu pseudocódigo é exibido

a seguir. 1. procedure [X] = mPSC(data_set,n_part) 2. Y = data_set 3. initialize X // at random 4. initialize dist 5. t 1

6. while t < max_it do,

7. for i = 1 to N do, //for each data 8. for j = 1 to n_part do,

9. dist(j) = distance(yi,x j) 10. end for 11. I = min(dist) 12. if distance(xI,yi) < distance(pIi,yi), 13. then pIi = xI, 14. end if 15. if distance(xI,yi) < distance(gi,yi), 17. then gi = x I, 18. end if 19. 20. end for 21. t t + 1 22. end while 23. end procedure Pseudocódigo 4.1: Algoritmo mPSC

4.2 PSClass: CLASSIFICAÇÃO USANDO ENXAME DE PARTÍCULAS

O PSClass (Szabo e de Castro, 2010) é uma modificação do algoritmo PSC (Particle Swarm Clustering) para resolver problemas de classificação de dados. O classificador proposto também usa heurísticas do algoritmo LVQ1 (Seção 2.2.1) para ajuste dos protótipos no espaço, de modo que as fronteiras definidas pelos mesmos minimizem o erro de classificação. Portanto, o PSClass combina dois métodos para gerar o preditor: agrupamento por enxame de partículas (PSC) e quantização vetorial (LVQ1). A heurística do LVQ1 foi adotada porque este método muitas vezes exige menos exemplos de treinamento e seu treinamento é mais rápido do que outros métodos

Referências

Documentos relacionados

Corograpliiu, Col de Estados de Geografia Humana e Regional; Instituto de A lta C ultura; Centro da Estudos Geográficos da Faculdade de Letras de Lisboa.. RODRIGUES,

4 RESULTADOS E DISCUSSÃO 4.1 Caracterização da cobertura florestal e da biodiversidade vegetal no entorno dos cultivos de tomate na região de Apiaí-SP a Módulos

Esse procedimento pode ser considerado válido, pois a perda de transmissão é um parâmetro que não deve variar para diferentes sinais de excitação, visto que

No entanto, para aperfeiçoar uma equipe de trabalho comprometida com a qualidade e produtividade é necessário motivação, e, satisfação, através de incentivos e política de

Otto: Este filósofo e teólogo toma como base para sua definição de religião a experiência religiosa e introduz na discussão um conceito que muito vai influenciar a compreensão

Os instrumentos de pesquisa utilizados serão: Ficha de Rastreamento das Participantes do Estudo, International Consultation on Incontinence Questionnaire – Short Form

Os caçadores tinham estendido uma grossa corda ligada a uma rede, no caminho por onde o leão costumava passar, de maneira que, quando o leão tropeçou na corda, a rede caiu-- lhe em

Quero ir com o avô Markus buscar a Boneca-Mais-Linda-do-Mundo, quero andar de trenó, comer maçãs assadas e pão escuro com geleia (17) de framboesa (18).... – Porque é tão