Data mining

Da Thinkfn

Data mining é o processo de explorar grandes quantidades de dados à procura de padrões consistentes, como regras de associação ou sequências temporais, para detectar relacionamentos sistemáticos entre variáveis, detectando assim novos subconjuntos de dados.

Esse é um tópico recente em ciência da computação mas utiliza várias técnicas da estatística, recuperação de informação, inteligência artificial e reconhecimento de padrões.

Visão geral

O Data mining é formado por um conjunto de ferramentas e técnicas que através do uso de algoritmos de aprendizagem ou classificação baseados em redes neurais e estatística, são capazes de explorar um conjunto de dados, extraindo ou ajudando a evidenciar padrões nestes dados e auxiliando na descoberta de conhecimento. Esse conhecimento pode ser apresentado por essas ferramentas de diversas formas: agrupamentos, hipóteses, regras, árvores de decisão, grafos, ou dendrogramas.

O ser humano sempre aprendeu observando padrões, formulando hipóteses e testando-as para descobrir regras. A novidade da era do computador é o volume enorme de dados que não pode mais ser examinado à procura de padrões em um prazo de tempo razoável. A solução é instrumentalizar o próprio computador para detectar relações que sejam novas e úteis. O data mining surge para essa finalidade e pode ser aplicado tanto para a pesquisa cientifica como para impulsionar os lucros de uma empresa madura, inovadora e competitiva.

Diariamente as empresas acumulam grande volume de dados nos seus ERPs. São dados brutos que dizem quem comprou o que, onde, quando e em que quantidade. É informação vital para o dia-a-dia da empresa. Se fizermos estatística ao final do dia para repor stocks e detectar tendências de compra, estaremos a praticar business inteligence (BI). Se analisarmos os dados com estatística de modo mais refinado, à procura de padrões de vinculações entre as variáveis registradas, então estaremos fazendo data mining. Procuramos com o data mining conhecer melhor os clientes, os seus padrões de consumo e motivações. O data mining resgata em organizações grandes o papel do dono atendendo no balcão e conhecendo a sua clientela. Através do data mining, esses dados agora podem agregar valor às decisões da empresa, sugerir tendências, desvendar particularidades dela e de seu meio ambiente e permitir acções melhor informadas aos seus gestores.

Pode-se então diferenciar o business inteligence (BI) do data mining como dois patamares distintos de actuação. O primeiro visa obter a partir dos dados operativos brutos, informação útil para ajudar na tomada de decisão nos escalões médios e altos da empresa. O segundo busca subsidiar a empresa com conhecimento novo e útil acerca do seu meio ambiente. O primeiro funciona no plano táctico, o segundo no estratégico.

Etapas do data mining

Os passos fundamentais de um data mining bem sucedido a partir de fontes de dados (bases de dados, relatórios, logs de acesso, transacções, etc.) consistem de uma limpeza (consistência, preenchimento de informações, remoção de ruído e redundâncias, etc.). Disto nascem os repositórios organizados (Data Marts e Data Warehouses).

É a partir deles que se podem seleccionar algumas colunas para passarem pelo processo de mineração. Tipicamente, este processo não é o final da história: de forma interactiva e frequentemente usando visualização gráfica, um analista refina e conduz o processo até que os padrões apareçam. Observe que todo esse processo parece indicar uma hierarquia, algo que começa em instâncias elementares (embora volumosas) e termina num ponto relativamente concentrado.

Encontrar padrões requer que os dados brutos sejam sistematicamente "simplificados" de forma a desconsiderar aquilo que é específico e privilegiar aquilo que é genérico. Faz-se isso porque não parece haver muito conhecimento a extrair de eventos isolados. Uma loja da sua rede que tenha vendido a um cliente uma quantidade impressionante de um determinado produto numa única data pode apenas significar que esse cliente em particular procurava grande quantidade desse produto naquele momento exacto. Mas isso provavelmente não indica nenhuma tendência de mercado.

Localizando padrões

Padrões são unidades de informação que se repetem. A tarefa de localizar padrões não é privilégio do data mining. O cérebro dos seres humanos utiliza processos similares, pois muito do conhecimento que temos em nossa mente é, de certa forma, um processo que depende da localização de padrões. Para exemplificar esses conceitos, vamos propor um breve exercício de indução de regras abstratas. Nosso objetivo é tentar obter alguma expressão genérica para a seguinte sequência:

Sequência original: ABCXYABCZKABDKCABCTUABEWLABCWO

Observe atentamente essa seqüência de letras e tente encontrar alguma coisa relevante. Veja algumas possibilidades:

Passo 1: A primeira etapa é perceber que existe uma sequência de letras que se repete bastante. Encontramos as sequências "AB" e "ABC" e observamos que elas ocorrem com frequência superior à das outras sequências.

Passo 2: Após determinarmos as sequências "ABC" e "AB", verificamos que elas segmentam o padrão original em diversas unidades independentes:

"ABCXY"
"ABCZK"
"ABDKC"
"ABCTU"
"ABEWL"
"ABCWO"

Passo 3: Fazem-se agora induções, que geram algumas representações genéricas dessas unidades:

"ABC??" "ABD??" "ABE??" e "AB???",

onde '?' representa qualquer letra

No final desse processo, toda a seqüência original foi substituída por regras genéricas indutivas, o que simplificou (reduziu) a informação original a algumas expressões simples. Esta explicação é um dos pontos essenciais do data mining, como se pode fazer para extrair certos padrões de dados brutos. Contudo, mais importante do que simplesmente obter essa redução de informação, esse processo permite.nos gerar formas de predizer futuras ocorrências de padrões.

