Sei sulla pagina 1di 9

DATA MINING – MINERAÇÃO DE DADOS

Cristian Magalhães1, Francine Neuschrank2

Instituto Federal Sul-rio-grandense1 2

cpmrss@gmail.com1, fran.neuschrank@gmail.com2

Resumo

Este artigo descreve os conceitos e características do processo de mineração


de dados (Data Mining), cada vez mais utilizado em diferentes áreas de
conhecimento.

Palavras - chave: Mineração de dados. Padrões. Informação.

Abstract

This work describes the concepts and features of the process of Data Mining,
increasingly used in different fields of knowledge.

Keywords: Data mining. Patterns. Information.


1 Introdução

Com a grande evolução da tecnologia da informação, imensos volumes de


dados e informações tem sido coletados e armazenados. O simples processo de
armazenagem e recuperação dessas informações já representa um grande
benefício, pois elimina a necessidade da procura dessa informação em outros meios
mais trabalhosos como em arquivos em papel, por exemplo. Todavia, apenas a
recuperação dessa informação não propicia todas as vantagens possíveis.

Nesse contexto, o processo de Data Mining permite a investigação desses


dados à procura de padrões que possuam algum “valor”, possibilitando novas
formas de utilização dessas informações.

2 Data Mining

Segundo Usama Fayyad (Fayyad et al. 1996), Data Mining é “o processo


não-trivial de identificar, em dados, padrões válidos, novos, potencialmente úteis e
ultimamente compreensíveis”.

Esse processo utiliza-se de diversos algoritmos que fazem o processamento dos


dados e encontram esses "padrões válidos, novos e valiosos", a que Fayyad se
refere. Utiliza técnicas de inteligência artificial que procuram relações de similaridade
ou discordância entre dados.
Data Mining faz parte parte de um processo maior conhecido como KDD
(Knowledge Discovery in Databases) – em português, Descoberta de Conhecimento
em Bases de Dados –, que, segundo Addrians & Zantinge (1996), permite a
extração não trivial de conhecimento previamente desconhecido e potencialmente
útil de um banco de dados.

3 Aplicações do Data Mining

As técnicas de mineração de dados podem ser utilizadas em praticamente


todas as áreas de conhecimento. A técnica de Data Mining vem sendo utilizada nas
mais diversas áreas, como informática, bioinformática, medicina, astronomia, análise
de logs da web, pesquisa operacional, dentre outras.

A seguir, alguns exemplos de utilização do Data Mining:

- Marketing: redução dos custos com o envio de correspondências através de


sistemas de mala direta a partir da identificação de grupos de clientes potenciais,
que é feito através do perfil.

- Detecção de fraude: reclamações indevidas de seguro, chamadas clonadas de


telefones celulares, compras fraudulentas com cartão de crédito e nomes duplicados
em sistemas de Previdência Social, por exemplo.

- Investimento: diversas empresas têm usado técnicas de mineração de dados para


obter ganhos financeiros. Usam-se especialmente modelos de redes neurais no
mercado de ações e na previsão da cotação do ouro e do dólar.

- Produção: empresas desenvolvem sistemas para detectar e diagnosticar erros na


fabricação de produtos.

4 Aplicações praticas do Data Mining

4.1 PostgreSQL

Chegam momentos em que consultas utilizando operadores como LIKE e


ILIKE no PostgreSQL já não conseguem disponibilizar ao usuário uma busca
rápida, nesse caso se faz necessário o uso de operadores de pesquisa mais
robustos como os que são utilizados no Full Text Search.

O Full Text Search nada mais é que, uma técnica de pesquisa e


recuperação de informações em texto armazenadas em um banco de dados, de
modo que o gerenciador desse banco consiga examinar todas as palavras nas
colunas selecionadas, comparando com os argumentos de pesquisa fornecidos
pelo usuário, retornando no final uma classificação dos documentos com relação
à similaridade dos critérios passados na pesquisa.
Abaixo serão abordas técnicas e métodos explicativos para o uso do Full
text search, toda a abordagem terá como exemplo dados fictícios.

4.1.1 Primeiro Método

Nesse primeiro método os dados resultantes da pesquisa são gerados em


tempo de execução da query. Para implementar Full Text Search para o campo
“comentário” na tabela acima será feita a criação de um índice.

- Criação da tabela matriculaTsi:

CREATE TABLE matriculaTsi(

id serial NOT NULL,

matricula integer NOT NULL,

ano integer NOT NULL,

tipo integer NOT NULL,

comentario text NOT NULL,

texto text NOT NULL,

publicacao date

CONSTRAINT matriculaTsi_pkey PRIMARY KEY (id)

) WITHOUT OIDS;

- Busca com operador ILIKE

SELECT id, matricula, ano, tipo, comentario, texto,


publicação

