Agentes Inteligentes e KDD (Parte 2-3) 1


Uso de Agentes Inteligentes no Processo de Descoberta de Conhecimento em Base de Dados

Em continuação a primeira parte desse artigo agora iremos falar como ocorre o processo de Definição e Compreensão do Domínio e como pode funcionar o processo de Seleção e Transformação dos dados apoiada por Agentes.

Definição e Compreensão do Domínio

A definição e compreensão do domínio da aplicação na maioria dos casos é a etapa inicial do processo de KDD. Consiste no entendimento dos limites e escopo da aplicação de onde será retirado o conhecimento necessário para a tomada de decisão, serão identificados os requisitos para a escolha do tipo de conhecimento a descobrir (associação, clusterização entre outros), os problemas importantes a serem solucionado, o objetivo do usuário, e incorporado os conhecimentos já conhecidos.

Em alguns casos no período de execução dessa etapa já é pré-existente um repositório de dados como um Data Warehouse, em outras, as decisões tomadas nessa fase irão gerar o repositório necessário para a analise, como os Data Mart.

Essa etapa é executada por Agentes Humanos geralmente Especialistas do Domínio daquela aplicação, pessoas com sólidos conhecimentos sobre o tema foco onde será aplicado o Data Mining. Pode ser realizada em conjunto com Engenheiros do Conhecimento {ref:danielroy} que poderá auxiliar na transferências das inferências do especialista em regras.

Após o domínio da aplicação ter sido entendido será dado inicio a seleção de dados como veremos a seguir.

Seleção dos Dados

Após a definição do domínio uma etapa crucial é localizar as fontes de dados cuja informação necessária para a realização do processo de KDD se encontram. Nessa etapa há a preocupação em unificar os dados pertinentes ao domínio e quais dados devem ser levados em conta para a descoberta de conhecimento e.g. Se o objetivo é fazer a analise de crédito para clientes, o histórico de movimentações e informações de débitos em aberto devem ser considerados. A união desses dados normalmente ira dar origem ao Data Mart ou ao Data Warehouse propriamente dito.

Segundo William H. Inmon reconhecido como o pai do Data Warehouse (DW)} “…um Data Warehouse é uma coleção de dados orientado por assuntos, integrados, variantes no tempo e não voláteis, que tem por objetivo dar suporte aos processos de tomada de decisão.”, já os Data Marts podem ser considerados sub-conjunto de dados dos DW formando assim massa de dados menores orientados por assuntos focalizado em determinada área.

Os Agentes Inteligentes fornecem uma maneira flexível de distribuir o processamento otimizadamente entre servidores de DW, aprimorando os recursos de extração, transformação e carga das informações. Essa abordagem é conhecida como “Agentes de Armazém” e pode ser vista em {ref: db2dwe}. Tais Agentes monitoram comandos de seu respectivo “warehouse server” e então repassam esses comandos a base de dados alvo Veja figura {agentdb2}.

 

db2dbstb

agentdb2: Agentes de Armazém

Uma informação interessante nessa etapa é que os dados a serem analisados podem ainda não existir e devem ser armazenados assim que os eventos acontecerem. Neste caso o uso de Agentes pode ajudar devido ao seu suporte para transações on-line. Quando novos dados forem adicionados na base de dados, os Agentes podem enviar eventos ao repositório principal fazendo com que essa nova informação possa ser avaliada junto com os dados já minerados. Esse tipo de automação utiliza-se de triggers e é conhecido como “active data mining” {ref:activedm}.

Organizações possuem diferentes repositórios de dados dispostos geograficamente distantes, que podem abrigar diversas informações importantes sobre o negócio da empresa e que não podem ficar de fora da mineração dos dados. Nestes casos onde as informações se encontram distribuídos, existem duas opções, transferir os dados até o repositório central para serem minerados ou utilizar-se de uma arquitetura usando Agentes Inteligentes para minerar esses dados independentemente e assim gerar conhecimentos que serão combinados com os múltiplos repositórios de dados {ref:distributed} (veja figura branch_database). O emprego desse tipo de Agente para minerar dados de forma distribuída requer conhecimento de todos os diferentes repositórios e habilidade de combinar parte dos resultados encontrados em resultados únicos {ref:multidatabase}.

 

branch_database

branch_database: Dados distribuídos

Transformação

Após a união dos dados de diversas fontes, são comum a ocorrência de registros duplicados, erros e ausência de valores. Por esse motivo é necessária a limpeza, preparação e enriquecimento desses dados. Se estima que essa etapa é a mais demorada de todo o processo de descoberta de conhecimento, por envolver a análise repetitiva de informações e julgar valores consistentes para as possíveis inconsistências.