Exemplo prático

Vamos observar aqui apenas um pequeno exemplo prático do que podemos utilizar com as expressões abstratas genéricas que obtivemos. Uma dessas expressões nos diz que toda a vez que encontramos a sequência "AB", podemos inferir que iremos encontrar mais três caracteres e isto completaria um "padrão". Nesta forma abstrata ainda pode ficar difícil de perceber a relevância deste resultado. Por isso vamos usar uma representação mais próxima da realidade.

Imagine que a letra 'A' esteja a representar um item qualquer de um registro comercial. Por exemplo, a letra 'A' poderia significar "aquisição de pão" numa transacção de supermercado. A letra 'B' poderia, por exemplo, significar "aquisição de leite". A letra 'C' é um indicador de que o leite que foi adquirido é do tipo desnatado. É interessante notar que a obtenção de uma regra com as letras "AB" quer dizer, na prática, que toda vez que alguém comprou pão, também comprou leite. Esses dois atributos estão associados e isto foi revelado pelo processo de descoberta de padrões.

Esta associação já nos fará pensar em colocar "leite" e "pão" mais próximos um do outro no supermercado, pois assim estaríamos a facilitar a aquisição conjunta desses dois produtos. Mas a coisa pode ir além disso, bastando continuar nossa exploração da indução.

Suponha que a letra 'X' signifique "manteiga sem sal", e que a letra 'Z' signifique "manteiga com sal". A letra 'T' poderia significar "margarina". Parece que poderíamos tentar unificar todas essas letras através de um único conceito, uma ideia que resuma uma característica essencial de todos esses itens. Introduzimos a letra 'V', que significaria "manteiga/margarina", ou "coisas que passamos no pão". Fizemos uma indução orientada a atributos, substituímos uma série de valores distintos (mas similares) por um nome só.

Ao fazer isso estamos perdendo um pouco das características dos dados originais. Após essa transformação, já não sabemos mais o que é manteiga e o que é margarina. Essa perda de informação é fundamental na indução e é um dos factores que permite o aparecimento de padrões mais gerais. A vantagem desse procedimento é de que basta codificar a sequência original substituindo a letra 'V' em todos os lugares devidos. Assim fica essa sequência transformada:

ABCVYABCVKABDKCABCVUABEWLABCVO

Daqui, o sistema de data mining irá extrair, entre outras coisas, a expressão "ABCV", que irá revelar algo muito interessante:

A maioria dos usuários que adquiriram pão e leite desnatado 
também adquiriram manteiga ou margarina.

De posse desta regra, fica fácil imaginar uma disposição nas prateleiras do supermercado para incentivar ainda mais este hábito. Em linguagem mais lógica, pode-se dizer que pão e leite estão associados (implicam) na aquisição de manteiga, isto é, Pao, Leite \rightarrow Manteiga.

Exemplos Reais

Wal-Mart

Embora recente, a história do data mining já tem casos bem conhecidos. O mais divulgado é o da cadeia Wal-Mart, que identificou um hábito curioso dos consumidores. Ao procurar eventuais relações entre o volume de vendas e os dias da semana, o software apontou que, às sextas-feiras, as vendas de cervejas cresciam na mesma proporção que as de fraldas. Crianças a beber cerveja? Não. Uma investigação mais detalhada revelou que, ao comprar fraldas para seus bebés, os pais aproveitavam para abastecer as reservas de cerveja para o final de semana.

Links relevantes

Software

  • Enterprise Miner, ferramenta de data mining
  • Microsoft SQL Server, ferramenta originalmente de base de dados que a cada nova versão tem ganho novas funcionalidades de Business Intelligence. Possui 8 algorítmos na versão do SQL Server 2008 e sua plataforma é extensível para integração de outros algorítmos desenvolvidos.
  • IlliMine Projeto de data mining escrito em C++.
  • InfoCodex Aplicação de data mining com uma base de dados linguística.
  • KDB2000 Uma ferramenta livre em C++ que integra acesso à bases de dados, pre-processamento, técnicas de transformação e um vasto conjunto de algoritmos de data mining.
  • KXEN Ferramenta de data mining comercial, utiliza conceitos do Profesor Vladimir Vapnik como Minimização de Risco Estruturada (Structured Risk Minimization ou SRM) e outros.
  • KNIME Plataforma de data mining aberta que implementa o paradigma de pipelining de dados. Baseada no eclipse
  • LingPipe API em Java para data mining em textos distribuída com código-fonte.
  • MDR Ferramenta livre em Java para detecção de interações entre atributos utilizando o método da multifactor dimensionality reduction (MDR).
  • Orange Tookit livre em Python para data mining e aprendizagem automatizada.
  • Pimiento Um ambiente para data mining em textos baseado em Java.
  • PolyaAnalyst Ambiente que permite a montagem de fluxos para data mining em dados e texto.
  • Tanagra Software livre de data mining e estatística.
  • WEKA Software livre em java para data mining.
  • Cortex Intelligence Sistema de PLN para data mining em textos aplicado à Inteligência Competitiva.


Smallwikipedialogo.png

Esta página usa conteúdo da Wikipedia. O artigo original estava em Mineração de dados. Tal como o Think Finance neste artigo, o texto da Wikipedia está disponível segundo a GNU Free Documentation License.