Académique Documents
Professionnel Documents
Culture Documents
Antonio Marcos L. F. Carianha1, Hugo V. V Braga1, José Augusto M. S. Júnior1,
Waltemir L. P. Júnior1
1
Departamento de Ciência da Computação – Universidade Federal da Bahia (UFBA)
Ondina – Salvador – Ba – Brasil
{makui,hugovaz,verne,wal}@dcc.ufba.br
Abstract. Actually the amount of data we have stored in databases is huge.
Due to incapability of human being to handle and interpret the large amount
of data, emerges the need to build tools and create techniques for handling
such data, beyond identifying the implicit, previously unknown and potentially
useful knowledge. In this paper we discuss the Knowledge Discovery in
Databases (KDD) process, focusing on Data Mining step (DM) and its
algorithms as well as the organization of data through the Data Warehouse.
Resumo. Atualmente a quantidade de dados que dispomos armazenados nos
bancos de dados é imensa. Devido à incapacidade do ser humano de manejar
e interpretar essa grande quantidade de dados, emerge a necessidade de criar
ferramentas e técnicas para manipulação desses dados, além da identificação
do conhecimento implícito, previamente desconhecido e potencialmente útil.
Nesse artigo abordamos o processo de Descoberta do Conhecimento em
Bases de Dados (Knowledge Discovery in Databases KDD), dando enfoque
à etapa de Mineração dos Dados (Data Mining DM) e seus algoritmos assim
como à organização dos dados através do Data Warehouse.
1.Introdução
À medida que as empresas se automatizam, a quantidade de dados que são armazenados
é cada vez maior. Com toda essa quantidade de dados armazenada, seus respectivos
bancos de dados crescem rapidamente, impossibilitando a interpretação manual destes
dados. Surge então a necessidade de se criar ferramentas e técnicas que possibilitem a
extração e interpretação da informação de forma automatizada.
Basicamente o KDD, através de uma série de métodos e técnicas, transforma
dados brutos em “algo” que faça sentido. Esse “algo” que faça sentido pode ser um
relatório ou um modelo abstrato que facilite a compreensão do usuário. É importante
salientar que neste contexto, o KDD é o processo completo enquanto que o Data Mining
é uma das etapas do KDD, responsável pela geração dos padrões através da aplicação de
algoritmos específicos.
Diversas áreas de pesquisa têm contribuído e forneceram técnicas para o
desenvolvimento do KDD. Entre elas podemos destacar o Aprendizado de Máquina,
Estatística e Banco de Dados. A Estatística fornece métodos para quantificar as
incertezas provenientes da inferência de padrões de uma determinada amostra da
população. O Aprendizado de Máquina fornece meios para modelar os dados e extrair
padrões. Com relação à área de Banco de Dados, podemos destacar o Data Warehouse
que é uma arquitetura utilizada para armazenar assim como gerenciar dados de diversas
Bases de Dados para que seja possível ter uma visão geral do negócio. Para analisar os
dados no Data Warehouse utilizase ferramentas OLAP (Online Analytical Processing).
Figura 1. Na figura está a diferença entre ferramentas OLAP e Data Mining e como elas
se relacionam com o Data Warehouse.
O presente artigo está organizado como segue: A seção 1 aborda uma breve
introdução sobre o tema. Na seção 2 são abordadas algumas aplicações no mundo real
do KDD. Na seção 3 é abordado de forma geral o processo do KDD, decompondo em
suas etapas. Na seção 4 falamos um pouco sobre definição e manipulação de dados no
DM. Na seção 5 apresentamos o Data Warehouse. Na seção 6 explanamos a etapa DM,
dando enfoque a seqüência lógica que ocorre no DM. Na seção 7 abordamos os
principais métodos, técnicas e algoritmos do DM. Para finalizar, na seção 8 concluímos
o artigo.
2.Aplicações no mundo real
Devido ao sucesso que algumas aplicações que utilizavam algoritmos do Data Mining
tiveram, diversas áreas despertaram interesse e passaram a utilizar softwares de Data
Mining.
Saúde: Algumas empresas de assistência médica utilizam o Data Mining para
reduzir custos relativos aos seus clientes e dependentes. Através dos métodos relativos
ao DM, descobrem as áreas que são propensas a dobrar ou aumentar de forma
considerável os custos, intervindo de forma estratégica nessas áreas. O DM também é
utilizado pelos médicos. Baseado em informações previamente armazenadas de alguns
pacientes, é possível predizer qual o melhor tratamento para os futuros pacientes.
Mercado: Na área de mercado o KDD é utilizado para estudar o perfil dos
clientes e dividir estes clientes em grupos para que políticas diferentes sejam aplicadas a
cada grupo. As empresas são capazes de descobrir, por exemplo, que um determinado
grupo prefere promoções enquanto que outro prefere produtos personalizados. O KDD é
também bastante utilizado para descobrir padrões que representam associações entre
produtos adquiridos pelos clientes. Padrões do tipo “80% dos clientes que levam o
produto A também adquirem o produto B” podem ser extraídos do KDD, mas
especificadamente através do DM. Com isso várias decisões de marketing podem ser
tomadas visando o aumento do faturamento.
Detecção de fraude: Operadoras de cartão de crédito são capazes de detectar
transações fraudulentas. Por exemplo, dependendo da data, do horário e da localidade
em que uma determinada transação foi realizada, a operadora pode desconfiar da
transação e tomar alguma medida de segurança.
3.O processo KDD
Como já foi dito anteriormente, o KDD é um processo e neste caso ele é formado por
diversas etapas. Ele é interativo e iterativo. Interativo porque ao longo do processo é
necessário a participação do analista para que algumas decisões sejam tomadas, como
por exemplo a seleção dos padrões úteis extraídos após o DM. Iterativo porque as etapas
podem ser repetidas caso o objetivo ainda não tenha sido alcançado. Basicamente nós
realizamos um préprocessamento para entendimento do domínio, levantamento dos
objetivos, assim como limpeza dos dados e o armazenamento propriamente dito em um
Data Warehouse, caso tenhase optado por ele. Logo em seguida é que ocorre a etapa do
DM, que consiste basicamente na aplicação dos algoritmos para criação dos modelos de
DM. Por fim, os padrões devem ser selecionados e interpretados para que sejam
aplicados pelos clientes.
4.Linguagens de definição e manipulação de dados
Algumas projetos existentes estão tentando padronizar uma linguagem de consulta para
o DM. Para dar suporte ao DM, estas linguagens devem permitir a definição de tarefas,
como mensurar os padrões encontrados além da visualização do modelo. A principal
tentativa é o DMQL, mas existem outros projetos tais como MSQL, MiniRule, DMX
(Data Mining Extensions) e DMML. Vamos falar apenas do ARFF que é o formato de
arquivo de entrada para algumas aplicações de DM.
4.1.ARFF
ARFF (AttributeRelation File Format) é um formato de arquivo que serve para
descrever os dados em uma relação. Ele é utilizado como DDL em vários programas de
DM, principalmente o Weka. Sua sintaxe é bem simples, visto que o arquivo é dividido
basicamente em duas partes: cabeçalho e dados.
No cabeçalho, nós definimos o nome da relação, assim como o nome dos
atributos e seus tipos. São definidos desta maneira:
@RELATION <nomedarelação> % declaração da relação
@ATTRIBUTE <nomeatributo1> <tipodoatributo>
O tipo do atributo poder ser: NUMERIC, <especificação nominal>, STRING ou
DATE. INTEGER e REAL também são válidos, sendo interpretados como do tipo
NUMERIC. Quando o atributo é uma “especificação nominal”, é necessário listar os
possíveis valores para o atributo, sendo que a declaração do atributo passa a ser desta
maneira:
@ATTRIBUTE <nomeatributo> {valor1, valor2, ..., valorN}
Na parte de definição dos dados os valores dos atributos são definidos seguindo
a ordem da declaração dos atributos definida no cabeçalho:
@DATA
valatr1, valatr2, ..., valatrN %registro
Ex:
@RELATION tempo
@ATTRIBUTE temperatura REAL
@ATTRIBUTE vento {sim, não}
@ATTRIBUTE brincar {sim, não}
@DATA
85, não, não
80, sim, não
83, não, sim
5.Data Warehouse
Segundo Inmon, o idealizador do conceito, Data Warehouse “é uma coleção de dados
integrados, orientados por assunto, variáveis com o tempo e não voláteis, usados para
dar suporte ao processo gerencial de tomada de decisão” [INM96].
Para Barquini, Data Warehouse “é uma coleção de técnicas e tecnologias que
juntas disponibilizam um enfoque pragmático e sistemático para tratar com o problema
do usuário final que precisa acessar informações que estão distribuídas em vários
sistemas da organização” [BAR96].
Kimball declara que “um conjunto de ferramentas e técnicas de projeto quando
aplicadas às necessidades específicas dos usuários e aos bancos de dados específicos
permitem que planejem e construam um Data Warehouse” [KIM97].
O Data Warehouse (DW) é o produto obtido pelo processo de Data Warehousing, um
processo para construir e gerenciar repositórios de dados provindos de diversas fontes,
internas e externas, com o propósito de ter uma visão detalhada e singular de parte ou
do todo de um negócio. Os dados sofrem algumas transformações neste processo, por
exemplo, limpeza, verificação de consistência e totalização em níveis hierárquicos
utilizados na análise. Assim, os dados anteriormente inutilizados devido à falta de
organização e pela dispersão em diversas bases relacionais, são armazenados de uma
forma clara, agregada e estruturada em um DW. Então, podem ser analisados por
ferramentas OLAP (OnLine Analytical Processing), ferramentas que apresentam
facilidades para a realização de consultas complexas em Bases de Dados
multidimensionais, ou podem ser analisados através de Data Mining. Deste modo torna
se possível realizar uma análise de grande quantidade de dados no apoio a um processo
decisório. Uma metodologia composta por seis fases e que poderia servir de guia para o
projeto de repositórios de dados pode ser encontrada em [INM96;KIM97;BAR96].
As consultas OLAP geram informações obtidas a partir do DW, mas essa
abordagem dependente do usuário pode impedir que padrões escondidos nos dados
sejam encontrados de forma “inteligente", enquanto que conhecimento pode ser extraído
das informações dispersas nos dados utilizando as técnicas de DM aplicadas nos dados
do DW ou diretamente nos dados da Base de Dados, como mostra a figura 1.
5.1.Características de um Data Warehouse
Através da definição de Inmon [INM96] é possível descrever as características
principais de um Data Warehouse:
•Integrado Os dados passam por um processo de integração quando são passados do
ambiente operacional, provindos de diversas fontes de dados, para o ambiente de DW.
Então, qualquer dado trazido dos sistemas operacionais para o DW é, antes de tudo,
consolidado, passando a ter um único significado, um estado uniforme;
•Orientado por assuntos Com o objetivo de facilitar a análise dos dados, estes são
organizados por assuntos, por consequência, um DW contém informações orientadas a
assuntos importantes aos negócios da empresa e não por aplicação, como nos bancos de
dados operacionais. Para separar os assuntos por departamentos na empresa podese
utilizar os DATA MARTs, que são DWs organizados por departamentos e focalizam
uma ou mais áreas específicas.
•Variante no Tempo Os dados não podem sofrer atualização, são relativos a um
determinado instante de tempo. Assim, a grande capacidade de armazenamento do DW
permite o registro do desenvolvimento histórico dos dados;
•Não volátil – Significa que o DW permite apenas um carregamento inicial dos dados e
consultas a estes dados. Após serem integrados, transformados e incluídos, os dados não
podem sofrer alterações;
5.2.Diferença entre Data Warehouse e Banco de dados operacionais
Os Dados armazenados em bancos tradicionais que seguem o modelo de Entidade
Relacionamento podem ser empregados em muitos tipos de sistemas de aplicação. Estes
tipos de bases de dados são denominados “operacionais”. Os dados em um DW são um
conjunto de dados advindos dos dados operacionais e fornecem apoio ao processo de
tomada de decisão. São referidos em [INM96] como dados "gerenciais",
"informacionais" ou "analíticos".
A tabela 1 apresenta algumas diferenças definidas por [INM96] e [KIM97] existentes
entre Bancos de Dados Operacionais e um Data Warehouse.
Tabela 1. Diferenças entre Banco de dados Operacionais e DW
5.3.Modelagem Dimensional
Enquanto que em um BD operacional, os dados são observados em forma de tabelas, em
um DW o uso da modelagem dimensional permite que o usuário tenha uma visão do seu
banco de dados no formato de um hipercubo que contenham duas, três ou tantas
dimensões quanto sejam desejadas e aplicáveis.
Logo, um cubo em um DW representa três dimensões de dados inter
elacionadas, própria de um sistema multidimensional. Uma empresa, por exemplo, que
possui vários produtos em várias lojas filiais e que deseja acompanhar o desempenho da
venda de seus produtos ao longo do tempo, observa o seguinte Hipercubo:
Figura 2. Hipercubo com três dimensões
Os bancos de DW, em geral, não são totalmente normalizados, diferentes da
maioria dos BD operacionais. O objetivo da normalização é eliminar as duplicidades
para economia de espaço, contudo, este processo envolve a criação de mais tabelas, o
que aumenta a complexidade das consultas para os usuário, com o uso de joins mais
complexos, e uma maior lentidão das consultas, como acontece na modelagem ER, por
isso o DW não é totalmente normalizado, para aumentar a performance das consultas.
Tabelas do modelo dimensional:
•Tabelas Fato: são as tabelas que guardam os dados do negócio. Todas as informações
decorrentes do andamento do negócio que não são conhecidas previamente..
•Tabelas Dimensão: são as tabelas que guardam os atributos do negócio. Elas ajudam a
restringir as pesquisas feitas nos tabelas Fato e servem como títulos em colunas.
Dois esquemas mais utilizados na modelagem dimensional são o esquema estrela
e o esquema flocos de neve que é uma variação do esquema estrela usando dados
normalizados.
Figura 3. Tabela Fato e as tabelas Dimensão relacionadas
5.4.Técnicas para obtenção de informações em um Data Warehouse
As técnicas de análise de dados no DW são a realização de consultas SQL (Structured
Query Language) simples e o uso das ferramentas OLAP, as quais são normalmente
orientadas às consultas, ou seja, dirigidas pelos usuários que possuem hipóteses que
gostariam de comprovar, ou apenas executam consultas aleatórias.
Na análise multidimensional os dados são representados como dimensões. Com
a combinação dessas dimensões, o usuário tem uma visão de uma parte do negócio da
empresa, podendo realizar ações comuns como "slice and dice", que possibilita mudar
as dimensões a serem visualizadas (é mais difícil a visualização de mais de 2
dimensões) e "drilldown/up", que é a navegação entre os níveis de detalhamento. Na
análise multidimensional outras operações típicas são: dez maiores/menores,
comparações entre períodos, percentual de diferença, médias, somas ou contagens
acumulativas, além de diversas funções estatísticas e financeiras. O objetivo deste tipo
de análise é, através do comportamento de determinadas variáveis no tempo, encontrar
tendências, e com isso transformar os dados transacionais em informação estratégica.
Algumas dessas ferramentas são: DSS Agent (Microestrategy), Power
Dimension (Sybase). Oracle Discovery Essbase (Hyperion) e Metacube (Informix).
5.5.Exemplo de consulta em um DW
Na figura 3 acima, seja a tabela fato definida como f_vendas, e as tabelas das dimensões
como d_produto, d_tempo e d_loja. A seguinte consulta ao DW extrai quantas TVs
foram vendidas, listados por marca e país em 2005.
SELECT d_produto.marca, d_loja.pais, sum(f_vendas.unidades_vendidas)
FROM f_vendas, d_tempo, d_loja, d_produto
WHERE f_vendas.chave_tempo = d_tempo.chave_tempo AND f_vendas.chave_loja =
d_loja.chave_loja AND f_vendas.chave_produto = d_produto.chave_produto AND
d_tempo.ano = 2005 AND d_produto.categoria = 'tv'
GROUP BY d_produto.marca, d_loja.pais
6.Data Mining
O DM é uma e a mais importante etapa do KDD. Apesar de não ser a etapa mais lenta,
esse papel cabendo ao préprocessamento, acaba sendo a de maior relevância visto que
gera o produto o de maior interesse dos analistas: os padrões. Durante esta etapa, o
analista tem a opção de utilizar vários métodos visando obter um maior refinamento
para que o resultado seja útil. Como dissemos anteriormente, o primeiro passo no KDD
é definir os objetivos, de acordo com as especificações do cliente. Esses objetivos
podem ser divididos em dois tipos: verificação e descobrimento. A verificação é
utilizada quando a intenção é verificar uma hipótese do usuário. Já o descobrimento é
utilizado quando está se buscando novos padrões. Poucas vezes a verificação é utilizada,
sendo que em muitas bibliografias ela nem é mencionada. O descobrimento ainda é
subdividido em dois tipos: predição, cujos padrões servem para predizer o estado futuro
de alguns atributos a partir de outros atributos, e descrição, cujos padrões descrevem os
dados e são compreensíveis aos usuários.
Os objetivos do KDD, que foram definidos no início do processo, estão
intimamente relacionados com o que o DM procura na base de dados. Basicamente o
que nós queremos procurar são associações, coisas que acontecem juntas, clusters,
definição de grupos de acordo com os relacionamentos lógicos, e classificações,
determinar os grupos aos quais os novos registros pertencem. Podemos definir estes
relacionamentos que estão sendo procurados como tarefas. Para realizar tais tarefas e
conseqüentemente alcançar os objetivos que foram estabelecidos, nós podemos utilizar
diversos métodos de DM. Os métodos mais utilizados são: classificação, associação,
regressão e clusterização. O método por si só é muito genérico, e para o DM executar tal
método é necessário a escolha de um modelo (técnica). Observe que nós utilizamos o
termo modelo quando nos referimos ao produto que é gerado pele algoritmo, enquanto
que técnica se refere ao jeito especial como o método é executado. Por exemplo, para
executar o método da classificação nós poderíamos escolher a árvore de classificação.
Para que o modelo possa ser construído, é necessário a aplicação de um algoritmo de
DM. Por exemplo, poderíamos escolher o CART para construir a árvore de
classificação. Os principais métodos, técnicas e algoritmos serão abordados nas
próximas seções.
Definido alguns termos, agora podemos entender o DM como um todo.
Inicialmente mapeamos a tarefa, que foi definida através dos objetivos do KDD, para
um método específico do DM. A partir deste método escolhemos um algoritmo propício
que irá construir um modelo específico. Nos métodos preditivos, os algoritmos recebem
dados para que os modelos sejam construídos. Uma parte destes dados é utilizada para a
construção do modelo propriamente dito. A outra parte é utilizada para validar o
modelo. Essa validação consiste na aplicação do modelo na outra parte dos dados para
conferir se o modelo está condizente com os dados armazenados. Esse modelo gerado
pelo DM pode então ser utilizado pelos próximos registros que serão inseridos na base
de dados para predição.
7.Métodos, técnicas e algoritmos
7.1.Classificação
Classificação é o método que examina as características de novos registros e os mapeia
dentro de uma classe prédefinida (um modelo baseado em valores de dados já
existentes). Em outras palavras, este método objetiva a construção de modelos que
permitam o agrupamento de registros em classes. Depois de definidas as classes, este
método pode prever automaticamente a classe de um novo registro, sendo por isso
considerado preditivo. Para caracterizar um objeto (registro) são considerados dois tipos
de atributos: preditivos (que influenciam no processo de determinação da classe) e
objetivos (indicam a classe que o registro pertence). Árvore de decisão e regra de
decisão são algumas das técnicas do método de classificação utilizados em muitas
aplicações do mundo real.
7.1.1. Árvore de decisão ou árvore de classificação
O propósito da árvore de classificação é classificar os dados dentro de grupos distintos
tendo como critério de separação o valor dos atributos. Esta técnica recebeu este nome
devido ao formato da estrutura resultante (ver figura 4a). Na árvore de classificação, os
nós representam atributos cujos valores são avaliados exceto os nós folhas, visto que
esses nós representam as classes. Os ramos correspondem a todos os possíveis
resultados da avaliação do nó. Com relação ao processo de criação da árvore de
classificação, uma típica estratégia utilizada é topdown, onde a árvore é criada a partir
do nó raiz (primeiro nó) e os registros são distribuídos em subníveis na forma de novos
nós (ver figura 4a). A classificação é iniciada no nó raiz e em cada nó é realizado um
teste para decidir a aresta a ser seguida, sendo que estes testes continuam até alcançar o
nó folha onde a classe do objeto é decidida.
Um dos algoritmos mais conhecidos para implementar esta técnica é o C4.5. Ele
constrói a árvore de decisão a partir de um conjunto de dados de treinamento usando o
conceito de Entropia da Informação (nível de aleatoriedade dos dados) [Witten and
Frank 2005]. Os passos do algoritmo C4.5 são:
Passo 1: Seleciona um atributo como sendo o nó raiz (aquele que divide de forma mais
adequada);
Passo 2: Arcos são criados para todos os diferentes valores do atributo selecionado no
item 1;
Passo 3: Se todos os registros de treinamento sobre um nó pertencem a uma mesma
classe, este nó recebe o nome da classe (é um nó folha). Se todas as folhas possuem uma
classe, o algoritmo termina; Senão (nem todos os elementos pertencerem a uma mesma
classe) , o nó é determinado com um atributo que não ocorreu no trajeto a partir da raiz
até o nó atual (ainda não utilizado), e arcos são criados para todos os valores deste
atributo. O algoritmo retorna ao passo 3.
Figura 4. Árvore de classificação e regra de decisão
7.1.2. Regras de decisão
Grandes árvores de decisão são difíceis de entender porque cada nó tem um especifico
contexto estabelecido pelos resultados dos testes dos nós antecedentes. Para tornar
árvore de decisão um modelo mais legível, o caminho para cada nó folha pode ser
transformado numa regra de produção IFTHEN (ver figura 4b). A parte IF consiste de
todos os testes no caminho e a parte THEN é a classificação final. Regras desta forma
são chamadas regras de decisão e a conjunto de todas as cláusulas classificará de forma
equivalente à árvore de decisão (ver figura 4).
7.2.Clusterização ou segmentação
Clusterização é o método que consiste em agrupar (clusterizar) os objetos (dados), de
modo que objetos mais similares fiquem no mesmo cluster e objetos menos similares
sejam alocados para clusters distintos (ver figura 5a 5b). Os critérios mais comuns
adotados para o agrupamento são: homogeneidade e separação. A homogeneidade diz
que objetos pertencentes ao mesmo cluster devem ser tão similares quanto possível,
enquanto que a separação dita o quanto os objetos, pertencentes a diferentes clusters,
devem ser distintos entre si (Maravalle et al., 1997).
A diferença com relação ao método de classificação é que na clusterização as
classes não são previamente definidas e o objetivo é encontrar padrões que descrevam
os dados, ou seja, é um método descritivo. Na maioria das vezes este é o primeiro
método utilizado pelo Data Mining, uma vez que este localiza classes de dados
relacionados que serão utilizados para futuras consultas. Representar os dados com
poucas classes pode ocasionar perda de detalhes, mas consegue maior simplificação
(comparar figura 5b com 5c). Após a clusterização devem ser verificados os padrões
identificados para determinar quais podem ser convertidos em conhecimento realmente
útil.
Figura 5. Clusterização
Figura 6. Aglomeração e divisão
Os passos básicos de um algoritmo de aglomeração são:
Passo 1: Iniciar com n clusters, cada um contendo um objeto.
Passo 2: Calcular as dissimilaridades entre os objetos.
Passo 3: Procurar o par de clusters com menor dissimilaridade.
Passo 4: Recalcular a dissimilaridade do cluster fundido com os demais clusters.
Passo 5: Repete os passos 3 e 4, n 1vezes.
7.2.2. Particionamento
A técnica de particionamento busca encontrar, iterativamente, a melhor partição dos n
objetos em k grupos. Freqüentemente os clusters encontrados pela técnica de
particionamento são de melhor qualidade em relação aos clusters produzidos pela
técnica hierárquica. Os critérios mais utilizados para efetuar o agrupamento em clusters
são: ponto central (média dos atributos dos registros kmédias) e objeto representativo
para o cluster (kmedoids) (Kaufman e Rousseeuw, 1990).
Kmédias (kmeans) e kmedoids exigem a definição prévia do número de
clusters e do posicionamento inicial dos centros dos k clusters no espaço de atributos. A
diferença básica entre eles é que o kmedoids utiliza um objeto representativo chamado
de medoid, localizado mais ao centro possível do cluster, enquanto o kmeans utiliza um
centro médio.
Os passos básicos de um algoritmo de kmédias, são:
Passo 1: Escolha de k registros para serem centros iniciais dos k clusters.
Passo 2: Cada registro é associado a um cluster, para o qual a dissimilaridade entre um
registro e o centro deste cluster é menor que as demais.
Passo 3: Os centros dos clusters são recalculados, redefinindo cada um em função dos
atributos de todos os registros pertencentes ao cluster;
Passo 4: Volta ao passo 2 até que os centros dos clusters se estabilizem.
7.3.Associação
A associação resumese a descobrir afinidades entre os dados de certa natureza
mediante um determinado número de transações. Dessa forma, os algoritmos que
identificaram regras de associação objetivam encontrar relacionamentos entre os dados
(BERRY, 1997).
Em grandes bancos de dados, como por exemplo, os de redes de supermercados
que armazenam milhares de itens, as associações visam determinar correlações
importantes entre os itens comercializados, tal que a presença de alguns deles em uma
transação (compra e venda) implique na presença de outros na mesma transação, tais
como: “75% das pessoas que compram café também compram leite ou que, 80% das
pessoas que compram mercúrio, gaze e esparadrapo também compram algodão”.
7.3.1. Regra de associação
A representação do relacionamento entre os dados é feita através de regras de
associação. Essas regras visam representar afinidades entre itens de um subconjunto de
dados e essas afinidades são expressas na forma de regras do tipo: “Se X então Y” ou
“X (antecedente) ⇒ Y (conseqüente)”, onde X e Y são conjuntos de itens e X ∩ Y = ∅.
Por exemplo, ao encontrar a seguinte regra {A} ⇒ {B} (0,75), significa que 75% dos
clientes que compraram o produto A também adquiriram o produto B.
Esse tipo de informação pode ser utilizada de maneira mais eficiente em
campanhas publicitárias, estratégias de vendas, modificar prateleiras ou propagandas,
introduzir atividades promocionais específicas, entre outros.
Existem vários algoritmos que foram desenvolvidos com o objetivo de descobrir
regras de associação entre itens, como por exemplo: LargeKItemSets, Apriori,
AprioriTid, Partition e Multiple Level (MLT2L1). Entre os algoritmos citados, o mais
utilizado é o Apriori, por isso será exemplificado a seguir.
7.3.1.1. Apriori
O algoritmo Apriori realiza extração de regras de associação em dois passos: no
primeiro, é feita uma varredura sobre o arquivo, a fim de gerar conjuntos de
combinações de valores das colunas que aparecem no arquivo; no segundo, são
considerados apenas aqueles conjuntos que aparecem no arquivo com uma freqüência
maior ou igual a um valor mínimo prédeterminado pelo usuário.
A freqüência de um conjunto X de valores é chamada de suporte, ou seja, o
suporte de X é igual ao número de registros do arquivo que contêm os elementos do
conjunto X, dividido pelo número total de registros do arquivo.
Vamos considerar o exemplo de venda de produtos (ver Tabela 2). O arquivo
contem cinco colunas representando produtos e cada linha da tabela representa uma
transação de venda a um cliente . O cliente terá adquirido o produto A , por exemplo, se
o valor da coluna A para a venda for “s”, caso contrário será “n”.
Tabela2. Venda de produtos
O primeiro passo é contar a freqüência com que os itens ocorrem (última linha
da Tabela 2) para gerar o conjunto C1 (Figura 7 (a)), onde cada item de C1 é formado
por subconjuntos de Kitens candidatos e seus respectivos suportes, para C1 temos K=1.
Quando procurase descobrir regras de associação, é necessário definir um suporte
mínimo para as regras, logo vamos assumir para este exemplo um suporte mínimo igual
a 40%. O C1' (Figura 7 (a)) é um conjunto formado pelos elementos de C1 que são
maiores ou iguais ao suporte mínimo prédefinido.
(a) (b) (c)
Figura 7 Geração de conjuntos
É feita a concatenação C1'*C1' para gerar o próximo conjunto C2 (Figura 7 (b)),
que consiste de subconjuntos de 2 itens candidatos. Por exemplo, {A} e {B} geram
{AB}. C2' é gerado da mesma forma que C1', ou seja, é um conjunto formado por todos
os subconjunto de C2 que satisfazem ao suporte mínimo.
A geração de C3 é obtida a partir da concatenação C2' * C2' de uma maneira
distinta seguindo uma ordem lexicográfica (Figura 7 (c)). Devendo obedecer a seguinte
regra: Seja p={p1,p2,p3,...,pn} e q={q1,q2,q3,...,qn} onde p e q são subconjuntos de
C2', por exemplo p = {BC} e q = {BE}, sendo necessário que p1 = q1, p2 = q2, ..., pn
<qn. Na Figura 2 (b), o subconjunto candidato {BCE}, em C3, foi formado
concatenando {BC} com {BE}, pois B = B e C < E.
O próximo passo é descobrir as regras de associação, onde todas as regras
devem ter fator de confiança acima de um mínimo especificado. A confiança é
calculada dividindose o suporte da regra pelo suporte do antecedente. No nosso
exemplo, supondo uma confiança mínima de 60%, uma regra provável seria BC ⇒ E.
Para ela, a confiança é igual a suporte (BCE)/suporte(BC), cujo resultado é 66%. Outra
provável regra seria B ⇒ CE com uma confiança de 66%.
7.4.Regressão
Também conhecida como estimativa é considerada uma tarefa preditiva, consiste na
geração de um modelo que consegue prever os valores dos atributos para outros registos,
baseada em uma função que represente de forma aproximada o comportamento dos
dados em estudo. Em outras palavras, a idéia é a geração de um modelo que possam
estimar o valor numérico de determinado atributo. Este modelo é gerado utilizando uma
massa de dados histórica.
7.4.1. Regressão Linear
É uma técnica utilizada para explorar as relações lineares entre variáveis, fornecendo
uma previsão de valores de acordo com uma massa histórica, que deve seguir um
modelo linear, ou seja, uma reta que representa os dados. A Regressão Linear pode, por
exemplo, prever o valor do aluguel de um novo imóvel baseado em alguns atributos
conhecidos (localidade, dimensão, etc), ou uma previsão populacional, etc.
7.4.2. Redes Neurais
As redes neurais consistem de estruturas com habilidade de aprendizado, ou seja, é a
tentativa de implementar computacionalmente, a maneira como o cérebro humano
funciona. São sistemas computacionais formados pela integração de inúmeros
elementos de processamento com capacidade de detecção de padrões e sua principal
característica está na capacidade de aprender com base na exposição a exemplos e uma
desvantagem é o tempo de treinamento que pode ser extremamente longo para a maioria
das aplicações de uso prático.
A construção de uma rede neural consiste na configuração de uma arquitetura
interna, a chamada rede de neurônios, e no treinamento desta rede com base em
exemplos, até que ela consiga aprender e construir um modelo para que possam ser
feitas predições sobre novos dados inseridos, o que a torna também adequada para
tarefas de classificação.
8.Conclusão
Através deste artigo procuramos mostrar uma visão geral sobre a Descoberta do
Conhecimento em Bases de Dados (KDD), dando enfoque ao Data Mining e Data
Warehouse.
Observamos que apesar da automação do processo, a participação do analista é
de vital importância visto que a interpretação dos padrões acaba sendo o mais
importante, levando em consideração que o DM encontra padrões pouco comuns. Seria
interessante a existência de uma linguagem padronizada, amplamente utilizada, que
desse suporte ao DM. O campo parece promissor visto que a competitividade entre as
empresas vem crescendo e, considerando que toda informação escondida que pode vir a
se tornar conhecimento é um diferencial, o KDD acaba sendo de extrema importância
para estas empresas.
Referências
[FAY96] Fayyad, U., Shapiro, G.P. and Smyth, P., "From Data Mining to Knowledge
Discovery in Databases," AI magazine, 17, 3, pp. 3754, 1996.
[INM96] INMON, W. H. Building the Data Warehouse, John Wiley & Sons Inc., New
York, 1996.
[KIM97] KIMBALL, Ralph The Data Warehouse Toolkit. John Wiley & Sons Inc.,
New York, 1997.
[BAR96] BARQUINI, Ramon Planning and designing the Warehouse, New Jersey,
PrenticeHall, 1996.
[REZ05] REZENDE, Solange O. Mineração de dados. MiniCursos no ENIA 2005.
Disponível em http://www.addlabs.uff.br/enia_site/dw/mineracaodedados.pdf.
[TCC99] Two Crows Corporation (1999), Introduction to Data Mining and Knowledge
Discovery, 3th edition.
Hand D., Mannila H., Smyth P. Principles of Data Mining, MIT Press, 2001
http://www.thearling.com/index.htm
http://www.anderson.ucla.edu/faculty/jason.frand/teacher/technologies/palace/dataminin
g.htm
http://www.twocrows.com/aboutdm.htm