Escolar Documentos
Profissional Documentos
Cultura Documentos
2015
Mineração de dados
Fabrício Martins Mendonça
©Copyright do Instituto de Gestão em Tecnologia da Informação.
Todos os direitos reservados.
Mineração de dados . 2
Glossário .............................................................................................................................................. 4
Referências ....................................................................................................................................... 78
Mineração de dados . 3
Glossário
BI – Business intelligence
DM – Data Mart
DW – Data Warehouse
Mineração de dados . 4
Capítulo 1 – Introdução à Mineração de Dados
O curso de Mineração de Dados inicia-se a partir deste capítulo 1, que tem
por objetivo apresentar uma introdução ao tema, esclarecendo de fato o que
significa “minerar os dados” em grandes bases de dados dos mais diferentes
tipos de organizações.
Mineração de dados . 5
de dados: o modelo hierárquico, o modelo em rede e o modelo relacional. Esses
modelos são conhecidos como modelos lógicos, uma vez que eles não se
referem a aspectos físicos da implementação do sistema. Entretanto, modelos
lógicos causaram muitos problemas o que acabou limitando sua utilização na
modelagem conceitual.
Mineração de dados . 6
compras de clientes em grandes lojas de departamentos, supermercados, entre
outros, dados de transações bancárias ou de cartão de crédito.
Mineração de dados . 7
conhecimento de bancos de dados e mostrar como é possível sua aplicação em
diferentes ramos de negócios em diferentes organizações.
Quanto à compreensão do conceito de mineração de dados, podemos recorrer
a algumas referências da literatura da área para definir o termo:
Mineração de dados . 8
na consecução de seus objetivos. Esse conjunto de atividades deve ter, como
principal meta, o apoio ao processo decisório em todos os níveis.
Mineração de dados . 9
Figura 2: Pirâmide da Informação
Mineração de dados . 10
Figura 3: Exemplo de uma estrutura multidimensional de um data warehouse
Mineração de dados . 11
capacidades de computação distribuída para análises que exigem mais
armazenamento e poder de processamento do que pode estar localizado
econômica e eficientemente em um desktop individual.
Embora não esteja representada na pirâmide da figura 1, outra importante
tecnologia de informação de suporte ao processo decisório são os sistemas de
apoio à decisão (DSS), também conhecidos como sistemas de informações
executivas (EIS). Tais sistemas localizam-se no mesmo nível de abstração das
ferramentas OLAP. Os sistemas de apoio à decisão ajudam os principais
tomadores de decisões de uma organização com dados de nível mais alto em
decisões complexas e importantes.
O próximo nível da pirâmide das atuais tecnologias de informação refere-se
ao tema do nosso curso: a mineração de dados (do inglês data mining). O que
justifica a mineração de dados estar num nível mais alto de abstração em
relação às tecnologias OLAP, os sistemas de apoio à decisão e os data
warehouses, é o fato de que a tarefa de mineração consegue descobrir e
recuperar informações invisíveis a essas outras tecnologias. Nesse sentido, a
mineração de dados possibilita buscar padrões, fatos e correlações invisíveis em
data warehouses e também informações e tendências escondidas, não
observadas em ferramentas OLAP.
Mineração de dados . 12
Figura 4: Tecnologias de BI usadas no processo de KDD
Mineração de dados . 13
nível que engloba apresentação, visualização e interpretação das
informações geradas após a mineração de dados é, geralmente, executado por
pessoas que estão em cargos de gerência e coordenação de uma organização, as
quais utilizam softwares diversos para visualização dos dados processados e
analisados anteriormente pelas tecnologias citadas. Alguns softwares de
mineração de dados, tais como o WEKA e o DBMiner, podem ser usados por
estes profissionais na realização dessa tarefa. Nos capítulos seguintes, temos a
apresentação de alguns softwares de mineração de dados para suporta essas
tarefas de apresentação, visualização e interpretação. Por fim, o nível da
pirâmide que corresponde à Decisão, equivale ao processo decisório executado
na organização referente à atividade que estava sendo tratada nessa pirâmide
de informação. O processo decisório é realizado com base no conhecimento
gerado anteriormente por todas as tecnologias de informação empregadas neste
processo.
Mineração de dados . 14
compreendem: seleção de dados, limpeza de dados, enriquecimento,
transformação ou codificação dos dados, mineração de dados e o relatório e
exibição da informação descoberta.
Para uma melhor compreensão de cada uma dessas seis etapas é importante
apresentar um exemplo de aplicação de KDD explicado por esses próprios
autores, que segue abaixo.
Mineração de dados . 15
Justificativas para a Mineração de Dados
Nas seções anteriores deste capítulo 1 foi feita uma introdução do surgimento
da mineração de dados e sua caracterização como etapa central no processo de
descoberta do conhecimento em bancos de dados – KDD. Nesta seção,
apresentam-se algumas justificativas para o uso da mineração de dados em
diversas áreas do negócio e também do ponto de vista científico. Apresentar o
porquê do uso da mineração de dados no contexto das tecnologias da
informação é fundamental para compreender as próximas etapas deste curso,
apresentadas nos capítulos seguintes.
Mineração de dados . 16
- interpretabilidade
- novidade
- utilidade
Mineração de dados . 17
Apresentadas tais justificativas para o uso da mineração de dados nas
empresas, o restante do curso tem por objetivo apresentar de que forma pode-
se aplicar as técnicas e ferramentas de mineração de dados em estudos de casos
reais das empresas. Um passo inicial nesse sentido é citar alguns exemplos de
aplicação das técnicas de mineração de dados realizados com sucesso em
algumas empresas, conforme listado abaixo:
Estes exemplos citados são apenas alguns poucos casos de aplicação com
sucesso das regras de mineração de dados em diversas áreas do conhecimento.
Mineração de dados . 18
Outros estudos de casos e exemplos serão apresentados ao longo deste curso
como forma de familiarizar o aluno com o tema e proporcioná-lo a capacidade de
aplicar tais técnicas de mineração em estudos de casos reais ou de sua
organização.
Mineração de dados . 19
Capítulo 2 – Tarefas e técnicas de mineração de Dados
Após a apresentação dos conceitos iniciais e fundamentais de Mineração de
Dados do Capítulo 1, o passo seguinte no estudo deste tema é compreender
como são realizadas as tarefas que a mineração de dados normalmente realiza
nas bases de dados e de que forma essas tarefas de mineração são
implementadas, isto é, quais técnicas são usadas para a implementação das
tarefas. A apresentação das tarefas e técnicas de mineração de dados,
explicando como elas funcionam, é o objetivo principal deste Capítulo 2.
Mineração de dados . 20
Já o conceito de técnica de mineração de dados é diferente do conceito de
tarefa. Cada tarefa de mineração de dados possui um conjunto de técnicas a
ela associadas, que representam os algoritmos que podem ser empregados
para a sua execução. Assim, por exemplo, para a tarefa de Regras de Associação
podemos utilizar as seguintes técnicas ou algoritmos para sua implementação: -
Algoritmo Apriori; - Algoritmo de Árvore de Padrão de Crescimento Frequente; -
Algoritmo ECLAT; - Algoritmo CLOSET.
Regras de associação
A mineração de Regras de Associação em bases de dados é uma das tarefas
mais comuns entre os problemas de mineração e também uma das mais
importantes, já que possibilita descobrir associações entre produtos geralmente
úteis e inesperadas, permitindo aos gestores adotar estratégias de negócio com
base nas regras de associação reveladas.
Mineração de dados . 21
Para introduzir essa tarefa de mineração podemos citar o exemplo sobre uma
aplicação das regras de associação:
Mineração de dados . 22
Sistemas de Recomendação: sistemas que, de maneira autônoma,
sugerem itens que considera interessantes para um usuário (livros,
notícias, músicas, vídeos, etc.).
Segurança de Sistemas: regras de associação são utilizadas para
aprimorar os bancos de dados dos antivírus e sistemas de detecção de
intrusões.
Regra de Associação: (service = “echo reply”) ^ (SrvCount > 500) =>(Class
= “Intrusion”)
Suporte de A, B, C -> D
Confiança de A -> B
Amo (2003) destaca que a fim de garantirmos que uma regra A -> B seja boa
ou interessante, precisamos exigir que seu suporte seja relativamente alto e
também seu grau de confiança. Uma regra de associação r é dita interessante se
conf(r) >= α e sup(r) >= β, onde α e β são respectivamente um grau mínimo
de confiança e um grau mínimo de suporte especificado pelo usuário. Veja o
exemplo abaixo:
Mineração de dados . 23
A geração de regras usando todos os itemsets grandes e seus suportes são
relativamente simples. Porém, descobrir todos os itemsets junto com o valor
para seu suporte é um problema difícil se a cardinalidade do itemset for muito
alta. Para reduzir o espaço de pesquisa combinatória, os algoritmos para
encontrar regras de associação utilizam as seguintes propriedades (Elsmari e
Navathe, 2011):
Algoritmo Apriori
O algoritmo Apriori foi proposto em 1994 pela equipe de pesquisa do Projeto
QUEST da IBM que originou o software de mineração Intelligent Miner. Trata-se
de um algoritmo que resolve o problema da mineração de itemsets frequentes,
de forma que:
O algoritmo Apriori possui três fases principais: (1) a fase da geração dos
candidatos, (2) a fase da poda dos candidatos e (3) a fase do cálculo do suporte.
As duas primeiras fases são realizadas na memória principal e não necessitam
que o banco de dados D seja varrido. A memória secundária só é utilizada caso o
conjunto de itemsets candidatos seja muito grande e não caiba na memória
principal. Mas, mesmo neste caso é bom salientar que o banco de dados D, que
normalmente nas aplicações é extremamente grande, não é utilizado. Somente
na terceira fase, a fase do cálculo do suporte dos itemsets candidatos, é que o
banco de dados D é utilizado.
Entrada : BD de transações, N
Saída : F1, F2, F3, …
C1 = Itemsets de tamanho 1
F1 = Itemsets frequentes de C1
Mineração de dados . 24
k: = 1
While Fk não for vazio
Ck+1 := Junta(Fk, Fk)
Ck+1 := Poda(Ck, Fk)
Fk+1 : = Valida(BD,Ck+1, N)
k : = k+1
Mineração de dados . 25
Ainda segundo Elsmari e Navathe (2011), o algoritmo primeiro produz uma
versão compactada do banco de dados em relação a uma árvore de padrão
frequente (árvore FP). Essa árvore armazena informações relevantes do itemset
e permite a descoberta eficiente de itemsets frequentes. O processo real de
mineração de dados adota uma estratégia de dividir-e-conquistar, em que o
processo de mineração é decomposto em um conjunto de tarefas menores que
cada uma opera em uma árvore FP condicional – um subconjunto da árvore
original.
Para ver o funcionamento deste algoritmo vamos utilizar o mesmo exemplo de
um banco de dados transações como mostrado no algoritmo Apriori, conforme
tabela 4 abaixo:
Tabela 4: Banco de transações de compras de um supermercado
TID Hora Itens comprados
101 6:35 Leite, pão, biscoito,
suco
792 7:38 Leite, suco
1130 8:05 Leite, ovos
1735 8:40 Pão, biscoito, café
Suporte mínimo: β = 2 (duas ocorrências)
Mineração de dados . 26
Figura 6: Árvore FP após 1ª transação
1ª transação NULL
Leite: 1
Pão: 1
1
1
Biscoito: 1
1
Leite: 1 X 2
X 2
Pão: 1 Suco: 1
X 2 Biscoito: 1
Suco: 1
{leite, suco}
Mineração de dados . 27
A terceira transação só tem um item frequente, {leite}. Novamente,
começando na raiz, vemos que o nó leite existe, de modo que movemos para
ele, incrementando seu contador e ajustando na tabela, conforme mostrado na
figura 8, a seguir.
Figura 8: Árvore FP após 3ª transação
NULL
3ª transação
Leite: 2 X 3
X 3
Pão: 1 Suco: 1
Biscoito: 1
Suco: 1
{leite}
A transação final contém os itens frequentes {pão, biscoito}. No nó raiz,
vemos que um filho com rótulo pão não existe. Assim, criamos outro filho da
raiz, inicializamos seu contador e depois inserimos biscoito como um filho desse
nó, inicializando seu contador. Ao final dessa transação, temos a árvore FP do
exemplo construída e sua respectiva tabela de cabeçalho de item, conforme
mostrado na figura 9, abaixo:
Mineração de dados . 28
4ª transação NULL
Leite: 3 Pão: 1
Biscoito:
1
Suco: 1
{pão, biscoito}
Figura 9: Árvore FP após 4ª transação (final)
O passo seguinte do algoritmo de árvore de crescimento de padrão frequente
é percorrer a árvore FP construída no primeiro passo e encontrar todos os
padrões frequentes que contém determinado item frequente, começando da
tabela de cabeçalho do item para esse item e atravessando os links do nó na
árvore FP. Nesse passo, árvores FP condicionais são construídas com base na FP
original, a mineração é realizada recursivamente nessas árvores FP e padrões
frequentes são formados ao concatenar o padrão de sufixo com os padrões
frequentes produzidos de uma árvore FP condicional.
Para o exemplo da Tabela 4, examinamos os itens frequentes da última
entrada da tabela para a primeira e, assim, temos como variável beta inicial o
suco, que tem suporte igual a dois. Construímos a base de padrão condicional,
seguindo o link do nó na tabela de cabeçalho, e identificamos dois caminhos com
suco como sufixo: (leite, pão, biscoito: 1) e (leite: 1). A árvore FP condicional
(veja figura 10) consiste em apenas um único nó – leite: 2. Isso se deve a um
suporte de apenas 1 para o nó pão e biscoito, abaixo do suporte mínimo igual a
2. O algoritmo é chamado recursivamente com uma árvore FP de apenas um nó
(leite: 2) e um valor beta de suco. Como essa árvore FP tem apenas um
caminho, todas as combinações de beta e nós no caminho são geradas com
suporte de 2, ou seja, {leite, suco}.
Figura 10: Árvore FP-condicional após Passo 1
Passo 1: NULL
Leite: 3 Pão: 1
Passo 2: NULL
Leite: 3 Pão: 1
Biscoito: 1
+ {pão: 1}
= {pão: 2}
Suco: 1
variável = biscoito (sufixo)
β=2 Resultado:
{pão, biscoito: 2}
O item frequente pão é considerado em seguida como a variável beta com
suporte = 2 (veja figura 12). Seguindo o link desse nó na tabela temos um único
caminho: (leite: 1). A árvore FP condicional é vazia, pois a contagem é menor do
que o suporte mínimo, e então nenhum padrão frequente será gerado.
Figura 12: Árvore FP-condicional após Passo 3
Passo 3: NULL
Leite: 3 Pão: 1
Biscoito: 1
{leite, pão: 1} <= β
Suco: 1
variável = pão Resultado:
(sufixo)
β=2 Null (Vazia)
O último item frequente a considerar é leite (veja figura 13). Esse é o item do
topo na tabela de cabeçalho do item e, como tal, tem uma base de padrão
condicional vazia e árvore FP condicional vazia. Assim, nenhum padrão frequente
é acrescentado nesse passo. O resultado final da execução do algoritmo FP-
Growth são os seguintes padrões frequentes: ({leite: 3}, {pão: 2}, {biscoito:
2}, {suco: 2}, {leite, suco: 2} e {pão, biscoito: 2}.
Figura 13: Árvore FP-condicional após Passo 4
Passo 4: NULL
Leite: 3 Pão: 1
Biscoito: 1
NULL (topo)
FP condicional vazia
Suco: 1
variável = leite
β=3 Resultado:
Null (Vazia)
Classificação
A segunda tarefa de mineração de dados que será apresentada é a tarefa de
classificação, que assim como a tarefa de associação é uma das mais comuns
e importantes tarefas no contexto da mineração de dados. A ideia com a tarefa
de classificação é que a partir de um banco de dados contendo objetos pré-
classificados (classe conhecida), constrói-se um modelo que seja capaz de
classificar automaticamente novos objetos (classe desconhecida) em função de
suas características. Uma aplicação prática da tarefa de classificação de dados é
citada em Amo:
A partir do banco de dados de clientes que se dispõe no momento
você gostaria de desenvolver um método que lhe permita saber que
tipo de atributos de um cliente o torna um potencial comprador de
produtos eletrônicos e aplicar este método no futuro, para os novos
clientes que entrarão no banco de dados. Surge então a questão:
que tipos de atributos de clientes (idade, renda mensal, profissão)
influenciam na colocação de um cliente numa ou noutra classe? Uma
solução para esse problema é a partir do banco de dados atual
descobrir regras que classificam os clientes em duas classes: os que
compram produtos eletrônicos e os que não compram.
Quando um novo cliente João, com idade de 25 anos e renda mensal ‘Alta’ e
que tenha comprado DVD’s é catalogado no banco de dados, o seu classificador
lhe diz que este cliente é um potencial comprador de aparelhos eletrônicos. Este
cliente é colocado na classe ClasseProdEletr = ‘Sim’, a partir das regras de
classificação citadas, mesmo que ele ainda não tenha comprado nenhum produto
eletrônico.”
O atributo correspondente à classe, no caso do exemplo, o atributo
CompraProdEletr, é chamado de Atributo-Classe. Em “Classificação”, o Atributo-
Classe é fornecido, bem como os possíveis valores que possa assumir. Neste
caso, o processo de aprendizado (criação do modelo, isto é, das regras de
classificação) é chamado de supervisionado.
Esse processo de classificação de dados é realizado em três etapas distintas:
1. Criação do modelo de classificação:
1. São criadas regras que permitem classificar as tuplas do banco de
dados. É também conhecida como Etapa de Aprendizado.
Mineração de dados . 39
Rapidez – tempo gasto na classificação
Robustez – habilidade de classificar corretamente em presença de
ruídos e valores desconhecidos
Escalabilidade – eficiência do classificador em grandes volumes de
dados
Interpretabilidade – facilidade de um usuário entender as regras
produzidas pelo classificador.
Árvores de decisão
Um dos métodos mais usuais de classificação é o uso de Árvores de Decisão.
Uma árvore de decisão é uma estrutura de árvore onde: (i) cada nó interno é
um atributo do banco de dados de amostras, diferente do atributo-classe; (ii) as
folhas são valores do atributo-classe; (iii) cada ramo ligando um nó-filho a um
nó-pai é etiquetado com um valor do atributo contido no nó-pai. Existem tantos
ramos quantos valores possíveis para este atributo; (iv) um atributo que
aparece num nó não pode aparecer em seus nós descendentes. A figura 14,
abaixo, traz um exemplo de uma árvore de decisão:
IDADE
≤ 30 > 60
31..50 51..60
RENDA Não
Sim Sim
B
M M-A A
Não Sim Sim
Sim
Mineração de dados . 40
Total Total Total Total
Entrop(D) = NF1 * Entrop(F1) + NF2 * Entrop(F2)
Total Total
Info(Divisão) = Entrop(A) – Entrop (D)
Maior Info(Divisão) Atributo escolhido
Sol
Chuva Sim Encoberto
Sim
Não
Não
Não
Mineração de dados . 41
Os cálculos de entropia para esse atributo são os seguintes:
onde Li são expressões do tipo Atributo = Valor. Para cada caminho, da raiz
até uma folha, tem-se uma regra de classificação. Cada par (atributo,valor)
neste caminho dá origem a um Li. Para a árvore de decisão da figura 14,
apresentada anteriormente (acima), temos o seguinte conjunto de regras de
classificação:
IF Idade =< 30 AND Renda = Baixa THEN Classe = Não
IF Idade =< 30 AND Renda = Média THEN Classe = Sim
IF Idade =< 30 AND Renda = Média-Alta THEN Classe = Sim
IF Idade =< 30 AND Renda = Alta THEN Classe = Sim
IF Idade 31..50 THEN Classe = Sim
IF Idade 51..60 THEN Classe = Sim
IF Idade > 60 THEN Classe = Não
Redes neurais
A segunda técnica para a implementação da mineração de dados por
classificação que veremos é o uso de Redes Neurais para classificar os dados de
uma dada fonte de dados. As redes neurais foram projetadas por psicólogos e
neurobiologistas com o objetivo de desenvolver um conceito de neurônio
Mineração de dados . 42
artificial análogo ao neurônio natural. Especificamente no contexto da Mineração
de Dados, um algoritmo de redes neurais é usado para classificar as tuplas do
banco de dados. Esse algoritmo recebe como input um banco de dados de
treinamento e retorna como output uma rede neural. Esta rede também poderá
ser transformada num conjunto de regras de classificação, tal como as árvores
de decisão. A única e grande diferença é que esta transformação não é tão
evidente como no caso das árvores.
Uma rede neural corresponde a um conjunto de unidades do tipo que
representam um neurônio e estão ligadas umas às outras com um peso
associado. Cada vértice de uma camada é ligado a todos os vértices da camada
seguinte. O processo de aprendizado de certo conceito pela rede neural
corresponde à associação de pesos adequados às diferentes conexões entre os
neurônios.
Observe que a camada de input inclui os nós que correspondem aos atributos
comuns do banco de dados de treinamento e a camada de output representa os
possíveis valores do atributo-classe e que ainda w32 indica o peso associado
(custo) de ir do nó 3 ao nó 2 desta rede neural.
Antes da execução do processo de classificação dos dados usando redes
neurais alguns aspectos fundamentais devem ser analisados. São eles: (i) definir
a melhor topologia da rede neural; (ii) inicializar e definir os parâmetros da rede.
Sobre a topologia de rede os atributos que devem ser definidos são os
seguintes:
– Definir número de unidades na camada de input: em geral,
esse número equivale aos valores distintos de cada um dos
atributos representados. Por exemplo, suponhamos que Idade e
RendaMensal sejam atributos não-classe e seus valores respectivos
são { <= 30, 30..40, 40..50, >= 50 } e { Baixa, Média, Média-Alta,
Alta }. Então, teremos pelo menos 8 unidades de input, 4 para o
atributo Idade e 4 para o atributo RendaMensal.
– Definir número de camadas intermediárias: normalmente 1
(uma) só camada é necessária.
– Definir o número de neurônios nas camadas intermediárias:
não há regras para este parâmetro.
– Definir o número de neurônios na camada de output: em
geral, esse número corresponde ao número de classes do
problema.
Encontrar uma topologia ideal para a rede neural é um processo
extremamente trabalhoso e demorado, podendo levar um bom tempo de
execução do algoritmo na rede neural (a cada iteração ao varrer o banco de
dados uma vez é chamado de época, assim um grande número de épocas pode
ser necessário). Se a rede treinada é julgada não confiável, repete-se o processo
de treinamento com outra topologia e outros pesos e tendências iniciais. É um
processo de tentativa e erro.
O processo de classificação por redes neurais em si envolve uma série de
detalhes e operações. Para entendê-lo iremos utilizar o algoritmo mais usual
para classificação em redes neurais – o Backpropagation. Para entender o
funcionamento desse algoritmo numa rede neural, tomamos como referência
Amo (2003), que o descreve da seguinte maneira:
1. Dispõe-se de um banco de dados de treinamento composto de uma
única tabela. Uma das colunas desta tabela corresponde ao Atributo-
Classe. As amostras já estão classificadas. A rede será treinada para
Mineração de dados . 43
aprender (em cima destas amostras) como classificar corretamente novos
dados.
2. Para cada amostra X = (x1, ..., xn), onde x1,..., xn são os valores
correspondentes aos atributos não-classe, os elementos x1, ..., xn são
fornecidos a cada uma das unidades da camada de input. Cada unidade
da camada de input fornece como output o mesmo xi que recebeu como
input.
3. Cada unidade da próxima camada receberá como input uma
combinação adequada (envolvendo os pesos das conexões) dos outputs
de cada uma das unidades da camada precedente à qual está conectada.
Esta unidade retornará como output o resultado da aplicação de certa
função de ativação aplicada ao valor que recebeu como input. Calcula-se a
diferença entre o vetor (O1; ... ;On) ( onde cada Oj é o valor de output
produzido na j-ésima unidade da camada de output, para j = 1; ... ; n ) e
o vetor ideal (0,0,...,1,0,0,...0) que deveria ter sido produzido se a rede
estivesse treinada.
4. Este processo (passo 3) vai se repetindo camada por camada até
chegar à última (camada de output). Caso a diferença Δ = min { Oj – ej ,
j = 1...n } seja muito grande, é porque a rede ainda não está bem
treinada, não aprendeu ainda a classificar uma amostra corretamente. Um
processo de percurso inverso se inicia, com os pesos das conexões sendo
reavaliados de acordo com uma função que depende da diferença Δ. Este
processo é chamado de Backpropagation.
5. Quando este processo de Backpropagation termina, estamos
novamente na situação inicial, só que os pesos das conexões foram
alterados. Agora, a segunda amostra do banco de dados será utilizada
para o aprendizado da mesma forma como o foi primeira.
6. O algoritmo para quando uma das condições a seguir se verifica
numa determinada época:
o Na época precedente, para cada amostra testada, todas as
diferenças entre os pesos Δ wij são muito pequenas, isto é, menor
que certo nível mínimo fornecido.
o Só uma pequena porcentagem de amostras (abaixo de um
nível mínimo fornecido) foi mal classificada na época precedente.
o Um número de épocas máximo pré-especificado já se passou.
Mineração de dados . 44
Figura 16: Uso do algoritmo Backpropagation numa rede neural
Algoritmo Backpropagation
F(x) = 1/(1+e-x)
Mineração de dados . 45
onde wjk = peso da conexão ligando a unidade j à unidade k da
camada seguinte, e Ek é o erro que já foi calculado nesta unidade k.
Novo peso wij:
Novo wij = Velho wij + λ EjOi
onde a constante λ é um parâmetro do algoritmo e é chamada de taxa
de aprendizado. É um número entre 0 e 1. Este parâmetro ajuda a evitar
que o processo fique “parado” num mínimo local.
Nova Tendência θj:
Novo θj = Velho θj + λ Ej
Assim, para o exemplo apresentado temos os seguintes cálculos de
erros na fase de volta (Tabela 7):
Mineração de dados . 46
São classificadores robustos, pois produzem boa acurácia mesmo
em presença de ruídos. Sua acurácia é muito superior à acurácia de
classificadores baseados em árvores de decisão.
Alta tolerância a ruídos.
Produz resultados confiáveis.
Hoje já existem softwares eficientes que implementam essa técnica.
Desvantagens:
Fase de treinamento demorada
Muitos parâmetros determinados empiricamente, tais como:
topologia de rede, taxa de aprendizado, função de ativação (f(x)).
Fraca interpretabilidade do ponto de vista do usuário
Problemas para extração das regras de classificação da rede
treinada.
Exige diversas tentativas para encontrar a topologia adequada.
Pouca utilidade num ambiente de grande volume de dados
Redes Bayesianas
A última técnica que apresentamos para a classificação de dados corresponde
à classificação através de Redes Bayesianas. Sua inclusão se justifica pelo fato
de que tal técnica produz resultados rapidamente e de grande correção quando
aplicados a grandes volumes de dados, comparáveis aos resultados produzidos
por árvores de decisão e redes neurais.
Classificadores Bayesianos são classificadores estatísticos que classificam um
objeto numa determinada classe baseando-se na probabilidade deste objeto
pertencer a esta classe. Existem diferentes tipos de classificadores bayesianos,
tais como os bayesianos simples (ou ingênuos) e os bayesianos de crença.
Iremos nos concentrar apenas nos classificadores bayesianos simples.
Os classificadores Bayseanos Simples supõem como hipótese de trabalho que
o efeito do valor de um atributo não-classe é independente dos valores dos
outros atributos. Isto é, o valor de um atributo não influencia o valor dos outros.
Esta hipótese tem como objetivo facilitar os cálculos envolvidos na tarefa de
classificação.
Mais uma vez recorremos a Amo (2003) para mostrar um exemplo de
funcionamento desta técnica. Por exemplo, suponhamos os atributos Idade,
Profissão, Renda. É claro que estes atributos não são independentes uns dos
outros. Uma pessoa com profissão Médico tem maior probabilidade de ter uma
renda alta do que um porteiro. Uma pessoa com idade superior a 40 tem maior
probabilidade de ter uma renda alta do que alguém com menos de 25 anos.
Assim, vemos que os valores dos atributos dependem uns dos outros. Por outro
lado, é claro que os atributos Gênero, Cidade, Idade são independentes uns dos
outros. Um Classificador Bayseano Simples funciona da seguinte maneira:
Consideramos um banco de dados de amostras classificadas em m
classes distintas C1; C2, ... ;Cm. Suponha que X é uma tupla a ser
classificada (não está no banco de dados de amostras). O classificador vai
classificar X numa classe C para a qual a probabilidade condicional P[C|X]
é a mais alta possível. Repare que os valores dos atributos de X podem
ser encarados como um evento conjunto. Assim, se os atributos do banco
de dados são Idade, Profissão e Renda e X = (30..40; Professor; Alta),
então X pode ser vista como o evento Idade = 30..40, Profissão =
Professor e Renda = Alta. X será classificada na classe C se a
probabilidade condicional de C acontecer dado que X acontece é maior do
Mineração de dados . 47
que a probabilidade de qualquer outra classe C0 acontecer dado que X
acontece.
Assim, a tupla X será classificada na classe Ci se P[Ci | X] > P[Cj
|X] para todas as outras classes Cj , Cj ≠ Ci. Esta probabilidade P[Ci|X]
também é chamada probabilidade posterior.
Para se calcular a probabilidade posterior de cada classe utiliza-se o
Teorema de Bayes, conforme fórmulas abaixo:
P[X ∩ C] = P[X|C] * P[C] = P[C|X] * P[X]
Mineração de dados . 48
P[Estudante = sim | Compra = Não ] = 1/5 = 0.2
P[Crédito = bom| Compra = Sim ] = 6/9 = 0.667
P[Crédito = bom | Compra = Não ] = 2/5 = 0.4
Clusterização (Agrupamento)
Nesta seção 2.3 destacamos uma tarefa de mineração de dados conhecida
como Clusterização ou Agrupamento, que assim como as duas tarefas descritas
anteriormente, é bastante comum na área de mineração e muito importante
para uma série de problemas de identificação e recuperação de dados das mais
diferentes fontes de dados.
Um cluster é um conjunto de objetos no qual cada objeto está mais próximo
(ou é mais similar) a objetos dentro do cluster do que qualquer objeto fora do
cluster. Nesse sentido, a análise de clusters é o processo de agrupar um
conjunto de objetos físicos ou abstratos em classes de objetos similares,
chamado de Clusterização ou Agrupamento.
Mineração de dados . 49
Figura 17: Matriz de dissimilaridade com distância Euclidiana
Um exemplo bastante comum de aplicação da tarefa de Clusterização é para a
segmentação de mercado. Neste tipo de problema, o objetivo é subdividir um
mercado em subconjuntos distintos onde qualquer subconjunto de clientes possa
ser selecionado como um “target” a ser alcançado com uma estratégia
diferenciada de marketing. Em geral, a abordagem usada para resolver esse
problema por clusterização consiste nas seguintes etapas: (i) coletar atributos
diferentes de clientes baseado nas informações relacionadas com seu estilo de
vida e aspectos geográficos, por exemplo; (ii) desenvolver nuvens de clientes
similares; (iii) medir a qualidade da nuvem observando os padrões de compra
dos clientes no mesmo cluster versus aqueles em nuvens diferentes.
Além deste exemplo, existe uma boa faixa de problemas que podem ser
resolvidos pela tarefa de clusterização, como por exemplo: (i) a aplicação de
clusterização conceitual no reconhecimento de padrões gráficos: neste caso, o
critério usado para a formação de clusters pode ser a forma geométrica dos
objetos analisados; (ii) análise do uso da internet por grupos de usuários: neste
caso, podem ser formados clusters agrupando em clusters diferentes usuários
que fazem grande uso da internet (por exemplo, pessoas com perfil mais jovem)
e usuários que fazem uso esporádico da internet (por exemplo, pessoas com
idade superior a 60 anos); (iii) entre outras aplicações.
Antes de apresentarmos propriamente os algoritmos para a tarefa de
clusterização é importante ressaltar que é necessária uma transformação de
dados antes da aplicação dos algoritmos. Muitos algoritmos se aplicam à matriz
de dissimilaridade dos objetos (só interessam as distâncias relativas entre os
objetos e não os valores dos atributos dos objetos). Assim, antes de aplicar o
algoritmo é preciso transformar a matriz de dados em uma matriz de
dissimilaridade. Os métodos de transformação dependem do tipo de valores que
assumem os atributos dos objetos. Assim, é importante apresentar os tipos de
atributos, que segundo Amo (2003) são os seguintes:
1. Atributos Contínuos em intervalos
– É quando todos os atributos possuem valores que ficam num
intervalo contínuo, como por exemplo, peso, altura, latitude,
longitude, temperatura.
– As unidades de medida desses valores podem afetar a análise
de cluster.
– Neste caso é necessário padronizar os dados, ou seja, dar um
peso igual a cada um dos atributos. Para isso calcula-se o desvio
médio absoluto para cada atributo ou a medida padrão ou z-score
para o atributo f de cada objeto i.
2. Atributos Binários
– São tipos de atributos onde são aceitos apenas 2 valores: 0
ou 1.
– Tratar valores binários como valores numéricos pode levar a
análises de clusters errôneas, por isso constrói-se uma tabela de
contingência para determinar a matriz de dissimilaridade para
valores binários.
3. Atributos Simétricos
– É um tipo especial de atributo booleano tal que ambos os
valores de 0 ou 1 são igualmente importantes para a análise de
clusters.
– A distância entre i e j é definida como:
d (i, j) = ___r + s___
q+r+s+t
4. Atributos Assimétricos
– É um tipo de atributo booleano tal que existe uma
predominância de algum dos valores (0 ou 1). Ex: teste para
detectar uma doença.
– A distância entre i e j é definida como:
– d (i, j) = ___r + s___
q+r+s
5. Atributos Nominais
– É um atributo discreto, que assume um pequeno número de
valores.
– Exemplo: Cor assumindo 5 valores.
– A distância entre i e j é definida como:
d (i, j) = p – m
p
onde m é o número total de coincidências e p é o número total de
atributos.
6. Atributos Ordinais
– Semelhantes a um atributo nominal, exceto pelo fato de que
os valores assumidos estão ordenados.
– Exemplo: TipoMedalha (Bronze (0), Prata (1) e Ouro (2))
Mineração de dados . 52
vão sendo realocados para outras partes de tal modo a melhorar o
particionamento a cada iteração, isto é, de tal modo que cada parte
realmente contenha objetos que estão próximos e objetos em partes
distintas estejam longe um do outro.
Métodos hierárquicos aglomerativos: no passo inicial, cada
elemento do banco de dados forma um cluster. Nas próximas iterações,
pares de clusters da iteração precedente que satisfazem certo critério de
distância mínima são aglutinados num único cluster. O processo termina
quando um número de clusters k fornecido pelo usuário é atingido. Um
método conhecido deste tipo é o AGNES (AGlomerative NESting).
Métodos hierárquicos divisórios: no passo inicial, cria-se um
único cluster composto pelo banco de dados inteiro. Nas próximas
iterações, os clusters são subdivididos em duas partes, de acordo com
algum critério de similaridade. O processo termina quando um número de
clusters k fornecido pelo usuário é atingido. Um método conhecido deste
tipo é o DIANA (DIvisive ANAlysis).
Métodos baseados em densidade: são métodos adequados para
descobrir clusters de formato arbitrário, e não somente de formato
esférico como é o caso dos métodos por particionamento e hierárquico.
Nestes métodos os clusters são regiões densas de objetos no espaço de
dados que são separadas por regiões de baixa densidade (representando
ruídos). Entende-se por região densa uma região onde uma e-vizinhança
de cada ponto (onde e é um parâmetro dado) contém pelo menos um
número dado M de pontos. Alguns algoritmos conhecidos baseados em
densidade são: DBSCAN, OPTICS, DENCLUE.
Sobre as técnicas (ou algoritmos) que implementam a tarefa de clusterização
vamos destacar duas técnicas mais comuns que são métodos baseados em
particionamento. São eles: (i) o algoritmo k-médias; (ii) o algoritmo k-
medóides.
Algoritmo k-médias
A ideia geral deste algoritmo pode ser descrita da seguinte maneira:
1. Selecione k pontos como centróides iniciais
2. Repita
Forme k clusters associando cada objeto a seu centróide mais
próximo
Recalcule o centróide (centro de gravidade do cluster) de
cada cluster
3. Até que Centróides não apresentem mudanças, ou seja, os clusters
estejam estabilizados.
Mineração de dados . 53
Figura 18: Funcionamento do algoritmo k-médias
Algoritmo k-medóides
Esse algoritmo foi criado com o objetivo de neutralizar a desvantagem do
algoritmo k-médias em relação a sua sensibilidade a ruídos. Sua principal
diferença em relação ao k-médias é que os elementos representativos dos
clusters não são necessariamente os centróides. Diversos algoritmos foram
desenvolvidos utilizando o método k-medóides, entre eles, temos:
PAM (Partinioning Around Medoids)
CLARA (Clustering LARge Aplications)
CLARANS (Clustering LARge Aplications based on
RANdomized Search)
Mineração de dados . 55
Capítulo 3 – Projeto de Mineração de Dados
Os capítulos anteriores (1 e 2) desse curso de mineração de dados,
apresentou os conceitos fundamentais da área, que incluem a caracterização da
mineração de dados como uma das etapas essenciais no processo de descoberta
de conhecimento de bancos de dados (KDD) e também a descrição das
principais tarefas e técnicas de mineração de dados. De posse desses conceitos,
é possível apresentarmos agora (capítulo 3) um roteiro de elaboração de um
projeto de mineração de dados, descrevendo todas as etapas envolvidas nesse
projeto e discutindo os pontos essenciais em cada uma das etapas. Tomou-se
como referência principal para a apresentação das etapas de elaboração de um
projeto de mineração de dados Braga (2005), para o qual podemos especificar
como etapas do projeto as seguintes:
1. Definição do Problema
2. Aquisição e Avaliação dos Dados
3. Transformação e Codificação dos Dados
4. Prototipagem e Desenvolvimento do Modelo de Mineração
5. Avaliação e Validação do Modelo de Mineração
6. Avaliação do Retorno de Investimento
Definição do problema
Esta etapa representa um dos pilares da elaboração do projeto de mineração,
já que sua execução interfere diretamente na realização das etapas seguintes do
projeto. Assim, como em qualquer projeto da área de Engenharia de Software
(Análise de Sistemas) o maior desafio é descobrir as necessidades do cliente.
Nesse contexto, algumas tarefas são primordiais:
– Entrevistar o usuário final;
– Entrevistar o responsável pela manutenção dos dados;
– Compilar documentação;
– Selecionar mídia e meios de armazenamento;
– Considerar o ambiente de software e hardware da empresa.
Mineração de dados . 56
A partir das metas desenvolve-se uma sequência de passos que levem à
consecução das mesmas. Este processo leva à construção de um modelo
conceitual ou modelo de informação, que na prática é uma representação formal
de um sistema, descrevendo suas entradas e suas saídas. Entradas podem ser
entendidas como condições correntes e saídas como predições ou consultas.
Normalmente, um projeto de mineração de dados produz dois tipos de
modelo: os preditivos e os descritivos. De uma forma geral, um modelo
descritivo provê informação sobre o estado atual do sistema, e um modelo
preditivo sobre estados futuros do sistema. A palavra “futuro” deve ser
entendida em senso amplo, isto é, não necessariamente numa escala temporal.
Por exemplo, uma predição pode representar a receita no próximo ano, mas
também a pontuação de um cliente potencial. Um modelo preditivo calcula
algum valor que representa um nível de atividade futura, um modelo descritivo
descobre regras que são usadas para agrupar itens em categorias.
Dentre os modelos preditivos temos diversos tipos, cada um com um
propósito diferente. Alguns desses tipos de modelos preditivos são:
– Modelo de Resposta: procura determinar dentre os clientes quem
reagirá a uma oferta de produto ou serviço.
– Modelo de Risco: prediz a probabilidade de que um tomador de
crédito não honre sua dívida.
– Modelo de Ativação: prediz se um cliente inicial irá efetivamente se
tornar cliente.
– Cross-sell: prediz a probabilidade ou valor de um cliente comprar
outro produto ou serviço na empresa.
– Up-sell: prediz a probabilidade ou valor de um cliente aumentar
suas compras do mesmo produto ou serviço na empresa.
– Attrition: prediz a redução do consumo ou uso de um serviço ou
produto.
– Valor líquido presente de um produto (Net present value): prediz a
lucratividade de um produto por um período predeterminado de tempo.
– Valor líquido presente de um cliente (Lifetime value): prediz a
lucratividade de um cliente por um período predeterminado de tempo.
Dentre os modelos descritivos podemos destacar:
– Análise de Perfil: produz estatísticas sobre os clientes relativos a
seus atributos demográficos (idade média, proporção de gênero,
proporção de casados, proporção de solteiros, tempo médio de residência
etc.). A análise de perfil é mais efetiva quando aplicada a segmentos.
– Segmentação: segmenta os clientes segundo um conjunto de
critérios, por exemplo, lucratividade e potencial.
Outro aspecto essencial na etapa de definição do problema é selecionar as
fontes de dados a serem usadas no projeto de mineração. Existem diversas
fontes de dados que podem ser aproveitadas: (i) banco de dados de clientes
(idcliente, iddomicilio, numconta, nome, endereço, telefone, daddemgrf
etc...); (ii) banco de dados de transações (idcliente, numconta, valor, data
etc...); (iii) banco de dados de campanhas (idcliente, idprospect); (iv) banco de
dados de pesquisas. Dependendo da finalidade da modelagem o conjunto de
dados a ser utilizado deve mudar. Assim em uma modelagem para metas junto
a clientes, os bancos de dados de transações e cadastros serão utilizados
enquanto que em uma modelagem para avaliação de captação de novos
clientes, o banco de dados de campanhas já seria mais indicado. A aquisição,
Mineração de dados . 57
manutenção e acesso a esses dados se faz normalmente a partir da construção
de um data warehouse ou um datamart.
Mineração de dados . 58
Nesta etapa é preciso identificar quais atributos contribuem para a resolução
do problema. Atributos que não se alteram, em nada contribuem para a análise.
Da mesma forma atributos fortemente dependentes podem ser reduzidos. O
objetivo principal desta etapa é produzir um conjunto de dados (data set)
representativo, reproduzível e confiável.
Pode-se citar como tarefas desta etapa as seguintes:
– Estabelecer critérios para a detecção de erros e de outliers;
– Tratar os erros identificados;
– Tratar os valores aberrantes (outliers);
– Tratar os valores faltantes (missing values);
– Usar procedimentos para transformação de variáveis;
– Usar procedimentos para redução de variáveis.
Mineração de dados . 59
estabelece-se, portanto, uma data de referência a partir do qual os dias
são contados.
– Codificação simbólica – transformar dados quantitativos em
qualitativos, não deixa de ser uma forma de sumarização. Intervalos de
variação passam a ser associados a uma categoria.
– Redução de variáveis – eliminar variáveis redundantes ou com
pouco poder preditivo.
– Parametrização – transformar uma variável em outra cujo domínio
de variação seja mais adequado. Por exemplo, a padronização.
Dentre esses métodos de transformação de dados mencionados, para a
redução de variáveis (ou codificação) é importante destacar alguns pontos. A
redução de variáveis ou redução de dimensionalidade tem como objetivo
eliminar atributos irrelevantes ou pouco relevantes tendo em vista o problema
selecionado. Por exemplo, para um modelo preditivo da preferência por um tipo
de revista a cor dos olhos ou altura não é significativo. Ou, em outras palavras,
se uma variável preditiva e a variável resposta forem independentes, não há
motivo para incluí-la no modelo. Uma maneira de se avaliar esta independência
é mediante a estatística qui-quadrada que para variáveis independentes
forneceria valores pequenos com alta chance de ocorrer. O cálculo dessa métrica
estatística pode ser feito a partir da seguinte fórmula:
Nessa figura 21, é possível observar que as variáveis IV e VI têm baixo poder
preditivo e podem ser eliminadas porque a diferença entre as frequências
observadas (relativas a estas variáveis) e esperadas é baixa com probabilidade
alta. Com a estatística qui-quadrada é possível medir essa diferença entre o
valor esperado e o observado e concluir que as variáveis IV e VI deste exemplo
não serão úteis no processo de mineração desses dados e, assim, podem ser
reduzidas (eliminadas). Um último registro quanto à redução de variáveis é que
usualmente os pacotes computacionais que calculam um tipo de regressão
conhecida como logística apresentam os valores da estatística qui-quadrada para
cada variável, podendo-se assim em um modelo preliminar que inclua todas as
variáveis ter uma indicação das variáveis descartáveis.
Mineração de dados . 60
elaboração do projeto de mineração. Em geral, pode-se afirmar que esta etapa
inclui as seguintes tarefas:
– Selecionar o método de mineração de dados
– Desenvolver hipóteses e testes (Plano de Prototipagem)
– Construir o protótipo (Prototipagem)
– Desenvolver modelos descritivos ou preditivos
– Executar os modelos nos softwares de mineração (Implementação)
– Entregar o produto final
Além das tarefas mencionadas, num projeto de mineração de dados, como
qualquer outro projeto de TI, deve-se definir alguns aspectos que viabilizam a
execução do projeto. Um projeto de mineração de dados não é diferente em
seus aspectos gerais de um projeto em tecnologia da informação, assim na sua
fase inicial é necessário definir os seguintes aspectos que viabilizam a execução
do projeto:
– Escopo
– Necessidades
– Custo
– Cronograma
– Equipe
A primeira questão a considerar nesta etapa de prototipagem e
desenvolvimento do modelo é a seleção do método de mineração. Para
tanto é necessário um conhecimento prévio das tarefas e técnicas de mineração
de dados, conforme visto no capítulo 2. Neste capítulo 2 foram apresentadas as
tarefas de mineração de dados mais comuns e mais vistas na prática:
Associação, Classificação e Clusterização. Entretanto, as aplicações da mineração
de dados abrangem um conjunto de problemas ainda maior, os quais possuem
características muito específicas para cada um deles. Diz-se na área de
mineração de dados, que o conjunto de problemas que esta ciência pode
resolver não é fechado, isto é, a cada novo dia surgem novas funções de
mineração que podem ser aplicadas aos mais diferentes tipos de problemas
encontrados nas organizações e em pesquisas científicas. Nesta parte do capítulo
3, vamos apresentar brevemente duas outras tarefas de mineração de dados
(Padrões Sequenciais e Regressão), que são tipos especiais das tarefas de
mineração anteriormente apresentadas e também muito usadas na prática.
Padrões Sequenciais
A tarefa de mineração de dados conhecida como identificação de padrões
sequenciais é um tipo especial de regras de associação que leva em conta a
ordem ou a data de ocorrência dos eventos. Nesse sentido, o objetivo desta
tarefa é descobrir sequências de eventos frequentes em um banco de dados de
transações. Por exemplo, quando se observa a ordem em que os eventos
ocorreram num banco de dados de transações, pode-se observar os padrões de
compra dos clientes nesse banco e ser construídas estratégias preditivas de
perfil de compra desses clientes.
Na mineração do banco de dados de uma loja de suprimentos de eletrônica,
por exemplo, é possível, por meio da identificação de padrões sequenciais,
observar os padrões de compra dos clientes da loja e sugerir ofertas de produtos
da loja a esses clientes em períodos específicos de acordo com o padrão de
compra identificado. Um exemplo de um padrão sequencial nesse caso é:
Mineração de dados . 61
“50% dos consumidores que adquirem um netbook compram um HD externo
de 2 a 4 meses após a aquisição do netbook”.
Outra aplicação muito comum de mineração de padrões sequenciais
corresponde à mineração de uso de sites de compra na Internet. Nesse caso,
pode ser feita uma análise dos caminhos de navegação dos usuários do site de
compra e estruturar o site em função disso. Nesse sentido, em função dos
hábitos de navegação, pode-se dispor as diferentes janelas de modo a favorecer
uma sequência de compras. As figuras 22 e 23, abaixo, ilustram essa aplicação
de mineração de padrões sequenciais num site de compras, tal que a figura 22
mostra as páginas mais visitadas do site de compras num período pré-
determinado e a figura 23 apresenta a nova estruturação do site de compras em
função do número de acessos identificado.
Mineração de dados . 62
– Mineração de uso da Web, como por exemplo, a análise de
sequência de cliques de um site
Regressão
Por sua vez, a tarefa de mineração conhecida como Regressão é uma
aplicação especial da Regra de Classificação. Se uma regra de classificação é
considerada uma função sobre as variáveis, que mapeia essas variáveis em uma
variável classe de destino, essa regra é uma Regra de Regressão.
O termo regressão foi introduzido por Francis Galton em 1885 e existem
diferentes tipos de regressão, tais como a regressão linear, a regressão logística,
a regressão exponencial, a regressão multivariada, entre outras. Porém, nossa
descrição será para o tipo mais comum de regressão que corresponde à
Regressão Linear. Ela pode ser resumida da seguinte maneira:
– É uma técnica estatística utilizada para ajustar um conjunto
de observações ou pontos em n dimensões com a variável de
destino y.
– Em mineração de dados o interesse maior é na previsão do
que na explicação do papel dos coeficientes.
– Para se fazer a previsão precisa-se estimar os coeficientes.
Nos modelos de regressão supõe-se que a média de uma variável Y é
dependente de uma ou mais variáveis (X1, X2,...Xr). A variável Y é a variável de
saída ou dependente e as variáveis Xi são as variáveis de entrada, explicativas
ou independentes. O objetivo é maximizar o poder preditivo das variáveis Xi. A
combinação linear destas variáveis é formada para ser o preditor ótimo da
variável resposta. As equações básicas de um modelo de regressão, onde letras
maiúsculas denotam as variáveis e as letras minúsculas denotam valores
observados das mesmas, pode ser descrita da seguinte maneira, conforme
figura 24 abaixo:
Mineração de dados . 63
Figura 23: Banco de dados amostral com dados de famílias
Mineração de dados . 64
desenvolvimento das hipóteses de trabalho para a análise, baseada nas metas
definidas pela empresa e da construção de um plano para testá-las (seleção de
ferramentas, formulação dos experimentos, cronologia, metodologia etc.). Por
exemplo, suponha que o “problema” seja estabelecer um critério que defina para
quais clientes enviar material promocional. Estabelecer a “hipótese” de que para
limiares inferiores de frequência (f), recência (r) e valor monetário (v) de cada
cliente o retorno esperado não recomenda a remessa de material promocional.
Propor um “plano” que determine o uso de três diferentes técnicas de
classificação supervisionada (dois grupos – recebe o material e o que não
recebe): regressão logística, análise discriminante e árvore de decisão para
comparar os resultados e confirmar ou não a hipótese. A hipótese seria negada
caso se encontrasse número significativo de clientes que após receberem a
oferta de promoção passassem a dar um retorno expressivo para a empresa
mesmo tendo as variáveis f, r e v a níveis baixos.
A prototipagem e o desenvolvimento do modelo em si é a tarefa
seguinte nesta etapa. Ela inclui a execução do plano de prototipagem elaborado
anteriormente. Normalmente, a execução do plano é a tarefa que envolve mais
erros na prática num projeto de mineração. Isso ocorre porque os dados de
treinamento são utilizados, mas nunca os dados de validação. Diferentemente de
outros processos de desenvolvimento de modelos, o analista de mineração de
dados não deve acreditar que o primeiro modelo é o definitivo. A prototipagem
em mineração de dados segue o paradigma espiral, em oposição ao paradigma
sequencial ou em cascata. Isto significa que os passos na prototipagem podem
ser rearranjados, ajustados quanto ao seu alcance e repetidos quantas vezes
forem necessárias. Portanto, vários modelos podem ser construídos até se
chegar a um ou mais modelos satisfatórios. Em mineração de dados constroem-
se incrementalmente modelos mais robustos. A modelagem, necessariamente,
passa por três etapas:
a) Formulação do modelo (especificação)
b) Ajuste do modelo (estimação)
c) Checagem do modelo (validação)
Mineração de dados . 65
que o plano de prototipagem envolva mais de um conjunto de dados sempre que
possível e que se ajuste a mais de um modelo.
A tarefa seguinte nesta etapa de prototipagem e desenvolvimento de um
modelo de mineração corresponde à chamada implementação.
Implementação, neste caso, corresponde à tarefa de execução do modelo
construído em um software de mineração de dados. Para tanto, é muito
importante nesta etapa escolher um software de mineração mais adequado aos
propósitos da organização e ao seu tipo de negócio, já que ambos influenciam
nos problemas os quais os projetos de mineração de dados se propõem a
resolver. Neste curso de mineração de dados, vamos citar alguns softwares de
mineração, porém o foco principal é apresentar o funcionamento da ferramenta
WEKA para as tarefas de mineração estudadas. Isso se deve ao fato de que a
ferramenta WEKA é um software de mineração extremamente útil e prático,
sendo bastante adequado para fins didáticos.
Antes propriamente de apresentar uma simulação de uma tarefa de
mineração de dados usando a ferramenta WEKA, é importante chamar a atenção
para alguns aspectos fundamentais quanto à implementação do modelo de
mineração. Entre esses aspectos estão a documentação técnica, exemplos de
uso do modelo e seus benchmarks. A Documentação técnica sobre as
propriedades, características e condições de uso do modelo é um aspecto
primordial. Exemplos e benchmarks do modelo de mineração são essenciais para
o usuário se sentir seguro de que está fazendo a coisa certa. As condições de
uso devem ser bem explícitas. Mineração de dados trabalha com comportamento
e um modelo de avaliação de risco para crédito pode ser acurado para avaliar
clientes nos distritos de classe média de uma cidade e totalmente inadequado
para distritos habitados por trabalhadores. Um exemplo disso é que quando se
abriu a primeira agência bancária na favela da Rocinha havia uma grande
insegurança quanto ao comportamento dos correntistas. Entretanto, ocorreu
exatamente o contrário, tendo a agência se tornado uma dentre um das
agências de menor índice de inadimplência.
Outro aspecto fundamental quanto à implementação do modelo refere-se aos
dados utilizados no modelo. A alimentação de dados no modelo deve ser muito
criteriosa, tanto quanto aonde você abastece seu carro, destaca Braga (2005).
Por exemplo: os dados demográficos usados no modelo elaborado são oriundos
de um levantamento equivalente aos que foram utilizados para construir o
modelo? Por mais paradoxal que pareça não há modelo certo ou errado (se as
etapas anteriores foram corretamente cumpridas), há o uso certo e errado de
um modelo.
Sobre os problemas de implementação de um modelo de mineração pode-se
destacar: (i) a inviabilidade temporal; (ii) inconsistência do projeto. A
inviabilidade temporal pode ocorrer na determinação de modelos baseados em
dados correntes. Por exemplo: dificuldade em desenvolver modelos para
criminalidade baseados em dados diários. Já a inconsistência do projeto de
mineração de dados pode ser causada pela não previsão da necessidade de um
data warehouse. Neste caso, não prever um data warehouse num projeto onde
ele seria necessário, tornam as reformulações do datamart, usado no projeto de
mineração desenvolvido, extremamente demoradas.
Quanto aos softwares de mineração, pode-se afirmar que atualmente existem
centenas de softwares de mineração no mercado, que implementam diferentes
tarefas de mineração e usam diversas técnicas para isso. Em sua maioria, esses
softwares utilizam a interface ODBC para acesso aos bancos de dados a serem
Mineração de dados . 66
minerados e são executados em um ambiente de interface gráfica com o usuário
(GUI). Talvez a única exceção seja o Intelligent Miner da IBM, que é um dos
raros exemplos de softwares de mineração que usam interfaces em modo texto.
Sobre os sistemas operacionais em que os softwares de mineração rodam, pode-
se dizer que há ferramentas e pacotes tanto para Windows (a maioria) e quanto
para plataformas Linux e Mac. Grandes empresas, como a Oracle e a Enterprise-
SQL, incluem em seus pacotes de software de banco de dados soluções de
mineração de dados. Uma característica comum dessas soluções de mineração
de dados do mercado é fornecer ao usuário um conjunto de datasets como
exemplo de funcionamento das ferramentas. A Figura 26 e a Tabela 10, a seguir,
apresentam uma lista de alguns dos principais softwares de mineração do
mercado.
Fonte: http://www-users.cs.umn.edu/~kumar/dmbook/resources.htm
Mineração de dados . 67
NCR Management Regras de Associação
Discovery Tool
Purple MineSet Árvores de decisão, Associação
Insight
SAS Enterprise Miner Árvores de Decisão, Regressão, Redes
Neurais, Clusterização
Mineração de dados . 68
Figura 25: Interface gráfica do WEKA
Mineração de dados . 69
Figura 26: WEKA - Passo 1: Selecionar a fonte de dados
Mineração de dados . 70
Observe na Figura 29, que no arquivo ARFF gerado as declarações de
atributos são indicadas por @attribute e a base de dados é especificada após o
token @data. Os atributos devem aparecer na ordem em que são declarados no
cabeçalho, separados por vírgulas. O último atributo declarado no cabeçalho é o
atributo-classe, os demais atributos são os preditivos. Valores nulos devem
ser indicados por “?” (não há nenhum neste exemplo). Após a geração do
arquivo ARFF, o passo seguinte (passo 3) consiste em abrir esse arquivo no
ambiente WEKA Explorer (veja Figura 30).
Figura 28: WEKA – Passo 3: Abrir a base ARRF no WEKA Explorer
Mineração de dados . 71
O passo 5 consiste na seleção da tarefa de mineração de dados a ser
executada sobre o problema analisado. No exemplo citado, a tarefa de
mineração escolhida foi a Classificação, como mostra a Figura 32, abaixo:
Mineração de dados . 72
mineração de dados deste exemplo mostra que pessoas com idade entre 18 e 40
anos tem a tendência a comprar carros nacionais, já pessoas com idade superior
a 40 anos compram carro nacional quando a renda está entre os parâmetros 0 e
8k e carro importado quando a renda é superior ao valor 8k.
Mineração de dados . 73
Figura 34: WEKA – Passo 8: Avaliar a qualidade dos resultados obtidos
Mineração de dados . 74
e/ou realce insuficiente (por exemplo – desenvolver um modelo de classificação
baseado em atributos com pequena variação para o conjunto de dados
disponível); populações com classes muito desiguais (por exemplo – clientes
fraudadores são a minoria no conjunto de clientes); dependência linear entre os
atributos de entrada (por exemplo – a variável compras estar expressa em duas
moedas diferentes). Sobre os problemas típicos com a seleção da técnica o que
ocorre, normalmente, é que os critérios de ajuste de um modelo geralmente
incidem sobre seus parâmetros, mas os objetivos de previsão ou classificação
vão ser validados sobre as variáveis de saída (target) e não há necessariamente
bi univocidade entre os dois aspectos. Quanto menos aderente ao problema o
modelo for, maiores serão as diferenças entre ajuste e validação.
Por fim temos a questão c) sobre como pode ser feita a validação do modelo
de mineração. Nessa tarefa, o procedimento padrão é analisar os resultados
obtidos em função dos resultados esperados para o processo de mineração.
Quando o método de mineração envolve a predição de parâmetros de um
modelo, a estimativa pode ser avaliada para diferentes amostras, utilizando-se
as seguintes técnicas:
Reamostragem: a reamostragem é originariamente um
método para estimação de parâmetros que não supõe uma distribuição
teórica a priori. A partir de amostras obtidas por reamostragem
constrói-se uma distribuição empírica das estimativas, permitindo-se
assim uma avaliação da estabilidade dos valores encontrados. Duas
técnicas mais usuais para reamostragem são: (i) Jacknife: para um
total de N observações, exclui-se aleatoriamente uma observação. A
predição é feita com base nas N –1 observações restantes e compara-
se com o valor conhecido da observação excluída. O processo é
repetido e a distribuição dos erros valida ou não o modelo. No caso de
grandes amostras, ao invés de se retirar uma observação, retiram-se
aleatoriamente 50% das observações; (ii) Bootstrap: a partir das N
observações extraem-se amostras com reposição. Da mesma forma a
predição é feita com base nestas amostras e comparada com o valor
conhecido.
Comparação de valores e Tabela de Confusão: os resultados
obtidos com a execução do projeto de mineração podem ser validados
a partir da comparação da predição do valor da variável de resposta ou
variável alvo (target) com o valor observado da amostra teste.
A validação desses resultados obtidos a partir da comparação dos
valores conhecidos com os estimados podem ser apresentados em uma
tabela denominada matriz de confusão. Um exemplo de matriz de
confusão é mostrado na figura 37, a seguir, na qual apresenta-se o
número de classificações corretas do modelo de mineração em razão
do número total de observações da amostra. Utilizam-se como
parâmetros, neste exemplo, dois grupos (1 e 2) e o tamanho predito e
verdadeiro de cada grupo.
Mineração de dados . 75
Figura 35: Um exemplo de Matriz de Confusão
Mineração de dados . 76
se os catálogos tivessem sido enviados para todos os clientes, baseando-se num
retorno de 30%?
Com o modelo
Despesas: 797 x 2,70 = 2.151,90
Receita: 271 x 15 = 4.065,00
ROI: (4.065,00 –2.151,90)/2.151,90 x 100 = 88,90%
Sem o modelo
Despesas: 2.000 x 2,70 = 5.400,00
Receita: 600 x 15 = 9.000,00
ROI: (9.000,00 – 5.400,00)/5.400,00 x 100 = 66,67%
Mineração de dados . 77
Referências
ABRIAL, J. R. Data semantics. In: KLIMBIE, J.W. e KOFFEMAN, K. L. (Eds.),
Proceedings of the IFIP Working Conference Data Base Management
(pp. 1–60). Amsterdam: North-Holland, 1974.
CODD, E.F. Extending the database relational model to capture more meaning.
ACM Transactions on Database Systems, 4(4), p. 397–434, 1979.
Mineração de dados . 78
MILTON, S. An ontological comparison and evaluation of data modelling
frameworks. Tese, University of Tasmania, Hobart, AU, School of Information
Systems, 2000.
Mineração de dados . 79