Visualizar - Polis Educacional
Transcrição
Visualizar - Polis Educacional
Marcia Aparecida Armelim Armentano RA 0200258 4° Ano UMA METODOLOGIA UTILIZANDO ALGORITMO GENÉTICO NA SELEÇÃO DE ATRIBUTOS EM MINERAÇÃO DE DADOS. Jaguariúna 2005 1 Marcia Aparecida Armelim Armentano RA 0200258 4° Ano UMA METODOLOGIA UTILIZANDO ALGORITMO GENÉTICO NA SELEÇÃO DE ATRIBUTOS EM MINERAÇÃO DE DADOS. Monografia apresentada disciplina Trabalho de Graduação do Curso de Ciência da Computação da Faculdade de Jaguariúna, sob orientação do Prof. Silvio Petroli Neto, como exigência parcial para conclusão do curso de graduação. Jaguariúna 2005 2 ARMENTANO, Marcia Aparecida Armelim. Uma Metodologia na Utilização de Algoritmos Genéticos na Seleção de Atributos em Mineração de Dados. Monografia defendida e aprovada na FAJ em 14 de dezembro de 2005 pela banca examinadora constituída pelos professores: Prof. Silvio Petroli Neto – FAJ Orientador Prof. Ademário Araújo Júnior José Arnaldo G. Nunes 3 Ao meu amado filho Juan Pablo Por todo amor, compreensão e carinho. 4 Agradecimentos A Deus, por sempre estar presente no meu coração e na minha vida, permitindo que eu fizesse as minhas escolhas. À minha família, por toda compreensão e paciência, em especial a minha mãe e a Edna pela colaboração irrestrita em todos os momentos, e ao meu pai que me ensinou a nunca desistir e deixar que o meu coração me guiasse. Aos meus irmãos, que sempre estiveram presentes na minha vida. Ao Marcelo, por ter dado o primeiro passo para que isso se tornasse realidade. Ao Juan Pablo, que é a luz dos meus olhos e a inspiração de cada instante. Aos amigos sempre presentes, em especial ao Emerson por toda ajuda prestada, e a Michele e ao Cezare por estarem comigo nos momentos de alegrias e principalmente os de tristezas, sempre me lembrando que amanhã será um novo dia. A minha sincera gratidão ao Prof. Silvio, pela competente orientação, pelos conhecimentos transmitidos, por toda paciência dispensada na consolidação deste trabalho. A FAJ, por contribuir com o banco de dados para a realização deste trabalho. Que Deus esteja presente na vida de cada um de vocês. 5 ARMENTANO, Marcia Aparecida Armelim. Uma Metodologia na Utilização de Algoritmos Genéticos na Seleção de Atributos em Mineração de Dados. 2005 Monografia. (Bacharelado em Ciência da Computação) – Curso Ciência da Computação da Faculdade de Jaguariúna, Jaguariúna. RESUMO Mineração de dados é hoje o termo associado à busca de conhecimento compreensível, útil ou surpreendente em grandes bases de dados, e sua aplicação dispensa a presença de um número significativo de atributos ou mesmo registros presentes nas bases de dados originais, e que em certos casos, se não forem removidos, podem até “atrapalhar” o processo de aprendizagem. Os Algoritmos Genéticos podem ser aplicados em várias áreas científicas principalmente onde pode-se notar que há problemas de otimização, desenvolvimento de estratégias e formas matemáticas, na área de análise econômico, biológica, ecossistemas entre outras. O principal objetivo é fazer um estudo sobre Algoritmo Genético e Data Mining, verificando como o Algoritmo Genético Simples se comporta com o Data Mining. Foi utilizado então o Perfil de Cliente, verificando se o algoritmo proposto mostra-se eficaz. A Mineração de Dados será utilizada para a extração de regras e agrupamentos necessárias para que o Algoritmo Genético possa selecionar os melhores indivíduos de cada geração formada. Assim sendo é possível gerar um classificador que é capaz de agir como um especialista, classificando os casos desconhecidos. É esperado como resultado fazer um estudo da performance do Algoritmo de Mineração de Dados, e analisar o comportamento do Algoritmo Genético Simples na seleção de atributos, verificando-se assim, se é possível à utilização desses algoritmos em conjunto, ou seja, utilizar algoritmos genéticos para a seleção de atributos em mineração de dados. PALAVRA CHAVE: MINERAÇÃO DE DADOS, ALGORITMOS GENÉTICOS, SELEÇÃO DE ATRIBUTOS. 6 SUMÁRIO LISTAS ................................................................................................................................... 09 1- INTRODUÇÃO ................................................................................................................... 11 2 – DATA MINING .................................................................................................................. 13 2.1 – Processo de descoberta de conhecimento..................................................................... 14 2.2 – Tarefas do KDD ............................................................................................................. 15 2.2.1 – Associação ................................................................................................................. 15 2.2.2 – Classificação............................................................................................................... 16 2.2.3 – Agrupamento .............................................................................................................. 17 2.3 – Seleção de atributos ...................................................................................................... 17 2.4 – Bi – Business Intelligence e Data Mining........................................................................ 18 3 – COMPUTAÇÃO EVOLUTIVA ........................................................................................... 21 4 – ALGORITMO GENÉTICO................................................................................................. 22 4.1 – População...................................................................................................................... 23 4.2 – Codificação do indivíduo ................................................................................................ 24 4.3 – Função de avalição (fitness) .......................................................................................... 24 4.4 – Métodos de seleção ....................................................................................................... 25 4.4.1 – Seleção por roleta....................................................................................................... 25 4.4.2 – Seleção por torneio..................................................................................................... 26 4.4.3 – Seleção de ranking ..................................................................................................... 27 4.4.4 – Elitismo ....................................................................................................................... 27 4.5 – Operadores genéticos.................................................................................................... 27 4.5.1 – Cruzamento ................................................................................................................ 28 4.5.2 – Mutação ...................................................................................................................... 29 5 – DIVERSIDADE NA POPULAÇÃO..................................................................................... 31 5.1 – Direção Comum Para o Mesmo Ponto........................................................................... 31 5.1.1 – Sharing ....................................................................................................................... 31 5.1.2 – Evolução Cooperativa ................................................................................................. 32 5.1.3 – Abordagens Híbridas .................................................................................................. 34 6 – METODOLOGIA ............................................................................................................... 35 7 – IMPLEMENTAÇÃO........................................................................................................... 37 8 – CONCLUSÃO ................................................................................................................... 40 9 – REFERÊNCIAS BIBLIOGRÁFICAS .................................................................................. 41 7 ANEXO 1 ................................................................................................................................ 43 8 LISTA DE FIGURAS Figura 01 – Fases do processo KDD ...................................................................................... 12 Figura 02 – Algoritmo Genético Básico................................................................................... 22 Figura 03 – Seleção por Roleta .............................................................................................. 24 Figura 04 – Implementação da Roleta segundo Mitchell......................................................... 25 Figura 05 – Implementação Seleção por Torneio segundo Mitchell. ....................................... 26 Figura 06 – Cruzamento em um ponto.................................................................................... 27 Figura 07 – Cruzamento em dois pontos ................................................................................ 28 Figura 08 – Cruzamento Uniforme .......................................................................................... 28 Figura 09 – Mutação............................................................................................................... 30 Figura 10 – Sharing Compartilhamento de Recursos.............................................................. 32 Figura 11 – Algoritmo Básico da Evolução Cooperativa (Potter, 2000) ................................... 33 Figura 12 – Dados Alunos FAJ ............................................................................................... 37 Figura 13 - bdados.prn ........................................................................................................... 37 Figura 14 – Cromossomo ....................................................................................................... 38 Figura 15 – Avaliação ............................................................................................................. 38 9 LISTA DE TABELAS Tabela 1 - Soluções candidatas para o problema de x² .......................................................... 25 10 LISTAS DE ABREVIAÇÕES AG Algoritmo Genético KDD Knowledge Discovery in Databases FAJ Faculdade de Jaguariúna XML Extensible Markup Language PMML Predictive Modeling Markup Language OLAP On Line Analitical Processing CRM Resource Center for Data MIning BI Business Intelligence HCN BW Business Warehousing SAP SGBD Sistema de Gerenciamento de Banco de Dados 11 1. INTRODUÇÃO Com o passar do tempo, o homem descobriu que poderia guardar eletronicamente os dados. Com os anos, esses bancos de dados foram crescendo e se tornaram gigantescos. Com o avanço da tecnologia e os estudos para o aprimoramento e a utilização das informações, surgiu o Data Mining, que poderíamos definir como a busca de conhecimento até então perdidos e desprezados nesses grandes bancos de dados. Esses conhecimentos podem ser informações inovadoras, gerando novas tendências e descobrindo diferentes comportamentos que, se bem utilizados, irão fazer a diferença nas tomadas de decisão das empresas. O Data Mining possui hoje uma série de ferramentas disponíveis no mercado. A informação faz a diferença, podendo ser utilizada em diversas áreas. Esse trabalho propõe a utilização de Algoritmos Genéticos na Seleção de Atributos em Mineração de Dados. A seleção de atributos é uma das tarefas que são realizadas no processo do KDD (Knowlege Data Discovery), mais especificamente na fase de pré-processamento. Essa seleção é essencial para o bom desempenho do Data Mining. Os atributos, na maioria das vezes, são coletados para diferentes classificações e se não forem bem selecionados quando chegam à fase de mineração esses atributos podem até atrapalhar o desempenho do algoritmo. A Mineração é uma tecnologia que é formada por um conjunto de ferramentas que, através do uso de algoritmos de aprendizado ou baseados em redes neurais e estatísticas, são capazes de explorar um grande conjunto de dados, extraindo destes conhecimentos na forma de hipóteses e de regras. Diariamente, as empresas acumulam diversos dados em seus bancos de dados, tornando-os verdadeiros tesouros de informação sobre os vários processos e procedimentos das funções da empresa, inclusive com dados e hábitos de seus clientes, suas histórias de sucesso e fracassos. Todos estes dados podem contribuir com a empresa, sugerindo tendências e particularidades pertinentes a ela e seu meio ambiente interno e externo, visando uma rápida ação de seus gestores (FELDENS, 1999). Entre os anos 50 e 60 foi quando ocorreu o desenvolvimento de simulação de sistemas genéticos. Mas foi em 1975 que John Holland contribuiu para a partida inicial dos Algoritmos 12 Genéticos. Nos anos 80 David E. Goldberg obteve o seu primeiro sucesso em uma aplicação industrial utilizando algoritmo genético, depois disso, os Algoritmos Genéticos vem sendo utilizados para solucionar problemas de otimização e aprendizado de máquinas. Esses algoritmos simulam o processo natural das espécies, ou seja, baseiam-se numa população, na qual há sobrevivência, reprodução e a evolução de cada indivíduo. Os Algoritmos genéticos são muito utilizados na solução de tarefas onde o espaço de busca é grande e tem demonstrado bastante eficácia e esse foi um dos principais motivos para a escolha do mesmo nesse trabalho. Com a geração de informações e conhecimentos úteis para as empresas, podemos também ver mais além, ou seja, podemos visualizar a lucratividade das empresas, pois trabalhos que levariam dias ou meses poderão ser feitos em horas. 13 2. DATA MINING Podemos definir Mineração de Dados como busca por relacionamentos e padrões interessantes que estão de certa forma escondidas numa grande base de dados. A diferença entre dados e informação é ainda maior quando nos referimos a sistemas de banco de dados. Com o intuito de transformar dados em informação, e posterior conhecimento útil, surgiu o processo de descoberta de conhecimento em bases de dados, ou KDD (Knowledge Discovery in Databases). Associado a esse processo surgiu o termo mineração de dados (Data Mining). A Mineração de Dados pode ser aplicada em qualquer área, como por exemplo, financeira, comercial, médica, etc, desde que tenha dados disponíveis para o processamento. Hoje, profissionais da área de estatística, analista de dados, desenvolvedores de sistemas de informação gerais, segundo Fayyaed utilizam o termo Mineração de Dados e os pesquisadores da área de Inteligência Artificial utilizam KDD. Figura 01 – Fases do processo KDD A Mineração de Dados tem como objetivo responder uma pergunta particular do usuário e para isso é necessário que seja informado o problema que se queira resolver. Para ilustrarmos isso poderíamos considerar um banco de dados de uma empresa de veículos. Uma consulta poderia ser: “Quantos veículos X foram vendidos pelo vendedor Y?”, esse exemplo seria uma operação comum e simples. Porém as técnicas de Mineração de Dados tendem a atender aplicações administrativas como Marketing, Planejamento de Estoque, Abertura de Novas Filiais, Decisões Estratégicas, no caso de um Banco um exemplo seria o serviço de Aprovação de Financiamento. A área científica como biologia molecular, modelagem de mudanças climáticas globais, etc vem cada vez mais utilizando a Mineração de Dados. Existem diversas técnicas de Mineração de Dados para a extração de conhecimento como Indução e ou Extração de Regras, Redes Neurais, Algoritmos Evolutivos, Técnicas estatísticas (Rede Bayesianas), Conjuntos Difusos, etc. Essas técnicas podem ser utilizadas em 14 diversas tarefas da Mineração de Dados como extração de regras de associação, classificação, análise de agrupamento, etc. Fayyad (1996) previne que existem critérios estabelecidos para a decisão em relação aos métodos que devem ser usados em dada circunstância e que muitas abordagens são aproximações heurísticas para evitar o alto custo de processamento que seria necessário para se encontrar soluções ótimas. Existem alguns componentes que, segundo Fayyad (1996) são essenciais para o Algoritmo de Mineração: • Representação do Modelo: Linguagem que será utilizada para descrever os padrões que tem por objetivo serem descobertos. • Critérios de Avaliação do Modelo: Função de Aptidão da qualidade que um padrão específico possui, ou seja, alcançar as metas do KDD. • Método de Busca: Seria a busca de parâmetro e a busca do modelo. Depois que é feito a escolha da representação do critério de avaliação do modelo o problema de Mineração de Dados é reduzido a tarefa de otimização. Portanto, na escolha do Algoritmo, deve-se priorizar a otimização do critério de avaliação do modelo. 2.1 Processo de Descoberta de Conhecimento KDD é o processo não trivial de identificação, a partir de dados de padrões que seja válidos, novos, potencialmente úteis e compreensíveis (Fayyad, 1996). A Mineração de Dados é a etapa principal, porém o processo de descoberta de conhecimento em banco de dados não se limita apenas em minerar os dados. Fayyaed (1996) classifica o processo geral do KDD em etapas: • Entendimento do Domínio de Aplicação: Nessa etapa é identificado-o conhecimento que interessa, e a meta do processo de KDD a partir do ponto de vista do usuário. • Pré-Processamento: inclui a operação como seleção de atributos relevantes, remoção de ruído, tratamento da ausência de valores de atributos e conversão de dados categóricos ou contínuos; • Redução de Dados: Reduz os dados em relação ao objetivo da tarefa. • Algoritmo: Escolha de um algoritmo apropriado de Mineração de Dados. • Mineração de Dados: Realização da Mineração de Dados. 15 • Interpretação: Nessa etapa é feita a interpretação dos padrões descobertos, podendo assim retornar para um dos passos anteriores. • Consolidação: É o conhecimento descoberto, a conferência, solução possível de conflitos com conhecimentos anteriores. O processo de KDD, assim sendo, utiliza o banco de dados para a realização da seleção de atributos e as transformações necessárias sobre os dados na fase de pré-processamento. As fases do KDD segundo Lui e Motoda: • Data Warehousing: É possível que dos dados de diferentes formatos e fontes sejam coletados. Depois esses dados são reunidos e utilizados na mesma aplicação. • Pré-Procesamento: seleciona, a partir dos dados gerados pela fase de Data Warehousing, aqueles considerados úteis para a tarefa que se pretende realizar, dando origem a uma base de dados. A essa nova base de dados são então aplicados métodos de remoção de ruídos e de projeção e redução dos dados, remodelando-os de acordo com a aplicação em que serão utilizados. • Mineração de Dados: Na etapa denominada mineração de dados, escolhe-se um algoritmo propício para a aplicação em questão, que será utilizado para procurar por padrões interessantes e úteis nos dados. • Pós-Processamento: A fase de Pós-Processamento compreende a validação e interpretação dos resultados, além da organização da informação encontrada, de maneira que ela possa ser verificada e reusada. 2.2 Tarefas do KDD Entre as principais tarefas realizadas pelo KDD estão: 2.2.1 Associação Tem como principal objetivo encontrar a partir de um conjunto de exemplos E, um conjunto de regras de associação, ou seja, descobrir quais atributos aparecem com maior freqüência nesses exemplos. Uma regra de associação é um relacionamento do tipo Se (x) então (y), onde x Е X e y ЕY são conjuntos de itens, e X ∩Y = ø (LIU E MOTODA, 1998) Um registro normalmente corresponde a uma transação de um cliente, em que cada item tem valor verdadeiro ou falso, de acordo com a compra ou não do item pelo cliente. Esse tipo de dado é normalmente coletado através de tecnologias, como a de código de barras (FREITAS E LAVINGTON, 1998). 16 2.2.2 Classificação Uma das tarefas mais comumente resolvidas com técnicas de mineração de dados. Um sistema de classificação é utilizado para prever a classe de um objeto baseado em seus atributos. Um dos principais objetivos na tarefa de classificação é maximizar a taxa de classificações corretas nos dados de teste, que corresponde à razão entre o número de seus exemplos corretamente classificados e o número total de exemplos disponíveis no conjunto de testes. Os dados utilizados para resolução da classificação consistem em um conjunto de atributos denominados previsores e um atributo denominado meta, que define a classe a que esse registro pertence. O objetivo dessa tarefa é descobrir um relacionamento entre os atributos previsores e o atributo meta, usando registros cuja classe é conhecida, para que posteriormente esses atributos previsores possam ser utilizados para prever a classe de um registro cuja classe é desconhecida (HAND, 1997). Quando trabalhamos com um classificador, os exemplos disponíveis para criação de um modelo de classificação são divididos em dois conjuntos mutuamente exclusivos: um conjunto de treinamento e um conjunto de teste. O conjunto de treinamento fica disponível para o classificador, que analisa as relações entre os atributos de previsões e os de meta. Os relacionamentos descobertos, a partir desses exemplos, são então utilizados para prever a classe dos registros presentes no conjunto de teste. Para o classificador, o atributo meta do conjunto de teste fica indisponível. Após prever a classe dos exemplos do conjunto de teste, as classes previstas são então comparadas com as classes reais dos exemplos, definidas pelo atributo meta. Se a classe prevista for igual a real, a previsão foi correta, caso contrário, a previsão foi incorreta. O conhecimento descoberto pelo classificador, através dos exemplos de treinamento, pode ser representado de várias formas. Depois que for identificada a necessidade de se resolver um problema, o próximo passo será escolher um dos diversos métodos existentes para a classificação. Para que seja feita essa escolha, podemos comparar esses métodos segundos os critérios: • Acurácia: é o grau de certeza de uma determinada informação,ou seja, reflete o quanto um valor estimado está próximo do valor real. Quanto maior a acurácia maior será a precisão dos resultados finais. É considerado ruim abaixo de 50%, média entre 50% e 75%, e alta acima de 75%. 17 • Desempenho: Refere-se aos recursos computacionais utilizados na geração e na utilização do modelo. • Robustez: É a habilidade do modelo chegar a fazer predições corretas tanto com a falta de atributos ou não. • Escalabilidade: É a habilidade de fazer com que o modelo construído seja eficiente em grandes quantidades de dados. • Interpretabilidade: É a habilidade de fazer com que o conhecimento adquirido pelo modelo seja compreensível 2.2.3 Agrupamento Tem a tarefa de agrupar e dividir os dados em grupos formados por elementos com características semelhantes (Fayyad et al 1996). Nesse tipo de problema, o sistema deve particionar o conjunto de dados em subconjuntos. Um algoritmo de agrupamento deve ser capaz de maximizar a semelhança entre elementos de um mesmo grupo e minimizar as semelhanças entre exemplos pertencentes a grupos diferentes. Normalmente não existe uma resposta correta para um problema de agrupamento. É o agrupamento que possibilita o entendimento inicial dos dados. Na maioria das vezes após o agrupamento, os métodos de classificação são aplicados com o objetivo de obter regras de classificação e distinguir os registros pertencentes a classes diferentes ou regras que caracterizam cada grupo ou classe. 2.3 Seleção de Atributos Algoritmos genéticos vêm sendo muito utilizados na resolução de problemas de Seleção de Atributos, principalmente por sua aplicação ser vantajosa em situações em que o espaço de busca é grande. Tratando-se de seleção de atributos, a dimensão do espaço de busca está diretamente relacionada ao número M de atributos contidos na base de dados, e é definida como 2M. Quanto maior o número de atributos em uma base de dados, maior o poder do classificador de discriminar, sem contar com a maior facilidade de extrair modelos de conhecimento da base. A quantidade de dados ou atributos presentes em uma base de dados é indiferente na seleção de atributos, e é hoje uma das principais tarefas de pré-processamento utilizadas para preparar dados que serão posteriormente minerados. Ela tem como principal objetivo selecionar 18 um subconjunto de atributos relevantes para a tarefa alvo, dentre todos os atributos disponíveis. Um dos objetivos da seleção de atributos é a melhoria da performance do algoritmo de mineração de dados (velocidade de aprendizagem, taxa de classificações corretas e/ou simplicidade das regras), e diminuir a dimensionalidade dos dados. Independente da quantidade de dados ou atributos que estão numa base de dados a seleção de atributos ainda é uma das principais tarefas de pré-processamento onde é feita a preparação dos dados para que depois possam ser minerados. Podemos definir um atributo relevante, caso ele seja capaz de distinguir exemplo que faça parte de classes diferentes. Além disso a seleção de atributos garante que os dados que chegam a fase de mineração sejam de boa qualidade (LIU E MOTODA, 1998). A seleção de Atributos se baseiam praticamente em duas etapas que são elas: 1. Busca dos subconjuntos de atributos 2. Avaliação dos subconjuntos encontrados Além disso, a seleção também é útil quando temos muitos atributos ou poucos registros. 2.4 BI-Business Intelligence e Data Mining Com o grande crescimento dos conceitos de BI-Business Intelligence, a qual teve forte propensão as aplicações em diversos segmentos da industria,os produtores de ferramentas de Data Mining preparam-se para disputar esse mercado que rende cada vez mais crescer. Uma pesquisa feita em outubro de 2000, realizada pela empresa Cutter Consortium, com 94 empresas no mundo inteiro apontou as seguintes projeções, em relação ao uso do Data Mining: • 20% dos entrevistados já estão usando ferramentas de Data Mining; • 16% planejam usá-las dentro de um ano; • 10% planejam usá-las dentro de um tempo superior a um ano; • 21% estão analisando as ferramentas, mas não tem planos para seu uso a curto prazo; • 33% não estão considerando o seu uso. De modo geral os produtos de Data Mining podem ser classificados em: • Ferramentas Independentes de aplicação genérica: essas ferramentas oferecem um amplo conjunto de técnicas e mecanismos de visualizações. Oferecem também abordagens simples, como Análise de Regressão, até as mais complexas como Redes Neurais, passando por regras de Associação e Análise de Agrupamentos (clustering). 19 Porém tudo isso requer uma equipe com formação estatística para a preparação dos dados a serem garimpados, o que implica num tempo maior para a implantação do projeto. Entre os principais representantes estão: IBM Intelligent Miner, da IMB Copr., Enterprise Miner, do SAS Institute Inc., Clementine, da SpSS e Knowledge Studio, da Angoss Software Corp. Alguns produtos, como Clementine, permitem que todo o projeto de Mining, desde a extração dos dados até a publicação do modelo, seja exportado como um programa em C, por exemplo. O produto da IBM apresenta-se em duas versões: exclusivamente para textos (IMB D2Intelligent Miner for Text) e outro para garimpagem de dados em geral (IBM DB2 Intelligent Minerfor Data). • Ferramentas orientadas para Algoritmos: essas ferramentas são voltadas para a aplicação de certos algoritmos, e o que faz com que ofereçam um melhor desempenho. O entendimento do problema a ser resolvido é fundamental para que seja encontrada e aplicada a melhor técnica. Assim sendo, ela pode oferecer um resultado melhor se comparado com outros alternativos. Vejamos alguns produtos dessa classe: Knowledge Seeker da Angoss, com ênfase em Árvores de Decisão; e NeuralWorks, da NeuralWare, para as aplicações que requerem os complexos algoritmos de Redes Neurais. Algumas dessas ferramentas específicas também são oferecidas com add-in de ferramentas de desktop, com o SGDB, Acess e Excel. Por exemplo a Angoss, Kwnowledge Access e Knowlewdge Excelerator para o Access e Excel (produtos Microsoft). • Ferramentas orientadas a aplicações específicas: essas ferramentas sofreram certas adaptações para trabalharem com segmentos específicos de aplicações orientadas por tutoriais, porém não permite uma grande variação. Um dos produtos dessa classe é o IBM-Intelligent Miner para CRM e texto; o DecisionHouse para CRM da Quadstome; e o DataBase Mining Marksman da HNC Software Inc., para aplicações de Data Base Marketing. • Ferramentas embutidas em soluções OLAP: São ferramentas associadas a produtos de banco de dados e de aplicações de BI-Bussiness Inelligence ou OLAP. Oferecem aplicação simples com algoritmos triviais e são de fácil aplicação. Os representantes são: Bussines Miner da Bussiness Object; o Scenário, da cognos; o Analysis Service, embutido no SQL/Server2000® da Microsoft; e a suite de Data Mining da Oracle, baseado em Darwin adquirido da Thinking Machines. • Algumas soluções de Mining trazem a proposta de um padrão para definição de modelos preditivos, baseados Em XML É o PMML definido pelo Data Mining group, que permite a definição e o compartilhamento de modelos de mining entre as aplicações de 20 origem tecnológicas diferentes. A SAP, por exemplo, com o crescimento de seu BWBusiness Warehouse, como instrumento de BI, oferece também ferramentas de mineração na sua arquitetura, isso é possível através de soluções próprias ou de acoplamento com terceiros. A Microsoft, apresenta algoritmos de mineração (arvore de decisão e clustering) que são oferecidos no SQL-Server/2000®. • Ferramentas e serviços de provedores externos: Representam soluções completas, pois englobam a prestação de serviço de mineração, além da utilização das ferramentas. Os serviços compreendem desde a abordagem de metodologia para a mineração até o “hosting” dos serviços de garimpagem de dados. Exemplo de servidores desses serviços: IBM Global Business Solution, Epiphany, PricewaterHouse Coopers,etc. 21 3. COMPUTAÇÃO EVOLUTIVA A Computação Evolutiva é um dos ramos da Inteligência Artificial que propõem uma solução de problemas inspirado na seleção natural. Na Computação Evolutiva encontramos um conjunto de técnicas de busca e otimização baseados na evolução natural das espécies, ou seja cria-se uma população de indivíduos que vão se reproduzir, depois da reprodução eles se encontram numa fase de competição onde os indivíduos mais fortes irão sobreviver. Dentro da Computação Evolutiva encontramos os Algoritmos Genéticos e a Programação Genética que foram concebidos em 1960 por John Holland (Holland 1975), que teve como objetivo principal estudar os fenômenos relacionados as espécies e suas formas de adaptação e seleção natural que ocorre na natureza e com base nessas características naturais incorporou esses conceitos na área computacional. Os Algoritmos Genéticos e a Programação Genética vêem do mesmo conceito, porem não mantêm vínculos ou dependências entre si. 22 4. ALGORITMO GENÉTICO Os algoritmos genéticos são algoritmos de busca e otimização baseados na analogia com os processos de seleção natural e genética evolucionária (Goldberg, 1989). A essência do método consiste em manter uma população de indivíduos (cromossomos), onde cada indivíduo representa uma possível solução para um problema específico. A melhor solução é atingida através de um processo de seleção competitiva, envolvendo cruzamentos e mutações (Herrera et al., 1996). Um dos motivos para o sucesso dos Algoritmos Genéticos se relaciona a busca global que eles realizam. Os algoritmos Genéticos se baseiam nos métodos de seleção natural e assim sendo envolvem a sobrevivência do indivíduo mais apto, dessa forma se tornam especialmente atrativos por não exigirem que se saiba como encontrar uma solução, mas sim como reconhecê-la sendo uma ótima solução para o problema. Para chegarmos numa aplicação para a resolução de um problema é necessário seguirmos alguns passos fundamentais: - criar um indivíduo (cromossomo) no qual será definida uma representação da solução. Em seguida devemos definir como a avaliação dessa solução será realizada (função fitness). - Obter uma população inicial com indivíduos criados aleatoriamente, e com isso escolher como e quais operadores genéticos serão aplicados. - depois utilizar um indivíduo (cromossomo) no qual será definida uma representação da solução. - Através do operador de seleção é obtido uma nova geração, ou seja, escolhe-se os indivíduos de melhor valor. - Quando é criada uma nova geração, aplica-se nos indivíduos que foram selecionados, operações onde misturam suas características que chamamos de genes, através dos operadores de cruzamento (crossover) e mutação. 23 Figura 02 – Algoritmo Genético Básico 4.1 População Podemos definir uma população como um conjunto de indivíduos. Essa população é de suma importância, pois ela esta cogitada como solução, e também, será usada para a criação de uma nova população ou conjunto de indivíduo. Outro ponto importante é o tamanho da população que pode afetar o desempenho e a eficiência do AG. Quando a população é pequena ela pode perder a diversidade que é importante para de chegar a uma boa solução. Porque ela fornece uma cobertura de espaço de busca muito pequena. Por outro lado, se a população tiver uma grande quantidade de indivíduos, o algoritmo poderá se tornar ineficiente pela demora na avaliação de aptidão e também irá precisar de um recurso computacional maior. 24 4.2 Codificação do Indivíduo Existem várias maneiras de representar um indivíduo em um Algoritmo Genético. Os indivíduos têm um papel importante, representando uma possível solução para o problema. Podemos representar os indivíduos de várias formas, uma delas e a mais utilizada é a representação binária de tamanho fixo, onde segundo Hinterding, (2000) um indivíduo é uma cadeia de bits que são representados por 0 ou 1. Já Freitas, (2002) nos diz que quando as variáveis assumem valores contínuos podem ter problemas. Um AG convencional nunca conhece as informações que ele carrega e isso independe do tipo de codificação que estará sendo utilizada (DHAR e STEIN, 1997). Existem outras formas de codificação como a usada pelo próprio alfabeto do atributo que se deseja representar como letras, números, códigos e outros mais. A representação utilizada nesse trabalho será a representação binária de tamanho fixo, onde um indivíduo é uma cadeia de bits que assumem valores 0 ou 1, por ser considerada a mais simples e a mais utilizada e também a que melhor representa o problema a ser tratado. 4.3 Função de Avaliação (Fitness) Utilizamos a função de avaliação para determinar o quanto é boa uma solução candidata é para que se chegue na resolução do problema. Quando falamos em população natural o fitness é que determina a capacidade do indivíduo sobreviver e depois se reproduzir. Se o fitness tiver uma precisão baixa, uma solução ótima pode ser deixada de lado durante a execução do algoritmo, também poderá gastar mais tempo analisando solução não tão boas. Consideremos um exemplo clássico de um AG simples dado por Goldberg (Goldberg, 1989), no qual queremos encontrar o valor de x que resulte em um valor máximo da função x² no intervalo [0,31]. Podemos codificar indivíduos para a solução desse problema com 5 bits, que representam o valor binário de qualquer número no intervalo [0,31]. Nesse caso, poderíamos considerar a função de avaliação como sendo próprio x² (função objetivo), visto que quanto maior o valor dessa função, melhor a qualidade de um indivíduo. A Tabela abaixo traz exemplos de soluções candidatas para o problema proposto por Goldberg. Dentre as soluções apresentadas, a solução 2 apresenta função de avaliação maior, e por isso pode ser considerada, entre as soluções encontradas, a melhor solução para o problema. Tabela 1 - Soluções candidatas para o problema de x² 25 Código Indivíduo X X2 1 1101 13 169 2 11000 24 576 3 1000 8 64 4 10011 19 361 4.4 Métodos de Seleção Como os Algoritmos Genéticos se baseiam na seleção natural, eles devem ter a capacidade de identificar os indivíduos mais aptos para que esses continuem no processo de evolução e os mais fracos sejam excluídos. Um dos objetivos da seleção é propagar material genético dos indivíduos mais adaptados, tomando cuidado para que não se valorize demais um indivíduo em adaptado no começo, e assim, se despreze os indivíduos que se apresentam ruins. Pode-se utilizar vários métodos como: seleção proporcional (roleta),seleção por ranking, torneio, elitismo, entre outros. 4.4.1 Seleção por Roleta Cada indivíduo da população é representado na roleta de acordo com a proporção do serem índice de aptidão. Assim, os indivíduos com maior índice de aptidão tomam uma porcentagem maior na roleta. Figura 03 – Seleção por Roleta 26 Esse método exige suas passagens por todos os indivíduos da população o que faz aumentar o tempo de processamento. A figura abaixo mostra um exemplo implementado segundo Mitchell (1997). Figura 04 – Implementação da Roleta segundo Mitchell. 4.4.2 Seleção por Torneio Um número de N indivíduos da população é escolhido aleatoriamente para formar uma sub-população (temporária). Nesse grupo, para que seja selecionado um indivíduo, depende de uma probabilidade K definida previamente. Esse é o mais utilizado, pois oferece a vantagem de não exigir que a comparação seja feita entre todos os indivíduos da população (BANZHAL, 1998). 27 Figura 05 – Implementação Seleção por Torneio segundo Mitchell. 4.4.3 Seleção de Ranking Para entendermos melhor a seleção de Ranking vamos dividi-lo em duas partes: 1- As soluções são ordenadas de forma crescente de acordo com os valores da função de avaliação, isto é, se o objetivo for maximizar a função de avaliação, agora se o objetivo for minimizá-la será feito em ordem decrescente. Quando a lista estiver ordenada será dado a cada individuo um novo valor da função de avaliação equivalente à sua posição no ranking. 2- É feito um procedimento parecido com a seleção proporcional, quanto maior for a posição do indivíduo no ranking, maior será as chances desse indivíduo ser selecionado. 4.4.4 Elitismo O indivíduo de melhor desempenho é selecionado automaticamente. O elitismo conserva os Nelit melhores indivíduos da população atual copiando-os para a próxima geração sem nenhuma alteração, os outros N - Nelit indivíduos são gerados normalmente utilizando-se do método de seleção e posteriormente são aplicados os operadores genéticos. Com isso ele garante que as melhores soluções sejam passadas para a próxima geração e ainda participam da criação dos novos indivíduos da nova geração. 4.5 Operadores Genéticos O objetivo principal dos operadores genéticos é transformar a população através de sucessivas gerações até que se chegue num resultado satisfatório. 28 Os operadores genéticos são necessários para que se haja diversidade entre os indivíduos da população e para que se mantenham as características das adaptações adquiridas durante as gerações anteriores. Os operados genéticos são constituídos de operadores de cruzamento e mutação que trazem com eles o papel fundamental em um AG. 4.5.1 Cruzamento O cruzamento (crossover) é o operador genético que predomina. É através dele que são criados novos indivíduos, ou seja, utiliza-se de dois indivíduos (pais) para fazer o cruzamento, misturando as suas características. Podemos dizer, de forma abstrata, que esse cruzamento tenta imitar a reprodução de genes em células. O resultado desta operação é um indivíduo (filho) no qual foram combinadas as melhores características usadas como base. O crossover de um ponto é muito simples. Primeiramente é sorteado aleatoriamente um ponto do cromossomo, Depois é feira a troca de material genético, essa troca é realizada na região a direita em relação ao ponto escolhido. Podemos ver isso melhor na figura abaixo: Figura 06 – Cruzamento em um ponto Já o Cruzamento em Dois Pontos é feito com dois pontos de cruzamento, seleciona-se pontos de corte para o cromossomo, nos quais cada um dos dois descendente. 29 Figura 07 – Cruzamento em dois pontos Outro tipo de cruzamento é o Cruzamento Uniforme. Nesse método, cada gene do cromossomo (indivíduo) pode ser trocado de acordo com uma probabilidade fixa p e então, quanto maior for o valor de p, maior será o número de genes trocados ente os dois pais. A figura mostra um cruzamento uniforme no qual o valor padrão de p é 0,5 e os genes trocados estão destacados em negrito (Freitas 2000). X1 X2 X3 X4 X5 X6 X1 Y2 X3 Y4 Y5 X6 Y1 Y2 Y3 Y4 Y5 Y6 Y1 X2 Y3 X4 X5 Y6 Antes do Cruzamento Depois do Cruzamento Figura 08 – Cruzamento Uniforme [FREITAS, 2002] 4.5.2 Mutação É necessário para a introdução e manutenção da diversidade genética da população. Esta operação modifica aleatoriamente alguma característica do indivíduo sobre o qual é aplicado, assim criando novos valores de características, porém, são aplicadas através de uma taxa de mutação geralmente pequena. 30 No caso de um indivíduo ser representado por string binário, ela consiste em escolher aleatoriamente um gene do cromossomo e inverter seu valor de 1 para 0 ou 0 para 1. A mutação assegura que a probabilidade de se chegar a um espaço de busca possivelmente não seja zero. Figura 09 – Mutação Quanto à geração de um novo conjunto de indivíduo, é gerado a partir da população anterior, assim, a este novo conjunto dá-se o nome de geração e através de uma grande quantidade de geração é possível obter resultados dos algoritmos genéticos. 31 5. DIVERSIDADE NA POPULAÇÃO 5.1 Direção Comum Para o Mesmo Ponto Quando alguns genes tomam uma direção comum para o mesmo ponto se torna um problema em Algoritmo Genético, contudo esses indivíduos são relativamente adaptados porem não ótimos podem levar a população a convergi a um local. Para que isso não aconteça pode ser utilizados juntamente com os algoritmos genéticos o compartilhamento de recursos (sharing), da Evolução Cooperativa e da Hibridização. 5.1.1 Sharing Na natureza existem vários nichos, e neles podemos ter várias espécies, o número dessas espécies podem aumentar de acordo com a fertilização e a eficiência de toda a organização. Um dos primeiros estudos foi feito por Caviccho (1970) o qual criou um mecanismo chamado preselection onde um indivíduo adolescente substitui o indivíduo pai,se o valor de aptidão dele for maior do que o valor de aptidão do pai, assim se manteria a diversidade da população porque estaria substituindo os seus similares. Depois De Jog (1975) criou crowding onde o método proposto para se manter a diversidade, ele substituía os indivíduos da população fazendo com que os novos indivíduos substituam outros similares com menor valor para a função de aptidão dentro da população. O compartilhamento de Recursos também conhecido como Sharing foi introduzido por Goldeberg e Richadson (Golderg 1989). O objetivo desse mecanismo é reduzir o valor de aptidão de indivíduos que tem membros altamente similares dentro da população. A Sharing é usada para determinar os vizinhos e o grau de compartilhamento para cada indivíduo da população. O grau de compartilhamento é determinado para um determinado indivíduo onde é somado os valores da função Sharing que foi contribuídos por todos os outros indivíduos na população. Os indivíduos muito similares requerem um grau de compartilhamento próximo de 0.0. Caso o indivíduo seja idêntico a um outro indivíduo, seu grau de comparação será igual a 1.0. Depois e acumular o número total de compartilhamentos, o indivíduo que está sendo avaliado terá o seu valor de aptidão reduzido, através da divisão de seu valor de aptidão pela soma acumulada do total de compartilhamento. 32 Figura 10 – Sharing compartilhamento de recursos Assim o Algoritmo Genético tradicional é modificado no módulo de avaliação com isso cada indivíduo terá o seu valor de aptidão reduzido de acordo com a quantidade de indivíduos idênticos ou similares dentro da população. Assim o Algoritmo Genético terá uma probabilidade menor que muitos indivíduos sejam selecionados de um mesmo nicho, chegando a uma diversidade populacional maior. 5.1.2 Evolução Cooperativa A Evolução Cooperativa é tida com problemas complexos, proposta feita por De Jong (2000). Nessa arquitetura encontramos um ecossistema de duas ou mais espécies. Essa técnica consiste em cruzar os indivíduos apenas com a sua própria espécie, ou seja, são geneticamente isoladas. As restrições de cruzamento são forçados simplesmente por evoluir as espécies em população separadas. 33 As espécies tem um relacionamento cooperativo, inteiramente em modelo de domínio compartilhado. Figura 11 – Algoritmo Básico da Evolução Cooperativa (Potter 2000) Cada espécie é evoluída em sua própria população. Para a avaliar uma população são formadas colaboração com representantes. Segundo Potter De Jong isso seria como uma colaboração porque quando os indivíduos chegarem ao final será analisado a forma que eles trabalharam juntos para resolver o problema. Caso aconteça da evolução estacionar, ou seja, parar a possibilidade de construir uma boa solução será mínima, então será criada aleatoriamente uma nova população. Para descobrir se houve uma parada podemos analisar a qualidade e a colaboração feita através da equação: 34 F(t)-f(t-k)<C, Onde f(t) é o valor de aptidão da melhor colaboração no tempo, C é uma constante que mostra o aumento do valor de aptidão (se houver uma melhoria), K é uma constante que especifica o tamanho de uma janela evolutiva onde deve haver uma melhoria que deve ser realizada. Há cada geração realizada é feita uma cooperação entre as populações. Assim cada n gerações a população foi avaliada tiver um valor de aptidão muito baixo ela será descartada, e então será criada uma nova população a qual substituirá as próximas gerações. 5.1.3 Abordagens Híbridras A hibridização utiliza outros métodos de otimização que é utilizado em conjunto com o Algoritmo Genético, já que o AG tradicional não apresenta uma boa otimização. Como por exemplo Hill-Climbing, Busca Tabu, entre outros. A Busca Tabu por exemplo faz uma busca agressiva dentro do espaço de solução do problema de otimização com o objetivo de encontrar as melhores alternativas para que não sejam consideradas um Tabu. 35 6. Metodologia Foi feito levantamento bibliográfico do material utilizado na pesquisa principalmente livros. Realizou-se um estudo sobre o Data Mining, abrangendo as ferramentas da Data Mining, suas etapas e aplicações de classificação. De acordo com o objetivo desse trabalho foi utilizado Algoritmo Genético em conjunto com o Data Mining, no qual foi feito um estudo sobre a utilização dos Algoritmo Genético, dando ênfase de como utilizar algoritmo genético para a seleção de atributos. Contudo, o estudo realizado sobre algoritmo genético abordou desde um estudo sobre o algoritmo tradicional, a população, codificação do indivíduo, função fitness, métodos de seleção (Roleta,Torneio, Ranking, etc), Cruzamento, Mutação, técnicas para manter a diversidade da população. Para a implementação foi utilizado o programa Matlab 6.0. Com o estudo realizado notou-se que a seleção de atributos é uma das etapas mais importantes da Mineração de Dados. Notou-se isso devido ao processo do KDD, onde é necessário uma boa seleção de atributos na fase de pré-processamento para que os dados cheguem a fase de Mineração de Dados com boa qualidade, senão isso pode fazer com que a mineração não obtenha o resultado esperado. Ficou definido que o método para gerar a população inicial para o desenvolvimento desse trabalho foi gerar a população aleatoriamente. A representação utilizada nesse trabalho será a representação binária de tamanho fixo, onde um indivíduo é uma cadeia de bits que assumem valores 0 ou 1, por ser considerada a mais simples e a mais utilizada. Como fitness utilizou-se a acurácia. O cruzamento e a mutação fazem dois papéis diferentes porém com a finalidade de se obter diversidade na população, criando, a partir dos indivíduos pais, os indivíduos filhos que assim gerarão uma nova população. 36 7. IMPLEMENTAÇÃO Para a realização desse trabalho foi utilizado o banco de dados dos alunos da FAJ, do qual foram utilizados somente os campos: curso, data de nascimento, sexo, estado civil, naturalidade, nacionalidade e cidade. Esses dados foram transmitidos através de uma tabela do Excel contendo inicialmente 4817 registros. Alguns destes registros não continham todos os dados necessários e foram eliminados, restando para a realização desse trabalho 4802 registros. Houve a necessidade de transformar cada dado num número, por exemplo curso Ciência da Computação, foi atribuído o código 1, o mesmo aconteceu com os campos cidade, naturalidade, nacionalidade, sexo, estado civil. Isso foi feito no Excel. A data de nascimento também foi tratada. Foi necessário transformar o seu formato de data para geral, onde foi obtido uma numeração. Depois de gerado, essa numeração no programa Excel, foi também necessário transformar uma data do mês de novembro em numeração da mesma forma feita com a data de nascimento de cada aluno, o valor obtido foi subtraído da data de nascimento e multiplicado por 365 (dias/ano), assim sendo, foi obtido a idade de cada aluno. Foi necessário fazer um levantamento de cada tipo de curso, sexo, estado civil, cidade de naturalidade, nacionalidade e cidade de moradia, para garantir que esses dados possam ser interpretados pela fase KDD destinada a isso, bem como para o entendimento do algoritmo, as tabelas estão em Anexo. Todas as alterações necessárias para a implementação do software em si foram realizadas. Como já dito, foi utilizado o Matlab por se tratar de um software que facilita o trabalho com matrizes. A tabela de dados da FAJ foi transformada em um arquivo bdados.prn separado por tabulação, para que assim fosse possível ser carregado e interpretado pelo Matlab. Porém esse arquivo foi transformado em um arquivo bdados.m (arquivo do Matlab). Vejamos na figura abaixo um trecho da tabela com dos dados dos alunos FAJ, em seguida vejamos a figura do arquivo dados.prn. 37 Figura 12 - Dados Alunos FAJ 38 Figura 13 - bdados.prn Para a verificar a performance dos algoritmos genéticos na mineração de dados seguires basicamente alguns passos: Ler o arquivo com os dados; Gerar a população inicial aleatória; Ordenação dos dados segundo a o valor da acurácia; Seleção dos mehores indivíduos; Cruzamento; Mutação; A população inicial será criada de forma aleatória. Podemos ver um trecho logo abaixo. for i=1:pop xnl(i) = floor(100*rand(1)); %idade 1 xn2(i) = (floor(3*rand(1))+1)*xnl(i); %idade 2 xn3(i) = floor(2*rand(1)); %sexo xn4(i) = floor(6*rand(1)); %estado civil xn5(i) = floor(414*rand(1)); %Naturalidade xn6(i) = floor(4*rand(1)); %Nacionalidade xn7(i) = floor(94*rand(1)); %Cidade Com isso é possível a identificação cada cromosso de acordo com os dados, ou seja, serão atribuído valores aleatórios aos dados. Vejamos um exemplo, de um cromossomo criado pela população aleatório. Um cromossomo seria identificado como na figura, abaixo. Idade1 Idade2 18 30 Sexo 1 Estado civil 3 Naturalidade Nacionalidade 1 199 Cidade 62 Figura 14 - Cromossomo Para a codificação de cada indivíduo, cada número, gerado será transformado em um código binário. A avaliação é uma das fases importantes pois é nela que será avaliada as condições dos indivíduos. Para isso utilizaremos a acurácia da seguinte maneira: 39 Figura 15 – Avaliação Onde C são os registros que satisfazem as condições da regra. Exemplo para o cromossomo 1, quantos registros satisfazem o curso, idade, sexo, estado civil, naturalidade, nacionalidade, cidade? P- são os registros que satisfazem o objetivo, exemplo para a regra 1, quantos registros são de Ciência da Computação. Portanto a acurácia de uma regra é dada por Acurácia igual percentual dos registros que satisfazem C então P dentre todos os registros que satisfazem P. Já a abrangência é Abrangência igual ao percentual dos registros que satisfazem C então P dentro de todos os registros que satisfazem P. O Cluster, ou seja, o agrupamento foi formado pelos respectivos grupos que representam os cursos. Cada curso gera um cluster. A avaliação dos clusters é feita de acordo com uma regra, a qual identificará o aluno pertencente ou não a cada grupo. Depois da avaliação e da definição da qualidade dos indivíduos, quando o arquivo com os dados for lido e passado por todos os processos necessários para a mineração de dados o arquivo gerado será como uma lista, então ainda será necessário uma rotina para a ordenação dos resultados, ou seja, será ordenado o resultado da acurácia. Com a separação dos clusters os dados já passaram pela fase de mineração de dados e irão para a fase final do KDD que será a pós-processamento onde será obtido a interpretação dos resultados, e a organização das informações encontradas. 40 8. CONCLUSÕES O principal objetivo deste trabalho era fazer um estudo sobre Data Mining e Algoritmo Genético. O objetivo da implementação, que foi realizada é verificar como o Algoritmo Genético Simples se comporta com o Data Mining e foi utilizado então o Perfil de Cliente, que nesse caso se encaixa melhor como o Perfil do aluno de Ciência da Computação. Esse trabalho foi extremamente complexo, por se tratar de dois assuntos atuais, e difíceis de trabalhar, porém interessantes e que vêm sendo muito utilizados. Uma outra dificuldade para a realização desse trabalho foi conseguir o banco de dados, por geralmente esses bancos conterem informações pessoais de seus clientes. Mesmo na FAJ foi muito difícil de conseguir apesar de se tratar de um trabalho de conclusão de curso da mesma, e só foi possível com a persistência e colaboração do Prof. e Orientador Silvio. Com o estudo realizado, verificou-se que existe a necessidade de utilizar algoritmos para melhorar os dados que saem da fase de Data Warehounsig e que chegam à fase de PréProcessamento, ou seja, a Seleção de Atributos e foi utilizado para isso o Algoritmo Genético Simples. A Acurácia foi utilizada como Função de Aptidão e notou-se que, para esse caso ela mostra-se muito “forte” porque a acurácia verifica se todos os campos satisfazem a regra, se algum campo não satisfizer a regra ele não fará parte no caso dos alunos de Ciência da Computação. Uma solução seria usar o número de campos que satisfazem ao invés de todos. Assim seria verificado cada cromossomo, identificando qual seria mais forte de acordo com a quantidade de campos que satisfazem a regra, ou mesmo utilizando um outro método em vez da acurácia como a escabilidade ou interpretabilidade. Notou-se também que para utilizar a acurácia a população não poderia ser aleatória porque desde o início das gerações teria que se manterem indivíduos mais aptos. Notou-se também a falta de diversificação da população, o que poderia ser resolvido com a utilização de um algoritmo próprio para isso como o Sharing, por exemplo, mas nesse caso não poderíamos mais estar classificar esse algoritmo como Algoritmo Genético Simples. 41 9. REFERÊNCIAS BIBLIOGRÁFICAS AMARAL, FERNANDA. Data Mining, Futura. Futura, 2004. (Visão sobre a Mineração de Dados e suas aplicações). BANZHAF, W; NORDIN, P.; KELLER, R. E. & FRANCONE, F. D. Genetic Programming: an introduction. ISBN 155860510X. Morgan Kaufmann, 1998. BARBIERI, CARLOS. BI-Business Intelligence Modelagem & Tecnologia, 2001. Axcel Books do Brasil. CAVICCHIO, JR., D. J. Adaptive search using simulated evolution. Doctoral dissertation, University of Michigan, Ann Arbor, MI. (University Microlms No. 25-199), 1970. DHAR, V.; STEIN, R., Seven Methods for Transforming Corporative Data into Business Intelligence, Prentice Hall, Londres, 1997. DE JONG, K. A. An Analysis of the Behavior of a Class of Genetic Adaptative Systems. PhD thesis, University of Michigan, 1975. FAYYAD, U.M.; PIATITSKY-SHAPIRO, G.; SMYTH, P.; UTHURUSAMY, R. (Eds), American Association for Artificial Intelligence, Inglaterra, 1996. FREITAS, A.A.; LAVINGTON, S. H., Mining Very LargeDatabases with parallel Processing, Kluwer, 1998. GOLDBERG, D. E. Genetic Algorithms in Search, Optimization, and Machine. earning, Addison-Wesley Publishing Company, 1989. (Algoritmo Genético e otimização). HOLSHEIMER, M.; SIEBES, A., Data Mining – The Search for Knowledge in Databases, Report CS-R9406, Amsterdam, 1991. 42 LIU, H; MOTODA, H. Feature Selection for Knowledge Discovery and Data Mining, Kluwer Academic Publishers, 1998. (Fases do processo do KDD) LUGER, GEORGE. Inteligência Artificial: Estruturas e Estratégias para a Solução de Problemas Complexos. Bookman, 2004. (A Inteligencia Artificial como solução para problemas complexos). MITCHELL, M. An introduction to genetic algorithms. Cambridge: Mit Press. 1997. (207 p.) NORVIG, Peter; RUSSEL, Stuart. Inteligência Artificial. Campus, 2004. POTTER, M. A.; DE JONG, K. Cooperative coevolution: an architecture for evolving coadapted subcomponents. In: Proceedings EVOLUTIONARY COMPUTATION, 8(1),2000, pp.1-29. 43 ANEXO 1 Tabela 2 - Curso 0 1 2 3 4 5 6 7 8 9 10 11 Curso Administração Ciência da Computação Ciências Contábeis Direito Educação Física Enfermagem Fisioterapia Letras Medicina Veterinária Nutrição Psicologia Turismo Tabela 3 – Sexo Sexo 0 Feminino 1 Masculino Tabela 4 - Estado Civil 0 1 2 3 4 5 Estado Civil Amasiado Casado Divorciado Solteiro Separado Viúvo 44 Tabela 5 – Naturalidade 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Naturalidade Imperatriz 1 de maio A dos Dourados Adamantina Aguaí Águas da Prata Águas de Lindóia Alegrete Alfenas Alterosa Alto Piqueri Alto Rio Doce Altos Americana Amparo Ananindeua Andradas Andradina Angatuba Aparecida do Norte Apiai Apucarana Aracatú Araçatuba Arapiraca Arapongas Araras Arcadas Argentina Artur Nogueira Arujá Assis Assis Chateaubriand Astorga Ataleia Avaré Barão Geraldo Barbacena Barbosa Ferraz Bariri Barra da Estiva Barra do Pirai 45 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 Barra Mansa Barretos Barueri Bastos Batatais Bauru Bebedouro Belém Belo Horizonte Benedito Leite Bernardino de Campos Bicas Boa Esperança Boa Esperança do Sul Bocaiuva Boituva Borda da Mata Botucatu Bragança Paulista Brazopolis Brotas Brumado Bueno Brandão C. do Oeste Cabo Verde Caçapava Cachoeira de Minas Caetite Caimbra Cajuru Cambé Camboriu Cambuquira Campanha Campina Lagoa Campinas Campo do Meio Campo Grande Canoinhas Capivari Caraguatatuba Caratinga Cardoso Caririaçu Carmo da Mata Carmo de Minas Carmo do Rio Claro Carnauba dos Dantas Carneirinho 46 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 Casa Branca Cascavel Castro Caxias Caxias do Sul Charqueada Cianorte Clementina Conceição Aparecida Concepcion Conchal Coração de Jesus Cordeirolopolis Corinto Cornélio Procópio Coromandel Coronel Fabriciano Cosmopolis Cosmorama Coxim Cruz Alta Cruzeiro Cruzeiro do Oeste Cruzeiro do Sul Cuiabá Curitiba Curitibanos Descalvado Diadema Divinolândia Dourados Dracena Duque de Caxias Elias Fausto Engenheiro Coelho Espírito Santo do Pinhal Estiva Gerbi Fabriciano Farias Brito Faxinal Feira de Santana Felizburgo Fernandópolis Ferraz de Vasconcelos Florai Florida Paulista Formoda do Oeste Fortaleza Franca 47 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 Franco da Rocha Franscisco Alves Galia Garça General Salgado Goiânia Grandes Rios Guaimbe Guaira Guape Guaraci Guaranésia Guarapuava Guaratinga Guaratinguetá Guareí Guarulhos Guaxupé Guimarães Guimarania Holambra Holanda Hortolândia Ibertioga Ibitinga Icó Igarapava Ilha solteita Imperatriz Indaiatuba Independência Ipatinga Ipero Iporã Ipuiuna Iretama Itabaianinha Itaberaba Itaci Itajubá Itamogi Itanhaém Itapagipe Itapetininga Itapeva Itapicuru Itapira Itapolis Itararé 48 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 Itatiba Itatinga Itaú de Minas itu Ituiutaba Itupeva Itaiporã Jaboti Jaboticabal Jacarei Jacuí Jaguariúna Jales Jandaia do Sul Jandira Janiopolis Japira Jardim Alegre Jau Jd. Novo Mundo Jesuitas João Monlevade João Pessoa Juazeiro do Norte Jundiai Junqueiropolis Juramento Juranda Jureia Kaloré Lages Leme Limeira Lindóia Lins Londrina Lupionopolis Macatuba Machado Mairiporã Manaus Mandaguari Manga Mar de Espanha Marechal Deodoro Marília Maringá Martinópolis Maua 49 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 Mineiros do Tietê Mirandópolis Mirassol Mococa Mogi das Cruzes Mogi Mirim Mogi-Guaçu Mongaguá Monte Alegre do Sul Monte Alto Monte Azul Monte Belo Monte Mor Monte Sião Montes Claros Moreilandia Morungaba Munhoz Muzambinho Natal Natércia Navegantes Nigéria Niteroi Nova Esperança Nova Friburgo Nova Lima Nova Odessa Osasco Osvaldo Cruz Ourinhos Ouro Fino Ouro Verde Padre Paraíso Palmares Palmeirais Palmeiras D Oeste Panema Paraguaçu Paraguaçu Paulista Paraná Paranacity Paranaguá Paranapanema Paranavai Passo Fundo Passos Patrocinio Pauliceia 50 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 Paulinia Paulistano Peabiru Peçanha Pedreira Pelotas Penapolis Perdizes Pereira Barreto Pilar do Sul Pindai Pindamonhangaba Pindorama Piracicaba Pirangi Pirapozinho Pirassununga Piratininga Piui Ponta Porã Poção de Pedras Poços de Caldas Pojuca Pombal Ponta Grossa Populina Porto Velho Porto Alegre Porto Ferreira Pouso Alegre Pratapolis Pres. Venceslau Presidente Alves Presidente Eptacio Presidente Prudente Promissão Prudentópolis Rancho Alegre Recife Remanso Residente Alves Resnede Resplendor Ribeirão Pires Ribeirão Preto Rio de Janeiro Rio Claro Rio das Pedras Rio de Janeiro 51 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 Rio Negrinho Rio Pardo de Minas Rolandia Ronda Alta S Bernado do Campo S. Caetano do Sul S. João do Caiua S. José do Rio Pardo S.Bento do Sapucaí S.Bernardo do Campo S.Caetano do Sul S.José do Rio Pardo S.Vicente de Minas Sacramento Salto Salto Grande Salvador Santa Santa Amelia Santa Barbara D Oeste Santa Cruz do Rio Pardo Santa Fé Santana de Parnaíba Santiago Santo Amaro Santo Andre Santo Antonio da Posse Santos São Bernardo São João da Boa Vista São José dos Campos Sao Paulo São Pedro São Sebastião do Paraíso Serra Negra Sete Lagoas Socorro Sorocaba Sumaré Suzano Taboão da Serra Taiobeiras Tambaú Tamboara Tambobril Tapejara Tapira Taquaritinga Tatuí 52 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 Taubate Telêmaco Borba Teofilo Otoni Terra Boa Terra Roxa Tietê Toledo Três Fronteiras Tres Lagoas Tupã Umuarama Unaí Urania Uruguaiana Vale Paraíso Valinhos Valparaíso Vargeão Vargem Grande Vargem Grande do Sul Vazea Paulista Vicentina Viçosa Vinhedo Vitória Volta Redonda Votuporanga Wenceslau-Bras Wervershoof Tabela 6 – Nacionalidade 0 1 2 3 Nacionalidade Argentina Brasileira Chilena Holandesa Tabela 7 – Cidade 0 1 2 3 4 5 6 7 8 Cidade Águas de Lindóia Americana Amparo Apiai Araçatuba Arcadas Areado Artur Nogueira Barão Geraldo 53 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 Bariri Bauru Bragança Paulista Campinas Capivari Casa Branca Caxias do Sul Conchal Cosmópolis Curitibanos Elias Fausto Embu Engeheiro Coelho EspÍrito Santo do Pinhal Estiva Gerbi Guaranésia Guaratinguetá Guareí Holambra Indaiatuba Itanhaém Itapetininga Itapira Itaquaquecetuba Itatiba Itobi Itu Itupeva Jacareí Jaguariuna Jd. Novo Mundo Jundiaí Limeira Lindóia Louveira Mococa Mogi das Cruzes Mogi Mirim Mogi-Guaçu Monte Alegre do Sul Monte Mor Morungaba Muzambinho Navegantes Nova Lima Nova Odessa Osasco Ouro Fino Pauliceia 54 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 Paulinia Pedreira Pilar do Sul Pinhalzinho Piracicaba Pouso Alegre Pres. Venceslau Ribeirão Preto Rio Claro Rio das Pedras Salto Santa Barbara D Oeste Santo Antonio da Posse Santos São Bernardo do Campo São João da Boa Vista São José dos Campos São Lourenço São Paulo São Pedro São Roque São Sebastião do Paraíso Serra Negra Sete Lagoas Socorro Sorocaba Sumaré Taboão da Serra Tietê Tremembé Urania Valinhos Vargem Grande do Sul Venacio Aires Vinhedo Votorantim