ALGORITMOS GENÉTICOS EM MINERAÇÃO DE DADOS – UMA APLICAÇÃO NA CLASSIFICAÇÃO DE MUNICÍPIOS BRASILEIROS A PARTIR DE DADOS SÓCIO-ECONÔMICOS Claudio Cezar C. Almeida Departamento de Engenharia Elétrica, PUC-RIO, Rio de Janeiro, RJ, Brasil [email protected] Resumo Este trabalho aborda a utilização de algoritmos genéticos no processo de mineração de dados, na descoberta de regras em uma base de dados. É utilizada a ferramenta Rule Evolver, desenvolvida pelo Núcleo de Inteligência Computacional Aplicada da Pontifícia Universidade Católica do Rio de Janeiro e uma base de dados relativa a um conjunto de municípios brasileiros, representados por um conjunto de atributos sócio-econômicos, organizada em cinco classes, definidas após processo de clusterização realizado através de um Mapa de Kohonen. Palavras-chave: Algoritmos genéticos, mineração de dados INTRODUÇÃO Uma das questões de maior relevância associada ao lidar com grandes massas de dados é a classificação dos mesmos, ou seja, poder organizá-los em grupos distintos e significativos de modo a poder extrair um sentido deste agrupamento. A classificação, ato de separar e nomear as aparências, é uma atividade tão antiga quanto a própria humanidade e, cada vez mais, enraizada em sua vivência. Mais importante ainda que simplesmente agrupar e classificar indivíduos é identificar o que caracteriza a presença de um indivíduo como pertencente a um grupo ou outro. O processo de descoberta de conhecimento em banco de dados (Knowledge Discovery Database – KDD) envolve diversas fases: definição do problema; seleção dos dados; préprocessamento dos dados; codificação dos dados; enriquecimento dos dados; mineração dos dados (Data Mining) e interpretação dos dados. Este trabalho aborda uma etapa do processo de mineração de dados, que é a descoberta de regras que caracterizem o comportamento de indivíduos pertencentes a um determinado grupo. A busca pelas possíveis combinações válidas de atributos e valores para caracterizar um determinado grupo de indívíduos torna-se um campo bastante propício à utilização dos algoritmos genéticos. Para um algoritmo genético, não há a necessidade de descrever como se encontrar uma boa solução. Estas soluções podem ser encontradas de forma paralela, avaliando-se e percebendo-se em que direção devem estar localizadas as melhores soluções, ou soluções potenciais. Conforme vemos em [2], o conceito de algoritmo genético pode ser aplicado à área de mineração de dados através da regra de associação. Essa regra é representada em um cromossoma conforme vemos em (1), onde os itens ou atributos do banco de dados estão representados simbolicamente como condições para que a conclusão da regra seja verdadeira. Ao utilizar-se destas regras para representar indivíduos ou grupos de indivíduos em um banco de dados pode-se então procurar padrões que caracterizem um banco de dados através da evolução genética. I. DESCRIÇÃO DO PROBLEMA A. Base de dados utilizada A base de dados utilizada foi construída utilizando-se dados reais obtidos a partir do Atlas do Desenvolvimento Humano do PNUD, construído com base no Censo Demográfico 2000. Deste universo de informações foi extraído um conjunto de dados formado pelos municípios da Região Nordeste do Brasil e caracterizado, inicialmente por um conjunto de 16 atributos. Posteriomente, dado o grande volume de dados (1787 municípios) e as limitações operacionais do experimento, foi necessária a utilização de uma abordagem redutora (2ª etapa do roteiro de trabalho), passando a utilizar apenas oito atributos para a clusterização. B. O Rule Evolver A ferramenta Rule Evolver, desenvolvida pelo Núcleo de Inteligência Computacional Aplicada da Pontifícia Universidade Católica do Rio de Janeiro, baseia-se em um modelo de Algoritmo Genético que pressupõe a evolução de regras cuja estrutura geral encontra-se descrita em (1). Os predicados Ci, i=1,..., n são condições envolvendo atributos denominados preditivos e a conclusão da regra envolve um atributo denominado objetivo que contém um valor fixo, não manipulado pelo algoritmo genético. Os atributos preditivos podem ser classificados quanto à natureza de seu domínio em atributos quantitativos ou atributos categóricos. Enquanto atributos quantitativos devem possuir domínios caracterizados por intervalos contínuos de valores, os domínios dos atributos categóricos devem ser constituídos por conjuntos discretos e finitos de valores. SE C1 E C2 E ... E Cn ENTÃO Conclusão (1 ) A representação utilizada pelo algoritmo genético, descrita na figura (1), pressupõe que cada gene seja associado a um atributo preditivo e que compreenda dois valores reais: um valor inferior e um valor superior. Para atributos quantitativos, tais valores denotam o intervalo em que o respectivo atributo se encontra inserido. Para atributos categóricos, apenas o campo referente ao valor inferior é utilizado, devendo conter o código de um dos valores possíveis para o atributo em questão. recompensa pela avaliação são apresentados em [2]. O Rule Evolver possibilita a visualização gráfica do desempenho do algoritmo na geração de regras para uma determinada configuração. As figuras 5, 6 e 7 apresentam exemplos dos gráficos disponíveis. II. EXPERIMENTOS REALIZADOS A. Roteiro A execução do trabalho seguiu o roteiro apresentado na figura 1, com as seguintes etapas: 1. Extração dos dados: geração da base de dados através de recursos disponíveis no Atlas do Desenvolvimento Humano no Brasil. 2. Definição dos atributos relevantes através da construção de uma Matriz de Correlação no SPSS, onde foram identificados os oito atributos para serem utilizados no processo de clusterização. 3. Clusterização dos dados no Matlab, utilizando o Mapa de Kohonen, com os atributos definidos no item 2. 4. Extração das regras de classificação utilizando a ferramenta Rule Evolver. Nesta etapa foram realizados diversos experimentos com a configuração apresentada na figura 3, visando avaliar a acurácia e a abrangência das regras geradas para cada uma das combinações de função de avaliação e recompensa disponíveis no Rule Evolver, mostradas na figura 8. Atlas Desenvolvimento Humano PNUD Max Min 1 1 Atributo 1 Min 2 Max … 2 Atributo 2 Min n Extração dos dados Max n SPSS Definição dos atributos relevantes Atributo n Fig. 1 Representação do cromossoma Os operadores genéticos disponíveis no sistema [2] são crossover de um ponto, crossover de dois pontos, crossover uniforme, crossover de média, mutação simples, e mutação “don’t care”. O critério de seleção de operadores baseia-se na interpolação linear das probabilidades de ocorrência de cada operador, ajustada em função da geração corrente [2]. Tais probabilidades são parametrizadas pelo usuário do sistema conforme a aplicação. O Rule Evolver dispõe de 10 funções de avaliação passíveis de escolha, pelo usuário da ferramenta. Conforme experimentos anteriores [2], pode-se constatar uma melhor adequação de determinadas funções de avaliação para determinados tipos de base de dados. Neste trabalho foram utilizadas sete das 10 funções disponíveis no Rule Evolver: Número Atributos, Distãncia Ótima, Recompensa Atributos, Cbayesianos, Número Registros, FAcurácia e FAbrangência. A descrição de cada uma dessas funções e dos tipos de Matlab Clusterização usando Mapa de Kohonen Rule Evolver Extração de regras Fig. 1 - Fluxo de atividades para a realização do trabalho B. Configurações A base de dados utilizada compunha-se de 1787 registros, divididos em cinco grupos (clusters), definidos após o processo de clusterização. O cluster 1 contém 431 registros, o cluster 2 contém 248 registros, o cluster 3 contém 433 registros, o cluster 4 contém 249 registros e o cluster 5 contém 326 registros. Os experimento no Rule Evolver foram executados para geração de regras que caracterizassem os registros pertencentes ao cluster 1. Os atributos considerados peçlo Rule Evolver no processo de descoberta de regras são apresentados na figura 2. III. RESULTADOS OBTIDOS A. Regras encontradas Para cada uma das combinações utilizadas na tabela apresentada na figura 3, o Rule Evolver gerou um conjunto de regras, cada regra contendo os atributos considerados e os seus limites máximo e mínimo no contexto da regra. Além disso, junto com cada regra são apresentados os valores da acurácia e abrangência da regra. Um exemplo de regra gerada pelo Rule Evolver é apresentado na figura 4. Fig. 2 - Definição dos atributos usados pelo Rule Evolver Número de Número de Tamanho da rodadas: 50 gerações: 100 População: 200 Normalização Mínimo: 1 Máximo: 1000 linear Inicialização da A partir do Banco de Dados População: (30% da população) Elitismo: 1 Sementes: 0 Taxa de Template: 30% Crossover de 1 ponto Taxa: 65% Probabilidade Probabilidade inicial: 30% Final: 10% Crossover 2 pontos Taxa: 65% Probabilidade Probabilidade inicial: 20% Final: 10% Crossover de Média Taxa: 65% Probabilidade Probabilidade inicial: 30% Final: 10% Crossover Uniforme Taxa: 65% Probabilidade Probabilidade inicial: 30% Final: 10% Mutação Básica Taxa: 8% Probabilidade Probabilidade Inicial: 10% Final: 30% Mutação Don´t Care Taxa: 0% Probabilidade Probabilidade Inicial: 0 % Final: 0% Fig. 3 – Configurações utilizadas para os experimentos Fig. 4 – exemplo de regra gerada pelo Rule Evolver FIG. 5 – EXEMPLO DE GRÁFICO DE ACURÁCIA E ABRANGÊNCIA FIG. 6 – EXEMPLO DE GRÁFICO DE DESEMPENHO Sem recompensa Acurácia Abrangência Acurácia e/ou Abrangência 100 100 100 100 99,68 99,77 99,70 99,71 100 100 100 100 99,77 99,70 100 100 IV. CONCLUSÕES FIG. 7 – EXEMPLO DE GRÁFICO DE MÚLTIPLO DESEMPENHO B. Tabela de Avaliação de desempenho MELHOR MÉDIA MELHOR FUNÇÃO DE Acurácia Abragência Acurácia Abragência AVALIAÇÃO (%) (%) (%) (%) Número Atributos Sem recompensa Acurácia Abrangência Acurácia e/ou Abrangência Distância-Ótima Sem recompensa Acurácia Abrangência Acurácia e/ou Abrangência Recompensa Atributos Sem recompensa Acurácia Abrangência Acurácia e/ou Abrangência Cbayesianos Sem recompensa Acurácia Abrangência Acurácia e/ou Abrangência Número Registros Sem recompensa Acurácia Abrangência Acurácia e/ou Abrangência Facurácia Sem recompensa Acurácia Abrangência Acurácia e/ou Abrangência FAbrangência FUNÇÃO 1 100 100 100 100 99,65 99,66 99,71 99,63 100 100 100 100 99,77 99,52 8,20 0,23 100 100 100 100 FUNÇÃO 2 100 100 100 100 99,77 100 100 100 99,70 99,77 100 0,23 FUNÇÃO 3 100 100 100 100 99,66 99,67 99,71 99,71 100 100 100 100 99,65 99,63 99,67 99,66 100 100 100 100 99,67 99,69 99,67 99,61 100 100 100 100 2,98 1,9 99,65 99,68 100 100 100 100 FUNÇÃO 4 100 100 100 100 100 100 100 100 100 100 99,77 100 FUNÇÃO 5 100 100 100 100 FUNÇÃO 6 100 100 100 100 FUNÇÃO 7 100 100 100 100 1,16 0,46 100 100 Analisando-se as condições do experimento e os resultados obtidos, pode-se concluir que: 1. Em geral, o algoritmo apresentou resultados muiito próximos para as funções de avaliação utilizadas. As exceções foram a função de avaliação Distância-Ótima, que apresentou baixos valores para as recompensas Abrangência e Acurácia e/ou Abrangência e a função Facurácia, que apresentou baixos valores para as recompensas Sem Recompensa e Acurácia. 2. A utilização do Banco de dados como instrumento para inicialização da população possibilitou melhor desempenho ao algoritmo. 3. Nos experimentos considerados, foram geradas regras que, apesar de apresentarem alta acurácia e abrangência, ainda apresentavam muita semelhança entre si, tornando necessário um trabalho de ajuste posterior para aperfeiçoar as regras geradas. 4. O bom conhecimento da natureza dos dados é fator relevante na hora de estabelecer os valores dos limites dos atributos considerados. 5. O Rule Evolver mostrou-se uma ferramenta muito útil, versátil e poderosa para a descoberta de regras no processo de mineração de dados. Como sugestão para trabalhos futuros está a idéia de integrar o Rule Evolver a uma ferramenta de pré-processamento de dados, de modo a tornar o processo de descoberta de conhecimento mais rápido e confiável. Sugere-se também um aperfeiçoamento de sua interface para torná-la mais amigável, possibilitando sua utilização mais ampla. REFERÊNCIAS BIBLIOGRÁFICAS [1] [2] Freitas, Alex A, Data Mining and Knowledge Discovery with Evolutionary Algorithms, New York:Springer-Verlag. Pereira Lopes, Carlos Henrique, Classificação de registros em Banco de Dados por evolução de regras de associação utilizando algoritmos genéticos, Tese de Mestrado, PUC-Rio, 1999