Ferramentas de mineração de dados

Qualquer algoritmo de mineração de dados é composto de três componentes: representação através de modelo, avaliação do modelo e método de busca. Resumidamente, o modelo deve representar limites flexíveis e suposições adequadas, de uma maneira que os padrões possam ser descobertos; o modelo deve ter validade preditiva - que pode ser baseada em validações cruzadas; então, a busca deveria otimizar os critérios de avaliação do modelo de acordo com os dados observados e a representação do modelo.

As ferramentas de mineração ou mecanismos de busca são usualmente programas ou agentes automatizados inteligentes, incorporando alguma forma de inteligência artificial em bancos de dados relacionais. Os agentes detectam padrões predefinidos e alertam o usuário sobre variações. Vários tipos de ferramentas são utilizados na mineração de dados: redes neurais, árvores de decisão, indução de regras e visualização de dados.

Redes Neurais

Redes neurais são uma solução computacional que envolve o desenvolvimento de estruturas matemáticas com a habilidade de aprendizagem. Os métodos são resultados de investigações acadêmicas para modelagem da aprendizagem do sistema nervoso. As redes neurais têm uma notável habilidade de derivar médias de dados complicados ou imprecisos e podem ser utilizadas para extrair padrões e detectar tendências que são muito complexas para serem percebidas tanto por humanos quanto por outras técnicas computacionais. Uma rede neural treinada pode ser considerada como um "expert" na categoria de informação que foi previamente para a análise. Este expert pode então ser utilizado para fornecer projeções, dadas novas situações de interesse.

Existem um grande número de problemas comerciais reais em que as redes neurais podem ser aplicadas - muitas inclusive já aplicadas com sucesso na indústria. Como as redes neurais são melhores na identificação de padrões ou tendências em dados, são próprias para a previsão e prognóstico incluindo:

     previsão de vendas;
     controle de processo industrial;
     pesquisa de consumidores;
     validação de dados;
     gerenciamento de risco;
     marketing direcionado.

As redes neurais utilizam um conjunto de elementos de processamento (ou nós) análogos aos neurônios no cérebro. Estes elementos de processamento são interconectados em uma rede que pode identificar padrões nos dados uma vez expostos aos mesmos, ou seja, a rede aprende através da experiência, tais como as pessoas. Esta característica distingue redes neurais de tradicionais programas computacionais, que simplesmente seguem instruções em uma ordem seqüencial fixa.

Os problemas na utilização de redes neurais foram registrados por Arun Swami da Silicon Graphics Computer Systems. Redes neurais têm sido utilizadas com sucesso na classificação mas têm o revés de que a rede resultante é vista como um caixa-preta e nenhuma explicação dos resultados é dada. Esta falta de explicação inibe a confiança, aceitação e aplicação dos resultados. Swami também notou um problema no fato de que redes neurais necessitam de um grande tempo de aprendizagem que se torna pior à medida que o volume de dados aumenta.

Um material de referência mais completa sobre redes neurais pode ser encontrado na área de Redes Neurais do GSI.

     Indução - Um banco de dados é um armazém de informações, mas o mais importante é a informação que pode ser inferida deste. Existem duas técnicas principais de inferência disponíveis: dedução e indução.

     Dedução - É uma técnica de inferência de informação que é uma conseqüência lógica da informação no banco de dados, tal como o operador join aplicado em duas tabelas relacionais onde o primeiro diz respeito aos empregados e departamentos e o segundo, departamentos e gerentes - infere em um relação entre empregados e gerentes.

     Indução - Foi descrita anteriormente como um técnica de inferência de informações que é generalizada através do banco de dados, tal como exemplo mencionado acima para inferir que cada empregado tem um gerente. Este é um nível de informação ou conhecimento alto do ponto de vista de que é uma regra geral sobre objetos no banco de dados. O banco de dados é vasculhado por padrões ou regularidades.