O processo de limpeza ocorre com analise dos dados a fim de encontrar e eliminar valores duplicados, dados incompletos ou inconsistentes considerados desnecessários, manter esse tipo de informação pode impactar na performance e prejudicar de alguma outra forma o processamento no futuro.

Já o processo de enriquecimento consiste em agregar informações externas aos atributos que contém ruídos nos seus valores, atribuindo-lhes valores consistentes. Neste caso também existe a possibilidade de valores ausentes devido a erros na entrada de dados, sendo assim, critérios para tratar esse tipo de atributo são estabelecidos.

A preparação dos dados tem como objetivo formatar-los de forma a eliminar problemas específicos que dependem do algoritmo que será executado na próxima etapa de mineração dos dados. A preparação é necessária uma vez que cada algoritmo a ser aplicado como arvores de decisões, algoritmo genético ou redes neurais exigem dados estruturados de maneira diferente. Atributos devem ser tratados de forma equivalentes, casos estejam em escalas diferentes eles devem ser normalizados, algumas vezes faz-se necessário gerar índices para melhor representar a relação entre dois ou mais atributos ou até mesmo criar variáveis binárias sobre esses atributos.

Os Agentes podem ajudar neste processo de diferentes maneiras, sua capacidade de encapsular a complexabilidade das tarefas e aprender com os dados, os permite ficarem mais aptos a medida que vão analisando as informações. Esse comportamento exige estudo e utilização de técnicas avançadas que incorporem características emocionais a estes Agentes, a fim de possibilitar sua aprendizagem através de experiências, exemplos ou algum tipo de feedback por parte do especialista. Com isso espera-se que de forma autônoma eles possam medir o cumprimento de suas metas (e.g. limpeza ou enriquecimento) optando por solicitar ajuda a outros Agentes ou até mesmo ao especialista do domínio quando necessário {ref:overload}.

Incorporar emoções em Agentes é profundamente discutido graças ao trabalho de pesquisadores como Hull C., Ortony A., Damásio A. e Goleman D. {ref:gudwin} {ref:emocoes} além de serem conceitos muito utilizado na implementação de Agentes denominados Agentes Cognitivos.

Os Agentes Cognitivos podem raciocinar sobre as ações tomadas no passado e planejar ações a serem tomadas no futuro, possui objetivo e planos explícitos os quais permitem atingir seu objetivo final além de controle sobre seu próprio comportamento não se limitando a reagir apenas a estímulos exteriores. Também atuam sobre seu ambiente e podem utilizá-lo como meio de comunicação com outros Agentes, o que torna o repositório de dados um excelente ambiente para esse tipo de agente.

O objetivo da seleção de atributo é selecionar os atributos mais importante dado determinado domínio, eliminando aqueles não relevantes ou redundantes que poderão de alguma forma prejudicar o desempenho do algoritmo aplicado, exigindo maior tempo de processamento e dificultando a compreensão das hipóteses geradas.

Na maioria dos casos, os algoritmos de Aprendizagem de Maquina ficam confusos com muitos atributos e constroem classificadores com pouca utilidade, assim, é importante utilizar métodos para selecionar atributos relevantes {ref:baranauskas}.

Essa etapa pode ser realizada com o apoio do especialista do domínio, uma vez que, ao remover um atributo potencialmente útil para o modelo final, a qualidade do conhecimento extraído pode diminuir consideravelmente {ref:congresso}. Neste aspecto os Agentes podem abrigar métodos para seleção de atributos focalizado em encontrar atributos importantes segundo algum critério de relevância (Veja figura selecao_atributo).

 

selecao_atributo

selecao_atributo: SMA como apoio a seleção de atributos.

Essa fase ira reduzir a dimensão de um conjunto de dados a serem analisados

mantendo os atributos importantes para análise do domínio e permitindo uma maior

que a próxima etapa (Mineração de Dados) ocorra com menor esforço e melhor qualidade.

Na próxima semana iremos concluir este artigo falando sobre como funciona o processo de Mineração de Dados e Interpretação.

Até a próxima semana.

Eduardo Gonçalves da Costa

Últimos 5 artigos de Eduardo Costa

Sobre Eduardo Costa

De Campinas-SP, bacharel em Sistema de Informação pela Anhanguera Educacional e pós graduado no curso de MBA em Gestão de Projetos e Metodologia do Ensino Superior. Atualmente trabalha como arquiteto e desenvolvedor Java em empresa de desenvolvimento de software de suporte a tomada de decisão, além de ministrar aulas de Orientação a Objeto, Linguagem Java e XML. Já atuou como líder técnico, coordenador de produto e analista de negócios.

Deixe uma resposta

Um pensamento em “Agentes Inteligentes e KDD (Parte 2-3)