FROM matriculaTsi

WHERE (comentario ILIKE '%argumento da


pesquisa%')

ORDER BY id;
- Criação de um único índice

CREATE INDEX matriculaTsi_idx ON matriculaTsi


USING gin(to_tsvector('portuguese', comentario));

Agora já é permitida a utilização do to_tsvector que é o responsável por


gerar um vetor com um ranking em relação ao argumento passado.

- Utilização do to_tsvector:

SELECT *

FROM matriculaTsi

WHERE to_tsvector('portuguese', comentario) @@


'argumento';

- Criação do índice com a concatenação de duas colunas em um único índice:

O índice é concatenado (||) com as informações de “comentário” e “texto”


referentes a busca. Um erro muito comum acontece quando um dos textos é
nulo, o índice não funcionará. Para resolver esse problema é necessário utilizar o
“coalesce” de modo que, se uma das colunas for nula, a outra será indexada
normalmente.

CREATE INDEX c matriculaTsi _idx ON matriculaTsi


USING gin(to_tsvector('portuguese', comentario ||
texto));

CREATE INDEX matriculaTsi_idx ON matriculaTsi


USING gin(to_tsvector('portuguese', comentario ||
texto)); coalesce(comentario,'') || coalesce(texto,'')
4.1.2 Segundo Método

A segunda método para implementação do full text search, é criar colunas


que armazenarão os valores criados por to_tsvector(). Esse método economiza
muito o poder de processamento, pois os valores gerados pelo to_tsvector()
serão armazenados na própria tabela, em contra partida, o consumo em disco é
bem maior.

- Adesão de novas colunas:

ALTER TABLE matriculaTsi ADD COLUMN


comentario_srch tsvector;

ALTER TABLE matriculaTsi ADD COLUMN texto_srch


tsvector

- Atualização dos resultados vindos do to_tsvector()

UPDATE matriculaTsi SET comentario_srch =


to_tsvector('portuguese', comentario);

UPDATE matriculaTsi SET texto_srch =


to_tsvector('portuguese', texto);

- Criação de mais dois índices para facilitar a busca de resultados posteriormente

CREATE INDEX comentario_srch_idx ON


matriculaTsi USING gin(coemntario_srch);

CREATE INDEX texto_srch_idx ON matriculaTsi


USING gin(texto_srch);
- Pesquisa dos resultados

SELECT *

FROM matriculaTsi

WHERE plainto_tsquery('portuguese',
'argumento') @@ comentario_srch

AND plainto_tsquery('portuguese', 'argumento')


@@ texto_srch;

Uma vez atualizados os campos indexados previamente ou inseridas novas


linhas, o índice ficará desatualizado. Isso pode ser facilmente contornado com a
criação de um gatilho que atualize os campos “comentário” e “texto” quando
atualizados ou inseridos novos valores.

- Primeiro criamos a função que será utilizada ao ser criado o gatilho:

CREATE OR REPLACE FUNCTION


_tg_conteudo_matriculaTsi_on_new_update()

RETURNS TRIGGER AS $$

BEGIN

NEW.comentario_srch :=
to_tsvector('portuguese', NEW. comentario);

NEW.texto_srch := to_tsvector('portuguese',
NEW.texto);

RETURN NEW;

END

$$

LANGUAGE plpgsql;

- Criação do Trigger:
CREATE TRIGGER
_tg_conteudo_matriculaTsi_on_new_update_trigger
BEFORE INSERT OR UPDATE ON matriculaTsi FOR
EACH ROW EXECUTE PROCEDURE
_tg_conteudo_matriculaTsi_on_new_update();

- Consulta final que ordena os resultados pelo ranking:

SELECT *,

( ( ts_rank_cd(comentario_srch,
plainto_tsquery('portuguese', 'argumento') ) )
AS rank
FROM matriculaTsi
WHERE plainto_tsquery('portuguese',
'argumento) @@ comentario_srch;

ORDER BY rank DESC;

5 Conclusão

Percebe-se claramente que Data Mining vai muito além da simples consulta a
um banco de dados, no sentido de que permite aos usuários explorar e inferir
informação útil a partir dos dados, descobrindo relacionamentos escondidos na base
de dados.
Referências

Navega, Sérgio. Princípios essenciais do Data Mining. Disponível em


http://www.intelliwise.com/reports/i2002.htm. Acessado em 03/08/2010.

Souza, Michel de. Data Mining. Dísponível em


http://imasters.uol.com.br/artigo/1482/bi/data_mining/

SQL Magazine. Data mining e a descoberta de associações em dados. Dísponível


em http://www.devmedia.com.br/post-6155-Artigo-da-SQL-Magazine-26-Data-
mining-e-a-descoberta-de-associacoes-em-dados.html. Acessado em 03/08/2010.

Potrebbero piacerti anche