A indução tem sido utilizada das seguintes maneiras na mineração de dados:

     Árvores de decisão - Árvores de decisão são simples representações de conhecimento e classificam exemplos em um número finito de classes. Os nós são rotulados com nomes de atributos, os arcos são rotulados com possíveis valores para este atributo e as folhas são rotuladas com diferentes classes. Objetos são classificados através de um caminho percorrendo a árvore - seguindo os arcos que contêm valores que correspondem a atributos no objeto.

     Indução de regras - Através de um sistema de indução de regras será gerado um conjunto de condições não-hierárquicas, que será utilizado para prever valores em novos itens de dados. Certas aplicações de software tendem a avaliar e refinar o conjunto de regras através da seleção das melhores regras e evitam certas regras. As regras utilizadas para a predição são mais gerais e mais poderosas do que as árvores de decisão, utilização florestas de predição (com várias árvores de decisão parciais) com escalas estendidas de valores. Estes modelos preditivos são totalmente transparentes e provêm explanações completas para suas predições.

Um companhia de cartões de crédito, por exemplo, pode ter registros de consumidores contendo descrições ou atributos. Com histórico de crédito conhecido, os registros pode ser rotulados/classificados como bons médios ou ruins. Uma técnica de indução pode produzir um modelo de classificação simbólicaque gera uma regra estabelecendo "se um portador de cartão ganha >= $25.000, tem entre 45-55 anos de idade, e mora em um determinado CEP, então o portador do cartão tem um bom risco de crédito.

     Análise de grupos - Em um ambiente de aprendizagem não supervisionada, o sistema deve descobrir suas próprias classes e uma maneira de fazê-lo é agrupar os dados em um banco de dados. O primeiro passo consiste na descoberta de subconjuntos de objetos relacionados e então encontrar as descrições, tais como D1, D2, D3, etc. - cada uma das quais descrevendo um destes conjuntos.

O agrupamento e a segmentação basicamente particionam o banco de dados de forma que cada partição ou grupo sejam similares de acordo com algum critério ou métrica. O agrupamento de acordo com alguma similaridade é um conceito que aparece em muitas disciplinas. Se uma medida de similaridade é disponível, existe um grande número de técnicas para a formação de grupos. A associação aos grupos pode ser baseada em um nível de similaridade entre membros e através disso, as regras de associação podem ser definidas. Outras solução é construir um conjunto de funções que mede alguma propriedade das partições. Esta última solução resulta no que chamamos de taxa de segmentação ótima.

Muitas aplicações de mineração de dados utilizam o agrupamento de acordo com a similaridade para segmentar uma base de clientes/consumidores. O agrupamento de acordo com a otimização de um determinado conjunto de funções é utilizado nas análises de dados, tal como na determinação de tarifas de seguros os clientes podem ser segmentados de acordo com um número de parâmetros e a segmentação de tarifas ótima pode ser alcançada.

O agrupamento/segmentação em bancos de dados são os processos de separar o conjunto de dados em componentes que refletem um padrãos consistente de comportamento. Uma vez que os padrões tenham sido estabelecidos, estes podem ser utilizados para "desmontar" os dados em subconjuntos mais compreensíveis e também podem prover subgrupos de uma população para futuras análises - o que é importante quando lidando com grandes bancos de dados. Por exemplo, um banco de dados poderia ser utilizado para a geração de perfis para marketing direcionado onde a resposta prévia às campanhas de mala direta geraria um perfil das pessoas que responderam; a partir disso, faz-se a previsão de resposta e filtra-se a lista de mala direta para obter o melhor resultado.

 Um exemplo prático.

 


Associação SoftwareLivre

A Associação SoftwareLivre.org (ASL) é uma associação civil sem fins-lucrativos, com sede em Porto Alegre/RS que reúne empresários, profissionais liberais, estudantes e servidores públicos, estabelecendo relações com os mais diversos setores da sociedade como o poder público, universidades, empresas, grupos de usuários, hackers e ONGs. A ASL tem por principal objetivo tornar o software livre amplamente incluído na sociedade, propiciando espaço de discussão, apoio, fomento e organização de iniciativas nas mais diversas áreas relacionadas. - Site oficial da associação