Você está na página 1de 79

Mineração de dados

Fabrício Martins Mendonça

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

Capítulo 1 – Introdução à Mineração de Dados ................................................................... 5


Surgimento da Mineração de Dados ......................................................................................... 5
Justificativas para a Mineração de Dados ............................................................................. 16

Capítulo 2 – Tarefas e técnicas de mineração de Dados ................................................ 20


Regras de associação.................................................................................................................... 21
Classificação ..................................................................................................................................... 38
Clusterização (Agrupamento) .................................................................................................... 49

Capítulo 3 – Projeto de Mineração de Dados ...................................................................... 56


Definição do problema ................................................................................................................. 56
Aquisição e avaliação de Dados................................................................................................ 58
Transformação e codificação dos dados ................................................................................ 58
Prototipagem e desenvolvimento do modelo de mineração .......................................... 60
Avaliação e validação do modelo de mineração ................................................................. 74
Avaliação do Retorno de Investimento .................................................................................. 76

Referências ....................................................................................................................................... 78

Mineração de dados . 3
Glossário

BI – Business intelligence

CRM – Client relationship management

DM – Data Mart

DSS – Decision support systems

DW – Data Warehouse

EIS – Executive information systems

ERP – Enterprise resources planning

GUI – Graphical user interface

KDD – Knowledge discovery databases

ODBC – Open database connectivity

OLAP – Online analytical processing

OLTP – Online transaction processing

SQL – Structure query language

UML – Unified model language

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.

Para explicar o conceito de mineração de dados, o presente capítulo trata dos


seguintes assuntos relacionados ao tema, dividido em seções: na seção 1.1,
explica-se como se deu o surgimento da ciência conhecida como Mineração de
Dados, a partir das necessidades do mercado; nas seções 1.2 e 1.3, caracteriza-
se a mineração de dados como uma etapa imprescindível no processo de
descoberta do conhecimento em bancos de dados (KDD – Knowledge Discovery
Databases); e na seção 1.4, apresentam-se justificativas sobre os usos e
aplicações da mineração de dados diante do atual cenário informacional dos
negócios das organizações.

Surgimento da Mineração de Dados


O objetivo desta seção é explicar como surgiu na área de Banco de Dados e,
consequentemente, no mundo dos negócios, a necessidade de um tratamento
analítico mais elaborado das informações presentes nos bancos de dados das
organizações, que é possível graças à utilização de técnicas da mineração de
dados. Para atingir esse objetivo, a presente seção apresenta uma breve
descrição histórica de como se deu a evolução das técnicas de bancos de dados
e como essa evolução criou um cenário indicado para a aplicação de técnicas de
mineração de dados de forma a tratar o grande volume de informações
presentes nos bancos de dados das organizações.

Modelos de dados são criados nas organizações com o objetivo de representar


o que deve ser codificado e processado em sistemas de informação. Os sistemas
de informação organizacionais têm papel relevante na consolidação de práticas
administrativas relacionadas às necessidades das pessoas no desempenho de
suas funções. O desenvolvimento de sistemas de informação envolve a criação
de modelos para representar atividades que tem lugar nos mais diversos tipos
de organizações. Um modelo de dados organizacionais é uma representação
explícita da estrutura, atividades, processos, fluxos, metas e restrições de uma
organização.

No desenvolvimento de sistemas de informação, modelagem conceitual é o


estágio em que os modelos são criados para representar a compreensão
humana. Modelos conceituais são criados a partir de abstrações da realidade de
acordo com a perspectiva de um indivíduo ou grupo de indivíduos. Abstrações
são meios de especificar entidades e as relações entre entidades dentro do
domínio de um campo do conhecimento que é de interesse para os usuários do
sistema.

As primeiras iniciativas para a especificação de modelos de dados datam do


final dos anos 1950. Tais iniciativas foram conduzidas de forma a criar modelos
que atendessem aos requisitos de estruturas de dados computacionais. Nos anos
de 1960, a pesquisa em bancos de dados gerou três tipos principais de modelos

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.

Os primeiros modelos semânticos usados em modelagem conceitual


apareceram nos anos 1970 no contexto do trabalho do comitê ANSI/X3/SPARC
para padronização dos sistemas de gerenciamento de bancos de dados. Dentre
estes, os mais conhecidos são o modelo de dados semântico (ABRIAL, 1974), a
arquitetura em três camadas (JARDINE, 1976), o modelo entidade
relacionamento (CODD, 1979), dentre outros. As principais características dos
modelos semânticos, em comparação com os anteriores, é a facilidade de
entendimento. O modelo entidade relacionamento, por exemplo, fornece termos
adicionais para uso como primitivas de modelagem.

A evolução dos modelos e dessas tecnologias de Banco de Dados a partir dos


anos 80 possibilitou que as organizações coletassem e armazenassem de forma
contínua uma enorme quantidade de dados sobre clientes, fornecedores,
produtos e serviços, aumentado sensivelmente o volume de dados presentes nos
bancos de dados das organizações.

Nos anos 1990, propostas para modelagem orientada a objetos se tornaram


populares. Os modelos orientados a objetos têm características adicionais em
relação aos modelos de dados, mas também mantém similaridades (MILTON,
2000). A Linguagem de Modelagem Conceitual (popularmente conhecida como
UML) foi uma tentativa de padronizar notações orientadas à objeto que reuniu
outras iniciativas: o método de Booch, a técnica de modelagem de objetos, a
engenharia de software orientada a objetos, dentre outras.

Nessa mesma década, observou-se a popularização e o uso intensivo da


Internet por parte das organizações e de usuários finais. Com algumas
diferenças na época em que a Internet se tornou popular entre os países do
mundo, por exemplo, entre os Estados Unidos e o Brasil, de maneira geral, a
partir desta década de 90 até os dias de hoje observa-se um uso intensivo das
novas tecnologias da informação e comunicação, tais como as redes sociais, os
dispositivos móveis, os sistemas de informação eletrônicos, entre outros. O uso
de tais tecnologias contribuiu com um problema designado na literatura da área
como “explosão informacional” (BUSH, 1945), de forma a chamar a atenção dos
usuários da informação para o expressivo volume de dados presentes tanto em
ambientes distribuídos, como a Internet, quanto em grandes bancos de dados
locais das mais diferentes organizações.

Essa explosão informacional possibilitada pela evolução das técnicas e


tecnologias de bancos de dados, bem como das tecnologias da informação e da
comunicação, inseridas no contexto da Internet, é elevada a níveis ainda
maiores devido ao atual cenário do mundo dos negócios, que pode ser descrito
como um mercado global e altamente competitivo. A cada novo dia, quantidades
gigantescas de dados são coletadas e armazenadas em empresas, corporações,
órgãos governamentais, entre outros tipos de organizações. Dados esses
referentes à navegação na internet, dados de comércio eletrônico, dados de

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.

Nesse cenário de competição de mercado, o maior desafio que as empresas


enfrentam é o de manter uma carteira de clientes lucrativos. Não se trata mais
de organizar a produção, reduzir custos e atender bem – condições necessárias,
mas não suficientes para vencer no mercado global e altamente competitivo. É
preciso, mediante o conhecimento adquirido sobre seus clientes, ser capaz de
interpretar seus objetivos, expectativas e desejos, e, nesse ponto, as técnicas de
mineração de dados podem ser muito úteis para os negócios da organização,
dando apoio às tarefas de tomada de decisão.
Ainda nesse cenário, o comércio eletrônico (e-commerce) tem um papel
fundamental. Este novo tipo de comércio vem pressionando drasticamente as
empresas para utilização de formas mais elaboradas de obtenção de
conhecimento sobre seus clientes. A grande diferença entre as empresas reais e
as empresas na Internet, supondo-se que o básico seja atingido, é o
relacionamento. O negócio que conhece seus clientes vai servi-los ainda melhor.
Igualmente no setor público a introdução do e-governo visa potencializar o
acesso da população às diversas instâncias governamentais, aumentando a
pressão sobre o funcionamento da burocracia estatal.
Frente a esse cenário atual do mundo dos negócios é que emerge a
necessidade de técnicas e tecnologias mais elaboradas para tratamento e
descoberta de informações nos mais diferentes bancos de dados. Nesse
contexto, a mineração de dados surge como uma linha de pesquisa
multidisciplinar e campo de atuação que se preocupa com a proposição de
metodologias (técnicas) e algoritmos eficientes para a descoberta de
conhecimento em grandes bancos de dados. A multidisciplinaridade mencionada
deve-se ao fato de que a mineração de dados engloba metodologias de outras
áreas, como o próprio Banco de Dados, Estatística, Aprendizado de Máquina e
Lógica Computacional, de forma a possibilitar a descoberta de conhecimento
escondido em grandes bases de dados.
Alguns autores falam da “mineração de dados centrada no cliente” (customer
centric data mining), que pode ser definida como uma coleção de técnicas e
métodos facilitadora da aquisição e retenção da parte do mercado que cabe a
uma empresa (marketshare). Ainda segundo Braga (2005), para interpretar os
objetivos, expectativas e desejos dos clientes de uma organização não bastam
apenas ferramentas genéricas de Client Relationship Management (CRM),
Enterprise Resources Planning (ERP) ou ainda Business Intelligence (BI). Para
tanto é necessária também a capacidade analítica para identificação de padrões
e predição a partir dos dados estratégicos de uma organização, conseguida
através da aplicação das técnicas de mineração de dados.
Em outras palavras, a coleta e o armazenamento de dados, por si só, não
contribuem para melhorar a estratégia da organização. É necessário que sejam
feitas análises sobre essa grande quantidade de dados, estabelecendo-se
indicadores para descobrir padrões de comportamento implícitos nos dados,
assim como relações de causa e efeito. Processar e analisar as informações
geradas pelas enormes bases de dados atuais de forma correta estão entre os
requisitos essenciais para uma boa tomada de decisão.
Após a apresentação dessas noções iniciais sobre a mineração de dados, os
passos seguintes no estudo do tema incluem compreender seu conceito,
caracterizá-lo como uma etapa imprescindível no processo de descoberta de

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 é o processo não trivial de identificar, em dados, padrões


válidos, novos, potencialmente úteis e ultimamente compreensíveis.
FAYYAD et al. 1996.

Conjunto de técnicas utilizadas para explorar exaustivamente e trazer à


superfície relações complexas em um conjunto grande de dados.
MOXTON, 2004.

Mineração de dados é um modo de procurar relações interessantes escondidas


em um grande conjunto de dados, tais como padrões de clustering
(agrupamentos) e aproximações de funções.
KING, 2003.

Mineração de dados é uma metodologia que procura uma descrição lógica ou


matemática, eventualmente de natureza complexa, de padrões e regularidades
em um conjunto de dados.
DECKER e FOCARDI, 1995.

Embora existam algumas diferenças nestas definições apresentadas, todas


estão de acordo com o fato de que a mineração de dados tem por objetivo a
descoberta de conhecimento valioso em grandes bases de dados, usando para
isso estratégias e técnicas automatizadas ou semi-automatizadas.

Nas seções seguintes deste capítulo 1, o conceito de mineração de dados


torna-se ainda mais claro com sua caracterização como uma etapa no processo
de KDD e a referência a algumas aplicações de mineração de dados nos negócios
das organizações, que justificam seu uso atual.

Mineração de dados no processo de


descoberta do conhecimento em bancos de dados
Para uma compreensão mais clara e atual da Mineração de Dados como uma
área de pesquisa relevante no mundo dos negócios é preciso caracterizá-la como
uma etapa essencial no processo de descoberta do conhecimento em bancos de
dados, do inglês Knowledge Discovery in Databases (KDD). Esta não é uma
tarefa difícil, porque a maioria das referências sobre o tema já faz essa
caracterização. Sendo assim, o objetivo desta seção do curso de Mineração de
Dados é descrever a mineração no contexto do KDD.

A gestão do conhecimento é área que estuda o modo como as organizações


entendem o que elas conhecem, o que elas necessitam conhecer e como elas
podem tirar o máximo proveito do conhecimento. A gestão do conhecimento
pode ser vista como um conjunto de atividades que busca desenvolver e
controlar todo tipo de conhecimento em uma organização, visando à utilização

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.

No atual cenário das organizações, esse processo de gestão do conhecimento


é abrangente e complexo, tornando necessária a utilização de tecnologias da
informação, principalmente no que se refere à análise da grande quantidade de
informação que é armazenada. A partir da década de 1990, uma série de
tecnologias da informação foram desenvolvidas com o objetivo de possibilitar as
análises de grandes bases de dados. O uso dessas novas tecnologias de
informação associadas com técnicas e estratégias de negócio fez surgir e
consolidar o conceito de Business Intelligence (BI) ou Inteligência do Negócio
na gestão do conhecimento das organizações. Segundo Braga (2005), Business
Intelligence (BI) é um conjunto de conceitos e metodologias que, fazendo uso
de acontecimentos (fatos) e sistemas baseados nos mesmos, apoia a tomada de
decisões em negócios.

A figura 1, a seguir, ilustra as atuais tecnologias de informação usadas como


ferramentas de Business Intelligence (BI) para dar suporte às atividades de
tomada de decisão nas organizações.

Figura 1: Tecnologias de informação usadas como ferramentas de BI

Fonte: adaptado de Navega (2002)


No esquema de representação da Figura 1, é utilizada uma pirâmide para
apresentar as tecnologias de informação que dão suporte ao processo decisório
de uma empresa (ou organização) de forma que as tecnologias com maior nível
de abstração estão localizadas no topo da pirâmide e aquelas com menor nível
de abstração localizam-se na base da pirâmide. À medida que se caminha na
pirâmide desde sua base até o topo, o volume de informação reduz
sensivelmente, de forma a se ter no topo da pirâmide apenas informações úteis
ao processo decisório de uma organização.
Essa representação mostrada na figura 1 é na verdade uma adaptação
moderna da tradicional pirâmide da informação (veja figura 2) em uma
organização vista como um organismo vivo, de forma que se pode notar um
aumento natural de abstração conforme subimos de nível na pirâmide.

Mineração de dados . 9
Figura 2: Pirâmide da Informação

Fonte: adaptado de Navega (2002).


Voltando à pirâmide das atuais tecnologias de informação (figura 1), é
importante fazer uma breve explicação sobre tais tecnologias, que inclui a
mineração de dados (data mining), mostrando o papel de cada uma delas no
processo de descoberta do conhecimento de bancos de dados.
Na base da pirâmide, temos dados em diversos formatos: registrados em
papel (físico), em arquivos lógicos de computador (planilhas em Excel, por
exemplo), distribuídos na web, armazenados em Bancos de Dados e gerados por
sistemas de processamento on-line de transações – do inglês Online Transaction
Processing (OLTP). Subindo um nível de abstração na pirâmide, temos os Data
Warehouses e os Data Marts, que podem ser definidos da seguinte maneira:
“Data Warehouse é uma coleção de dados orientada a assunto, integrada,
não volátil, variável no tempo para o suporte às decisões da gerência”.
“Data Mart é um subconjunto de dados de um Data Warehouse, geralmente
voltados para um subconjunto da organização, um assunto especial ou uma área
específica, possuindo um foco mais estreito”.
Tanto os data warehouses, quanto os data marts são originados dos bancos
de dados em seu estado bruto, de forma a integrar dados de múltiplas fontes,
processados para armazenamento em um modelo multidimensional. Sendo
assim, eles são otimizados para recuperação de dados e não para o
processamento de transação de rotina, e também costumam apoiar a análise de
série temporal e tendências dos dados. Data warehouses e data marts oferecem
acesso a dados para análise complexa, descoberta de conhecimento e tomada
de decisão, dando suporte a demandas de alto desempenho sobre os dados e
informações de uma organização.
Como forma de ilustrar como os dados estão dispostos em um data
warehouse, apresenta-se um exemplo de uma estrutura multidimensional sobre
vendas de carros na figura 3, abaixo.

Mineração de dados . 10
Figura 3: Exemplo de uma estrutura multidimensional de um data warehouse

A implementação da estrutura multidimensional representada na figura 3 é


possível graças ao conceito de n-D cubóide. Neste caso o 0-D cubóide dá o total
de carros, 15 no caso. Os 1-D cubóides são modelo e cor. No caso do 1-D
cubóide cor, tem-se: 1 Azul, 6 vermelhos, 5 Brancos e 3 Amarelos. Para o 1-D
cubóide Modelo, tem-se: 11 utilitários, 4 sedans. Finalmente o 2-D cubóide
corresponde à descrição da tabela de contingência: 0 utilitários azuis, 6
utilitários vermelhos, 5 utilitários brancos, e assim por diante.
Além do propósito principal dos data warehouses de oferecer apoio ao
processo decisório e de sua estrutura multidimensional existem outras
diferenças que podem ser ditas entre eles e os bancos de dados tradicionais.
Segundo Elsmari e Navathe, enquanto bancos de dados transacionais são
voláteis, os data warehouses são não voláteis. Isso significa que as informações
presentes num data warehouse mudam com muito menos frequência e podem
ser consideradas não de tempo real com atualização periódica. Outra diferença,
segundo tais autores, é que por armazenarem dados processados e de múltiplas
fontes, os data warehouses geralmente são uma ordem de magnitude (às vezes,
duas ordens de magnitude) maiores que os bancos de dados de origem.
A referência aos data warehouses é importante neste curso de Mineração de
Dados, uma vez que essas duas tecnologias estão diretamente relacionadas no
processo de descoberta do conhecimento em banco de dados. Normalmente,
constrói-se um data warehouse a partir do banco de dados original e após esse
processo realiza-se a mineração de dados sobre o data warehouse construído.
Na prática, a mineração de dados ajuda na extração de novos padrões
significativos que não podem ser necessariamente encontrados apenas ao
consultar ou processar dados ou metadados no data warehouse. Nesse sentido,
a mineração de dados complementa os data warehouses na busca pela geração
de conhecimento a partir de bancos de dados.
Subindo mais um nível de abstração na pirâmide da figura 1, encontramos a
Análise estatística e preparação dos dados, que correspondem ao
processamento analítico on-line - do inglês On-line analytical processing
(OLAP). De acordo com Elsmari e Navathe (2011), OLAP é um termo usado para
descrever a análise de dados complexos de um data warehouse. Nas mãos de
trabalhadores do conhecimento habilidosos, as ferramentas OLAP utilizam

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.

Comparando a mineração de dados e as demais tecnologias analíticas para


processamento de dados (OLAP, EIS, DSS), Grossman, Hornick e Meyer (2002)
destacam que a abordagem utilizada nas ferramentas de data mining para
explorar as inter-relações entre os dados difere-se da abordagem usadas nas
tecnologias OLAP, EIS e DSS. As técnicas de data mining não pressupõem que
as relações entre os dados devam ser conhecidas a priori. Ao ser aplicada a
técnica, novas relações entre os dados irão surgir.

Corroborando com esse pensamento, Cardoso e Machado (2008) afirmam que


a análise automatizada e antecipada oferecida pelo data mining vai muito além
da simples análise de eventos passados, que é fornecida pelas ferramentas
típicas de sistemas de apoio à decisão. Com a utilização da técnica, novas
informações de cunho explícito podem ser geradas e podem fazer parte do
conjunto de conhecimentos explícitos de uma organização. O objetivo do data
mining é descobrir, de forma automática ou semi-automática, o conhecimento
que está “escondido” nas grandes quantidades de informações armazenadas nos
bancos de dados da organização, permitindo agilidade na tomada de decisão.

Como forma de resumir e esclarecer o papel de cada uma dessas tecnologias


de BI citadas no processo de geração de conhecimento a partir de bancos de
dados pode-se referenciar a estrutura resumida sobre as tecnologias de BI,
apresentada na figura 4 e na tabela 1, a seguir.

Mineração de dados . 12
Figura 4: Tecnologias de BI usadas no processo de KDD

Fonte: adaptado de Braga (2005).

A figura 4 apresenta de forma resumida o uso de tecnologias de BI na geração


de conhecimento a partir de bases de dados. Para que uma solução de BI possa
dar apoio ao processo de tomada de decisões em negócios torna-se necessário,
inicialmente, adquirir os dados de uma base de dados por meio de um sistema
de processamento on-line de transações (OLTP), em seguida, armazená-los em
um sistema de banco de dados, como um Data warehouse do qual se pode gerar
ainda um subconjunto específico de dados, Data mart e, finalmente, processar
estes dados com uma ferramenta de análise que pode ser: uma ferramenta de
processamento analítico on-line (OLAP); um sistema de informações para
executivos (EIS); um sistema de apoio a decisão (DSS); ou ainda um sistema de
descoberta e previsão (Data mining). Esse processo representado na figura 4 é
um resumo de um conjunto de processos conhecido como Descoberta de
Conhecimento em Bancos de Dados (do inglês Knowledge Discovery in
Databases (KDD), cuja origem remete-se ao ano de 1995.

Quanto às informações geradas por cada uma dessas tecnologias de BI


podemos resumi-las e diferenciá-las conforme a tabela 1, a seguir. É importante
salientar que tais tecnologias não concorrem entrei si, mas apenas respondem a
perguntas em níveis diferentes, sendo a mineração de dados, a tecnologia com
maior alcance estratégico entre todas.

Tabela 1: Tipos de informação gerados pelas tecnologias de BI


Tecnologia de BI Questão básica Exemplo da resposta
Mineração de Dados O que é interessante? Tipos de clientes
O que pode acontecer? Previsão de vendas
OLAP O que aconteceu e por Vendas mensais versus
quê? mudanças de preços de
competidores
EIS/DSS O que eu preciso saber Cotações diversas
agora?
Pesquisas e Relatórios O que aconteceu? Vendas do último mês
Fonte: adaptado de Braga (2005)

Os dois últimos níveis da pirâmide de tecnologias de informação (figura 1),


referem-se à informação no seu mais alto nível de abstração nessa estrutura. O

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 no processo de


descoberta do conhecimento em bancos de dados visto em etapas

A representação das tecnologias da informação de BI em forma de pirâmide é


uma das formas de apresentar e compreender tais tecnologias no processo de
Descoberta de Conhecimento em Bancos de Dados – KDD. Entretanto, o
processo de KDD é normalmente visto e apresentado na área de gestão de
conhecimento em etapas, onde cada etapa engloba suas tecnologias de BI,
técnicas e estratégias usadas para cumprir os objetivos da etapa. A figura 5, a
seguir, representa tal processo de Descoberta de Conhecimento em Bancos de
Dados – KDD por etapas.

Figura 5: Processo de Descoberta do Conhecimento em Bancos de Dados

Fonte: adaptado de Navega (2002).

Embora existam algumas pequenas diferenças na representação desse


processo entre as referências da área, pode-se tomar como o referencial geral
para entender esse processo as seis fases (ou etapas) de KDD, que

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.

Considere um banco de dados transacional mantido por um revendedor de


bens de consumo especializados. Suponha que os dados do cliente incluam um
nome de cliente, CEP, número de telefone, data de compra, código do item,
preço, quantidade e valor total. Uma grande quantidade de conhecimento novo
pode ser descoberta pelo processamento KDD nesse banco de dados. Durante a
seleção de dados, dados sobre itens específicos ou categorias de itens ou
mesmo lojas em uma região específica do país podem ser selecionados. O
processo de limpeza de dados pode corrigir códigos postais inválidos ou
eliminar registros com prefixos de telefones incorretos. O enriquecimento
normalmente melhora os dados com fontes de informação adicionais. Por
exemplo, dados os nomes dos clientes e números de telefones, a loja pode
adquirir outros dados sobre idade, renda e avaliação de crédito e anexá-los a
cada registro. A transformação de dados e a codificação podem ser feitas
para reduzir a quantidade de dados. Por exemplo, os códigos de item podem ser
agrupados em relação a categorias de produtos, tais como: áudio, vídeo,
suprimentos, aparelhos eletrônicos, etc.; as rendas podem ser dividas em faixas,
entre outros.

Somente após esse pré-processamento dos dados nestas etapas, que,


normalmente, realiza-se a tarefa de mineração de dados, que possibilita
extrair diferentes regras e padrões dos dados. O resultado da mineração de
dados pode identificar, por exemplo, que quando um cliente compra um
equipamento de vídeo ele também compra outro aparelho eletrônico (regras de
associação) ou ainda que um cliente que compra mais que o dobro em períodos
fracos provavelmente poderá comprar pelo menos uma vez durante o período de
Natal (padrões sequenciais). Esses resultados alcançados com a mineração de
dados podem ser informados em diversos formatos, como listagens, saídas
gráficas, tabelas de resumo ou visualizações. De posse dessas informações,
profissionais de gestão e equipes de projetos da empresa podem construir sua
estratégia de negócio e usar esse conhecimento gerado pelo processo de KDD
nas atividades de tomada de decisão.

Obviamente, outros exemplos poderiam ser usados para explicar as etapas do


processo de KDD, bem como outros detalhes deste processo complexo e cheio
de variáveis poderiam ser explicitados. Porém, o foco principal deste curso é
essencialmente a tarefa de mineração de dados e, nesse sentido, o objetivo
dessa seção foi especialmente mostrar que a mineração de dados é uma etapa
central e imprescindível nesse processo de geração de conhecimento a partir de
grandes bases de dados e com sua realização de forma apropriada é possível
obter o conhecimento necessário no tempo e lugares certos para ser usados nas
atividades de tomada de decisão de uma organização.

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.

Como dito anteriormente, a mineração de dados surgiu da necessidade de


possibilitar análises mais elaboradas dos dados presentes nas bases de dados
das organizações. Com bancos de dados cada vez mais volumosos e encontrados
em diferentes formatos ou plataformas, faz-se necessário o uso de técnicas mais
elaboradas que os métodos tradicionais, de forma a garantir que informações
estratégicas presentes nessas bases de dados possam ser recuperadas ou
descobertas para utilização no processo decisório das organizações.

O sucesso atual das organizações depende basicamente das decisões tomadas


por seus gestores, antes mesmo de apresentar ao mercado seus produtos ou
serviços. Tais decisões têm se tornado necessárias em prazos cada vez mais
curtos, exigindo dos gestores responsáveis uma atenção redobrada aos
ambientes interno e externo da organização. Muitas vezes, más decisões são
definidas, não pela inexistência do conhecimento para se escolher melhor, e sim
porque o conhecimento não estava disponível para ser utilizado no tempo e
lugares certos.

Braga (2005) destaca que, atualmente, a projeção de negócios é fundamental


para qualquer organização. Um exemplo de projeção de negócio é a estimativa
do ciclo de vida de um cliente de alto retorno para a empresa. Este tipo de
revisão vai muito além do planejamento e do desenvolvimento de modelos de
fluxo de caixa, já que compreende projeções mercadológicas enraizadas no
histórico real de negócios. Perguntas como: “Quanto faturamento pode-se
esperar de cada cliente nos próximos 12 meses?“ representam sem dúvida
perguntas básicas para o planejamento de uma empresa durante um ano.

Nesse cenário de acirrada competitividade e concorrência, uma questão torna-


se imprescindível para as organizações quanto ao grande volume de dados
armazenados sobre clientes em suas bases de dados: “Como descobrir ou
recuperar novas informações nos bancos de dados da organização para que
estas possam ser utilizadas de forma estratégica?” A resposta dessa pergunta é
um dos objetivos principais deste curso, que busca mostrar como as técnicas e
ferramentas de mineração de dados podem ser usadas na busca dessas
informações estratégicas para a organização.

Essas informações extraídas dos bancos de dados analisados permite gerar


conhecimento em nível estratégico. Mas para isso, é importante considerar que o
conhecimento gerado apenas torna-se interessante quando ele apresenta as
seguintes propriedades:
- validade
- inesperabilidade

Mineração de dados . 16
- interpretabilidade
- novidade
- utilidade

No entanto, a tarefa de gerar conhecimento interessante a partir de grandes


bancos de dados não se trata de uma tarefa trivial, uma vez que exige novas
funcionalidades de acesso aos bancos de dados, tais como consolidação dos
dados, agregação dos dados, resumo dos dados e análise simultânea de
centenas de atributos dos bancos de dados.
De forma geral, métodos tradicionais de pesquisas em bancos de dados, tais
como a linguagem Srutucture Query Language (SQL), as planilhas eletrônicas ou
a investigação manual, não dão contam de prover as novas funcionalidades de
acesso requeridas. No caso da linguagem de consulta a banco de dados SQL, por
exemplo, o problema é que ela é uma linguagem estruturada, que assume que o
usuário está ciente do esquema do banco de dados. A SQL dá suporte a
operações da álgebra relacional que permitem que um usuário selecione linhas e
colunas de dados das tabelas ou informações relacionadas às junções de tabelas
com base em campos comuns. Porém, como já mencionado anteriormente,
muitas vezes faz-se necessária uma estrutura multidimensional dos dados afim
de obter novas informações.
O uso de tecnologias de Business Intelligence (BI), Data warehouses e a
Mineração de Dados, possibilitam atender essas novas funcionalidades de acesso
aos bancos de dados e a descoberta de conhecimento a partir deles. No caso
específico da Mineração de Dados, ela é capaz de revelar automaticamente o
conhecimento que está implícito em grandes quantidades de informações
armazenadas nos bancos de dados de uma organização. Usando as técnicas de
mineração é possível uma análise antecipada dos eventos, possibilitando prever
tendências e comportamentos futuros e permitindo aos gestores a tomada de
decisões baseada em fatos e não em suposições. A análise de dados tradicional é
baseada na suposição, em que uma hipótese é formada e validada por meio dos
dados. Por outro lado, as técnicas de mineração de dados são baseadas na
descoberta, na medida em que os padrões são automaticamente extraídos do
conjunto de dados.
Braga (2005) destaca que a mineração de dados centrada no cliente provê o
conhecimento de suas características e do comportamento desses clientes. Esta
compreensão é a base para qualquer prospecção realística. O autor destaca
ainda que algumas das razões pelas quais a mineração de dados vem se
tornando necessária para uma boa gestão organizacional são: os volumes de
dados são muito importantes para um tratamento utilizando somente técnicas
clássicas de análise; o usuário final não é necessariamente um estatístico; a
intensificação do tráfego de dados (navegação na internet, catálogos online etc.)
aumenta a possibilidade de acesso aos dados; analistas humanos podem levar
semanas para correlacionar e descobrir alguma informação útil dentro de uma
grande massa de dados.

Uma organização que emprega a mineração de dados é capaz de: criar


parâmetros para entender o comportamento dos dados, que podem ser
referentes a pessoas envolvidas com a organização; identificar afinidades entre
dados que podem ser, por exemplo, entre pessoas e produtos e ou serviços;
prever hábitos ou comportamentos das pessoas e analisar hábitos para se
detectar comportamentos fora do padrão entre outros.

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:

Associação Fraldas => Cerveja na rede de supermercados Wal-Mart: este


é o exemplo mais clássico da aplicação das regras de mineração como estratégia
de negócio para uma organização. Neste caso, o software de mineração de
dados usado pela rede norte-americana de supermercados Wal-Mart apontou
que nas noites de quintas-feiras e de Sextas-feiras, as vendas de cervejas
cresciam na mesma proporção que as vendas de fraldas. Hipótese maluca:
crianças bebendo cerveja? Não, uma investigação mais detalhada revelou que,
ao comprar fraldas para seus bebês, os pais (em geral jovens, recém-casados)
aproveitavam para abastecer o estoque de cerveja para o final de semana. Em
função dessa análise, os gerentes dos supermercados colocaram os produtos em
prateleiras próximas como forma de aumentar as vendas de cervejas.

Predição (previsão) de empréstimos no Bank of America: o Bank of


America usou técnicas de mineração de dados para selecionar dentre seus 36
milhões de clientes aqueles com menor risco de dar calote num empréstimo. A
partir desses relatórios, enviou-se cartas e e-mails oferecendo linhas de crédito
para os correntistas cujos filhos tivessem entre 18 e 21 anos e, portanto,
precisassem de dinheiro para ajudar os filhos a comprar o próprio carro, uma
casa ou arcar com os gastos da faculdade. Resultado: em três anos, o banco
lucrou 30 milhões de dólares.

Detecção (identificação) de crimes em telecomunicações: técnicas de


mineração de dados podem ser utilizadas para detectar hábitos dos usuários de
celulares e prever contra crimes como o de clonagem de celular. Quando um
telefonema for feito e considerado pelo software de mineração como uma
exceção, o software faz uma chamada para confirmar se foi ou não uma
tentativa de fraude.

Análise do perfil dos candidatos do vestibular da PUC-RJ: este é outro


exemplo clássico da aplicação das regras de mineração de dados, neste caso
usado para analisar o perfil dos candidatos do vestibular da PUC-RJ. Descobriu-
se com o uso de um software de mineração a seguinte regra: se o candidato é
do sexo feminino, trabalha e teve aprovação com boas notas, então não efetiva
matrícula. A justificativa para regra é que de acordo com os costumes do Rio de
Janeiro, uma mulher em idade de vestibular, se trabalha é porque precisa, e
neste caso deve ter feito inscrição para ingressar na universidade pública
gratuita. Se teve boas notas, provavelmente foi aprovada na universidade
pública, onde efetivará matrícula. Claro que há exceções: pessoas que moram
em frente à PUC, pessoas mais velhas, de alto poder aquisitivo e que voltaram a
estudar por outras razões que ter uma profissão, etc. Porém, a grande maioria
obedece à regra anunciada.

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.

Antes de discutirmos propriamente os conceitos de tarefa e técnica de


mineração de dados é importante um registro inicial sobre o tipo de
conhecimento gerado pela mineração de dados e as estruturas de representação
usadas apresentar esse conhecimento minerado. Segundo Eslmari e Navathe
(2011), o conhecimento pode ser classificado como indutivo ou dedutivo. O
conhecimento dedutivo deduz novas informações com aplicação de regras
lógicas previamente especificadas de dedução sobre o dado indicado. Por outro
lado, o conhecimento indutivo equivale a descobrir novas regras e padrões
com base nos dados fornecidos. Normalmente, o conhecimento gerado pela
mineração de dados é do tipo indutivo. Sobre a apresentação desse
conhecimento gerado, podemos destacar que tal conhecimento pode ser
representado de duas maneiras: (i) de forma desestruturada, como por
exemplo, por meio de regras e lógica proposicional; ou (ii) de forma estruturada,
como por exemplo, através de árvores de decisão, redes semânticas, redes
neurais, hierarquias de classes, frames, entre outras estruturas.

Existem diversas tarefas (ou funcionalidades) de mineração de dados e,


geralmente, cada uma delas está associada a um tipo de problema que ela se
propõe a resolver. Nesse sentido, uma tarefa determina o tipo de problema que
será resolvido pelo processo de mineração de dados.

Pode-se definir tarefa de mineração de dados como o ato de descobrir


certo tipo de padrão em uma base de dados como, por exemplo, descobrir
que a venda de cervejas tem alguma relação de associação com a venda de
fraldas num banco de dados de transações de uma rede de supermercados.
Assim, uma tarefa de mineração de dados é equivalente à procura de padrões
úteis em grandes quantidades de dados, tal que padrão é um motivo que se
repete com frequência numa base de dados e útil significa dizer que o padrão
descoberto deve servir para resolver um problema.

Quanto aos tipos de tarefas de mineração de dados, podemos agrupá-las em


dois grandes grupos:
Tarefas Preditivas: predizem o valor de um determinado atributo baseado nos
valores de outros atributos. Exemplos: Classificação; Predição.

Tarefas Descritivas: derivam padrões, que incluem correlações, tendências,


anomalias e agrupamentos, dentro de uma grande massa de dados. Exemplos:
Regras de Associação; Padrões Sequenciais; Agrupamentos (ou
Clusterização); Anomalias (Outliers).

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.

Essa distinção entre tarefa e técnica de mineração de dados é de extrema


importância para este curso e para a compreensão dos outros tópicos incluídos
neste Capítulo 2. Como forma de exemplificar e esclarecer a diferença entre
esses conceitos apresenta-se, a seguir, uma tabela resumida dos principais tipos
de tarefas e técnicas de mineração de dados (veja tabela 2):

Tabela 2: Tarefas e Técnicas de Mineração de Dados


Tarefa de Mineração Técnica (Algoritmo) de Mineração

Regras de associação  Algoritmo Apriori


 Árvore de padrão de
crescimento frequente
Classificação  Árvores de decisão ID3
 Redes Neurais
 Redes Bayesianas.
Clusterização (Agrupamento)  Algoritmo k-Médias
 Algoritmo k-Medoides
Regressão  Regressão linear
 Regressão exponencial
Padrões sequenciais  Algoritmo Apriori-All
 Algoritmo PrefixScan

Como o objetivo principal deste Capítulo 2 é o estudo das principais tarefas e


técnicas de mineração de dados, o conteúdo seguinte do presente capítulo será
apresentado nos seguintes tópicos: na seção 2.1 apresenta-se a tarefa de
Regras de Associação e os algoritmos Apriori (com e sem podas) e a Árvore de
padrão de crescimento frequente (FP-Growth). Na seção 2.2 é descrita a tarefa
de Classificação e as técnicas de classificação por Árvores de decisão ID3, Redes
Neurais e Redes Bayesianas. Na seção 2.3 é apresentada a tarefa de
Clusterização ou Agrupamento e os algoritmos k-Médias e k-Medóides que a
implementam; e, por fim, na seção 2.4 são descritas, brevemente, as tarefas de
mineração conhecidas como regressão e padrões sequencias.

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:

Suponha que você seja gerente de um supermercado e esteja


interessado em conhecer os hábitos de compra de seus clientes, por
exemplo, quais os produtos que os clientes costumam comprar ao mesmo
tempo, a cada vez que vêm ao supermercado? Conhecer a resposta a esta
questão pode ser útil: você poderá planejar melhor os catálogos do
supermercado, os folhetos de promoções de produtos, as campanhas de
publicidade, além de organizar melhor a localização dos produtos nas
prateleiras do supermercado colocando próximos os itens frequentemente
comprados juntos a fim de encorajar os clientes a comprar tais produtos
conjuntamente. Para isto, você dispõe de uma mina de dados, que é o
banco de dados de transações efetuadas pelos clientes.

Nesse sentido, podemos resumir a tarefa de associação da seguinte maneira:


o objetivo de uma regra de associação é descobrir combinações de itens ou
valores de atributos que ocorrem com frequência significativa em uma base de
dados. De forma que uma regra de associação é uma expressão da forma A
-> B, onde A e B são itemsets. Um itemset é o conjunto de itens comprados
pelo cliente numa única transação. Um itemset com k elementos é chamado de
k-itemset. Veja o exemplo abaixo do tradicional modelo de cesta de
supermercado:

ItemSet 1 = {Pão, Leite, Açucar, Café}


Regra de Associação 1: Pão, Leite -> Café

ItemSet 2 = {Vinho, Cerveja, Queijo, Carne}


Regra de Associação 2: Vinho -> Queijo

Na regra de associação 1 do ItemSet 1 temos expresso que pessoas que


compram pão e leite têm a tendência de também comprar café, isto é, se
alguém compra pão e leite então também compra café. Repare que esta regra é
diferente da regra Café -> Pão, Leite, pois o fato de ter muita gente que quando
vai ao supermercado para comprar pão e leite também acaba comprando café,
não significa que quem vai ao supermercado para comprar café também acaba
comprando pão e leite. Uma regra de associação não é bidirecional (não pode
ser interpretada nos dois sentidos).

As regras de associação devem conter alguma expressividade estatística para


que possam ser úteis no processo de descoberta de informação na base de
dados. Veja alguns exemplos abaixo:

“50% das compras que contém fraldas também contém cerveja.


15% de todas as compras contêm os dois produtos.”
Regra de Associação: {fraldas} -> {cerveja}

“A compra do produto milho verde aumenta em 5 vezes a chance de um


cliente comprar ervilhas.”
Regra de Associação: {milho verde} -> {ervilhas}

Além de aplicações no tradicional modelo de cesta de supermercado, as


regras de associação são aplicadas a diferentes domínios, tais como:

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”)

Antes de mencionarmos os algoritmos que implementam a tarefa de


associação é imprescindível explicar as chamadas medidas de interesse de
uma regra de associação e as propriedades desejáveis de um algoritmo de
associação.

Existem basicamente duas medidas de interesse de uma regra de associação:


(i) suporte e (ii) grau de confiança. Ambas servem para medir a relevância da
regra para a descoberta de conhecimento. Entende-se como suporte a
frequência com que um itemset ocorre no banco de dados e como grau de
confiança a porcentagem das transações que suportam B dentre todas as
transações que suportam A, conforme mostrado nas fórmulas abaixo:

Suporte de A, B, C -> D

número de clientes que compraram A,B,C,D


Total de clientes

Confiança de A -> B

número de clientes que compraram A U B


número de clientes que compraram A

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:

{cerveja} -> {manteiga} Confiança: 100% Suporte: 16%

Neste exemplo, caso α = 0,8 e β = 0,1 então a regra {cerveja} ->


{manteiga} é interessante. Entretanto, caso sejamos mais exigentes e
estabeleçamos β = 0,5 (o que é bem mais plausível), então esta regra deixa de
ser interessante, mesmo que seu grau de confiança ultrapasse de longe o grau
de confiança mínimo estabelecido pelo usuário.

Como podemos ver o suporte e a confiança não necessariamente andam lado


a lado. Nesse sentido, o objetivo da mineração de regras de associação é gerar
todas as regras possíveis que excedem alguns patamares mínimos de suporte e
confiança especificados pelo usuário.

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):

Fechamento para baixo: um subconjunto de um itemset grande


também deve ser grande.
Antimonotonicidade: um superconjunto de um itemset pequeno
também é pequeno, implicando que ele não tem suporte suficiente. Ou
seja, quando se descobre que um itemset é pequeno, então qualquer
extensão a esse itemset, formada ao acrescentar um ou mais itens ao
conjunto, também gerará um itemset pequeno. Essa propriedade ajuda
a reduzir o espaço de busca de possíveis soluções.

Passamos agora à apresentação de dois algoritmos ou técnicas que


implementam a tarefa de associação para a mineração de dados. São eles: (i) o
algoritmo Apriori; (ii) o algoritmo de árvore de crescimento de padrão frequente
(FP-Growth).

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:

INPUT : São dados um banco de dados de transações D e um nível mínimo de


suporte β.

OUTPUT: Pede-se todos os itemsets frequentes com relação a D e β.

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.

O algoritmo Apriori é executado de forma iterativa: os itemsets frequentes de


tamanho k são calculados a partir dos itemsets frequentes de tamanho k - 1 que
já foram calculados no passo anterior (a partir dos itemsets frequentes de
tamanho k - 2, etc.). Abaixo podemos ver a implementação deste algoritmo em
pseudocódigo:

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

A saída do algoritmo corresponde ao conjunto de itens frequentes na base de


dados minerada, ou seja, os conjuntos F1, F2, F3, etc. Vejamos um exemplo de
aplicação do algoritmo apriori, extraído de Elsmari e Navathe (2011), num banco
de dados de transações de um dado supermercado, conforme Tabela 3 abaixo :

Tabela 3: 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: β = 0,5

Os 1-itemsets candidatos são C1 = {leite, pão, suco, biscoito, ovos, café} e


seus respectivos suportes são: 0,75 – 0,5 – 0,5 – 0,5 – 0,25 – 0,25. Os quatro
primeiros itens se qualificam para o conjunto L1, pois cada suporte é maior ou
igual a 0,5. Na primeira iteração do loop while, estendemos os 1-itemsets
frequentes para criar o conjunto C2 dos 2-itemsets frequentes candidatos. C2 =
( {leite,pão} {leite, suco} {pão, suco}, {leite, biscoito}, {pão, biscoito} e
{suco, biscoito} ). Observe, por exemplo, que {leite, ovos} não aparece em C2,
pois {ovos} é pequeno, pela propriedade de antimonotonicidade, e não aparece
em F1. O suporte para os seis conjuntos contidos em C2 são respectivamente:
0,25 – 0,5 – 0,25 – 0,25 – 0,5 e 0,25, e são calculados com a varredura do
conjunto de transações. Somente o segundo 2-itemset {leite,suco} e o quinto 2-
itemset {pão,biscoito} têm suporte maior ou igual a 0,5. Esses dois 2-itemsets
formam os conjuntos de 2 itens frequentes F2.

Na próxima iteração do loop while, construímos 3-itemsets frequentes


candidatos acrescentando itens adicionais aos conjuntos de F2. Contudo, para
nenhuma extensão de itemsets em F2 todos os subconjuntos de 2-item estarão
contidos em F2. Por exemplo, considere {leite, suco, pão}; o 2-itemset {leite,
pão} não está em F2, logo {leite, suco, pão} não pode ser um 3-itemset
frequente pela propriedade de fechamento para baixo. Nesse ponto, o algoritmo
para e os dois conjuntos frequentes de saída são: F1 = ( {leite}, {pão},
{suco}, {biscoito} ); F2 = ( {leite,suco}; {pão,biscoito} ).

Algoritmo de árvore de crescimento de padrão frequente (FP-Growth)


O algoritmo de árvore de crescimento de padrão frequente (FP-Growth) é
motivado pelo fato dos algoritmos baseados no Apriori poderem gerar e testar
um número muito grande de itemsets candidatos (Elsmari e Navathe, 2011). Tal
algoritmo é uma técnica que elimina a geração de um grande número de
itemsets candidatos.

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)

O primeiro passo do algoritmo de árvore de crescimento de padrão frequente


é a construção da árvore FP. O banco de dados é primeiro varrido e os 1-
itemsets frequentes junto com seu suporte são calculados. Com esse algoritmo,
o suporte é a contagem de transações que contém o item (por exemplo, β = 2 -
duas ocorrências) em vez da fração de transações contendo o item. Os 1-
itemsets frequentes são então classificados em ordem não crescente de seu
suporte. Em seguida, a raiz da árvore FP é criada com o rótulo NULL. O banco de
dados é varrido uma segunda vez e, para cada transação T no banco de dados,
os 1-itemsets mais frequentes em T são colocados em ordem, formando uma
lista ordenada. A tabela de cabeçalho do item criada durante o processo de
construção da árvore FP, contém três campos por entrada para cada item
frequente: (i) o identificador do item, o contador de suporte e o link do nó.
Para o exemplo da Tabela 4, uma passada do algoritmo FP-Growth pelas
quatro transações gera os seguintes 1-itemsets frequentes com suporte
associado: ( {leite,3}; {pão,2}; {biscoito,2}; {suco,2} ). O banco de dados é
varrido uma segunda vez e cada transação será processada novamente.
Para a primeira transação, criamos a lista ordenada T = {leite, pão, biscoito,
suco}. Os itens em T são conjuntos de um item frequentes com base na
primeira transação. Criamos, então, um nó raiz NULL para a árvore FP e
inserimos leite com um filho raiz, pão como um filho de leite, biscoito como um
filho de pão e suco como um filho de biscoito. Ajustamos também as entradas
para os itens frequentes na tabela de cabeçalho do item. A figura 6, a seguir,
representa a árvore FP após essa primeira transação.

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, pão, biscoito, suco} Suco:


1
Para a segunda transação, temos a lista ordenada {leite, suco}. Começando
na raiz, vemos que o nó filho com rótulo leite existe, de modo que movemos
para esse nó e atualizamos seu contador. Vemos que não existe filho do nó atual
com rótulo suco, então ele é criado. A tabela é ajustada. A figura 7, a seguir,
representa a árvore FP após essa segunda transação.

Figura 7: Árvore FP após 2ª transação


NULL
2ª transação

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

X 2 Pão: Suco: 1 Biscoito: 1


1
X 2

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

Pão: 1 Suco: 1 Biscoito: 1

Biscoito: 1 {leite, pão, biscoito: 1}


+ {leite: 1}
= {leite: 2}
variável = suco (sufixo) Suco: 1
β=2
Resultado:
{leite, suco: 2}
Em seguida, o item frequente biscoito é utilizado como variável beta com
suporte = 2 (veja figura 11). Seguindo o link desse nó na tabela temos dois
caminhos: (leite, pão: 1) e (pão: 1). A árvore FP condicional tem apenas um nó:
(pão: 2). O algoritmo é chamado recursivamente com uma árvore FP de apenas
um nó (pão: 2) e um valor beta de biscoito. 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, {pão, biscoito}.
Figura 11: Árvore FP-condicional após Passo 2

Passo 2: NULL

Leite: 3 Pão: 1

Pão: 1 Suco: 1 Biscoito: 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

Pão: 1 Suco: 1 Biscoito: 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

Pão: 1 Suco: 1 Biscoito: 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.

Dois exemplos de regra seriam:

Se idade está entre 30 e 40 e a renda mensal é ‘Alta’ então ClasseProdEletr =


‘Sim’.
Se idade está entre 60 e 70 então ClasseProdEletr = ‘Não’.

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.

2. Verificação do modelo de classificação:


2. As regras criadas no passo 1 são testadas sobre outro banco de
dados, conhecido como banco de dados de testes. Esta etapa permitir dar
uma boa noção sobre a qualidade do seu modelo classificador. A
qualidade é medida pela porcentagem de tuplas bem classificadas.

3. Utilização do modelo em novos dados:


3. Após o modelo ter sido aprovado nos testes da etapa anterior, ele é
aplicado em novos dados.

A tarefa de classificação é uma das mais usadas pelas organizações na busca


por minerar dados que possam ser usados como informação estratégica por
elas. Além do exemplo de compra de produtos eletrônicos citado, existem
muitas outras aplicações da tarefa de classificação. Algumas que podem ser
mencionadas são:
 Marketing Direto:
– Objetivo: Reduzir o custo de mailing através do envio para
conjunto de “prospects” com alta probabilidade de compra (por
exemplo, de um celular novo).
– Abordagem:
– Usar os dados de lançamentos semelhantes feitos
anteriormente.
– Sabendo-se quais clientes decidiram comprar e quais não:
{buy, don’t buy} formam o Atributo-Classe.
– Coletar vários dados como informações demográficas, estilo
de vida, interações com a empresa, onde mora, quanto ganham,
etc.
– Usar essa informação como atributos de entrada para
desenhar o modelo de classificação.
 Detecção de Fraude:
– Objetivo: Predizer comportamentos suspeitos de fraude em
transações de cartões de crédito
– Abordagem:
– Usar os dados de transações de cartões de crédito e as
informações de seus correntistas como atributos (quando compra, o
que compra, como paga, com que frequência compra e paga, etc.).
– Identificar transações passadas como normais ou
fraudulentas. Isso forma o atributo classe.
– Criar um modelo para a classe das transações.
– Usar esse modelo para detectar fraude observando as
transações de cartões de uma conta.
 Cliente-Churning:
– Objetivo: Prever, ou predizer se um cliente está “próximo” de
desistir da empresa.
– Abordagem:
– Usar os registros detalhados de transações de clientes, a fim
de descobrir atributos, tais como:
• Qual a frequência de chamada ao call-center, que tipo
de chamada, a que horas chama, estado civil, status
financeiro, etc.
– Definir os clientes “loyal” or “disloyal”.
– Desenhar um modelo de lealdade.
Nesta seção 2.2, iremos apresentar três técnicas conhecidas que
implementam a tarefa de classificação de dados: (i) Classificação usando
Árvores de Decisão ID3; (ii) Classificação por Redes Neurais; (iii) Classificação
por Redes Bayesianas. Tais técnicas ou métodos podem ser comparados com
base em alguns critérios. Segundo Amo (2003), estes critérios são:
Acurácia – capacidade de classificar corretamente novas tuplas

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:

Figura 14: Árvore de Decisão ID3

Árvore de Decisão ID3

IDADE
≤ 30 > 60
31..50 51..60
RENDA Não
Sim Sim
B
M M-A A
Não Sim Sim
Sim

O acrônimo ID3 da árvore de decisão indica que na verdade o algoritmo usado


para a construção da árvore. A ideia geral do algoritmo ID3, criado por Ross
Quinlan, da Universidade de Sydney em 1986 e de seus sucessores (um deles, o
algoritmo C4.5 também proposto por Quinlan em 1993) é a de um procedimento
recursivo que gera a partir de um banco de amostras A, uma lista de atributos
candidatos que mapeiam o atributo-classe.
Um dos aspectos mais importantes na construção de uma árvore de decisão é
decidir qual o melhor atributo (atributo-teste) para dividir o banco de amostras.
A regra é de que deve se escolher aquele atributo que produz os nós mais puros,
ou seja, folhas que possuem 1 só valor e que não serão mais divididas no futuro.
Em seguida, para cada divisão da árvore calcula-se a entropia produzida caso
fosse escolhido este atributo. Entropia significa o grau de pureza de um atributo
em um nó. Ao fim desse procedimento, considera-se o atributo cuja divisão
resulta numa maior redução da entropia. As seguintes fórmulas são usadas no
cálculo da entropia dos atributos:
 Entrop(A) = -NSim log2 NSim - NNão log2 NNão

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

Como forma de entender este processo de escolha do atributo-teste, que


inclui o cálculo de entropia dos atributos, apresentamos um exemplo extraído de
Amo (2003), que cita um banco de dados amostral sobre condições
meteorológicas, cujo objetivo é identificar quais as condições ideais para se
jogar um determinado jogo. O banco de dados de amostras desse exemplo é
apresentado na Tabela 5, a seguir.
Tabela 5: Banco de dados amostral sobre condições meteorológicas
Aparência Temperatura Humidade Vento Atributo-Classe

Sol Quente Alta Não NÃO


Sol Quente Alta Sim NÃO
Encoberto Quente Alta Não SIM
Chuvoso Agradável Alta Não SIM
Chuvoso Frio Normal Não SIM
Chuvoso Frio Normal Sim NÃO
Encoberto Frio Normal Sim SIM
Sol Agradável Alta Não NÃO
Sol Frio Normal Não SIM
Chuvoso Agradável Normal Não SIM
Sol Agradável Normal Sim SIM
Encoberto Agradável Alta Sim SIM
Encoberto Quente Normal Não SIM
Chuvoso Agradável Alta Sim NÃO

Escolhe-se, como 1ª divisão possível da árvore de decisão, o atributo


Aparência, cujos valores podem ser vistos na ramificação da árvore abaixo
(figura 15):

Figura 15: Árvore de decisão do atributo Aparência


APARÊNCIA

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:

Entrop(F1) = -2/5*log2(2/5) - 3/5*log2 (3/5) = 0.971


Entrop(F2) = - 4/4*log2 (4/4) = 0
Entrop(F3) = - 3/5*log2(3/5) - 2/5*log2(2/5) = 0.971

Entrop(D) = 5/14 * Entrop(F1) + 4/14*Entrop(F2) + 5/14*Entrop(F3) = 0,693


Entrop(A) = - (9/14 * log2 (9/14) + 5/14* log2(5/14)) = 0.940
INFO(APARÊNCIA) = Entrop(A) – Entrop(D) = 0.940 - 0.693 = 0.247

Agora, comparamos a entropia calculada para o atributo Aparência e o ganho


na divisão usando esse atributo com os demais atributos da árvore:

Info(Temperatura) = 0,940 – 0,911 = 0.029


Entrop(D) = 4/14 * Entrop(F1) + 6/14*Entrop(F2) + 4/14*Entrop(F3) = 0,911

Info(Humidade) = 0,940 – 0,788 = 0.152


Entrop(D) = 7/14 * Entrop(F1) + 7/14*Entrop(F2) = 0,788

Info(Vento) = 0,940 – 0,892 = 0.020


Entrop(D) = 8/14 * Entrop(F1) + 6/14*Entrop(F2) = 0,892

Como a Info(Aparência) possui o mais alto valor (0,247), ou seja, o maior


grau de pureza, esse atributo é escolhido para fazer a divisão da árvore de
decisão do exemplo citado.

Outra importante propriedade de uma árvore de decisão para a mineração de


dados por classificação é a extração de regras de classificação desta árvore.
Normalmente, esse processo é bastante trivial e pode ser deduzido da árvore em
questão a partir de regras do tipo:

IF L1 AND L2 ... AND Ln THEN Classe = Valor

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.

Ilustramos com um exemplo extraído de Amo (2003) o funcionamento deste


algoritmo Backpropagation para a classificação de dados em uma rede neural:
Deseja-se classificar a amostra X = (1, 0, 1) a partir de um banco de dados
de treinamento, com amostras já classificadas. A topologia de rede para este
exemplo corresponde a uma única camada intermediária, uma camada de input
composta por 3 unidades (1 para cada atributo do banco) e uma camada de
output com o atributo-classe. A Figura 17, a seguir, ilustra a topologia da rede e
os valores dos pesos e tendências iniciais:

Mineração de dados . 44
Figura 16: Uso do algoritmo Backpropagation numa rede neural

Algoritmo Backpropagation

1 1 w14 Amostra: X = (1, 0, 1)


w24 4 w46
0 2 6
w34 5 w56
1 3 w35

W14 W15 W24 W25 W34 W35 W46 W56 θ4 θ5 θ6


0.2 -0.3 0.4 0.1 -0.5 0.2 -0.3 -0.2 -0.4 0.2 0.1

Na fase de ida do algoritmo backpropagation são calculados os outputs de


cada uma das unidades das camadas intermediária e final, a partir das seguintes
fórmulas:
Oi = F( w1i*I1 + w2i*I2 + w3i*I3 + θi )

F(x) = 1/(1+e-x)

onde Oi é o output de cada unidade i da camada precedente, wij é o peso da


conexão entre a unidade i da camada precedente e a camada j atual, e θj é um
parâmetro de ajuste próprio da unidade j, chamado tendência, que serve para
variar a atividade da unidade. Depois de calculado este Ij , aplicamos uma
função F, chamada função de ativação que tem como tarefa normalizar os
valores de Ij de modo a caírem num intervalo entre 0 e 1.
Assim para o exemplo apresentado temos os seguintes valores, apresentados
na Tabela 6, abaixo:

Tabela 6: Cálculo dos Inputs e Outputs na Fase de Ida


Unidade Input Output

4 0.2 + 0 – 0.5 – 0.4 = - 0.7 1/1+e0.7 = 0.332

5 -0.3 + 0 + 0.2 + 0.2 = 0.1 1/1+e-0.1 = 0.525

6 (-0.3)(0.332) – (0.2)(0.525) + 0.1 = 1/1+e0.105 = 0.474


- 0.105

Na fase de volta do algoritmo backpropagation são calculados: (i) os erros


de cada unidade; (ii) os novos pesos de cada conexão; (iii) as novas tendências
em cada unidade; conforme as fórmulas abaixo:
Erro em unidade da camada de output:
Ei = Oi(1- Oj)(Tj – Oj)
onde Oj = valor do output da unidade j e Tj = valor correspondente à
classe da amostra X, associado à unidade j. Este valor é 1 ou 0.

Erro em unidade da camada intermediária:


E’i = Oi(1- Oj)(E1*wj1+E2*wj2+E3wj3)

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):

Tabela 7: Cálculos de Erros na Fase de Volta


Unidade Erro

6 (0.474)(1 - 0.474)(1 - 0.474) = 0.1311

5 (0.525)(1 - 0.525)( 0.1311)(-0.2) = -0.0065

4 (0.332)(1 - 0.332)( 0.1311)(-0.3) = -0.0087

E os seguintes novos pesos e tendências, com λ = 0,90 (Tabela 8):

Tabela 8: Cálculo dos novos pesos e tendência na fase de volta


Antigo Valor Reajustado

W46 = -0.3 -0.3 + (0.90)(0.1311)(0.332) = -0.261


w56 = -0.2 -0.2 + (0.90)(0.1311)(0.525) = -1.138
w14 = 0.2 0.2 + (0.90)(-0.0087)(1) = 0.192
w15 = -0.3 -0.3 + (0.90)(-0.0065)(1) = -0.306
w24 = 0.4 0.4 + (0.90)(-0.0087)(0) = 0.4
w25 = 0.1 0.1 + (0.90)(-0.0065)(0) = 0.1
w34 = -0.5 -0.5 + (0.90)(-0.0087)(1) = -0.508
w35 = 0.2 0.2 + (0.90)(-0.0065)(1) = 0.194
θ6 = 0.1 0.1 + (0.90)(0.1311) = 0.218
θ5 = 0.2 0.2 + (0.90)(-0.0065) = 0.194
θ4 = -0.4 -0.4 + (0.90)(-0.0087) = -0.408
Se os valores calculados nessa fase de ida e volta são considerados bons de
acordo com os parâmetros mínimos definidos, o algoritmo backpropagation para
e amostra X está classificada. Do contrário, o processo se repete até que a rede
possa estar treinada para essa amostra.
Feita a apresentação da classificação por redes neurais usando o algoritmo
backpropagation é importante também citar as vantagens e desvantagens deste
método de classificação. São elas:
Vantagens:

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]

P[C|X] = P[X|C] * P[C]


P[X]
Um exemplo de aplicação de redes bayesianas para classificação de dados é
apresentado, abaixo na Tabela 9, a partir de um banco de dados de possíveis
clientes, onde o atributo-classe é Compra-Computador:
Tabela 9: Banco de dados amostral de possíveis clientes que compram computador

ID IDADE RENDA ESTUDANTE CREDITO CLASSE


1 ≤ Alta Não Bom Não
30
2 ≤ Alta Não Bom Não
30
3 31.. Alta Não Bom Sim
.40
4 > Méd Não Bom Sim
40 ia
5 > Bai Sim Bom Sim
40 xa
6 > Bai Sim Excele Não
40 xa nte
7 31.. Bai Sim Excele Sim
.40 xa nte
8 ≤ Méd Não Bom Não
30 ia
9 ≤ Bai Sim Bom Sim
30 xa
1 > Méd Sim Bom Sim
0 40 ia
1 ≤ Méd Sim Excele Sim
1 30 ia nte
1 31.. Méd Não Excele Sim
2 .40 ia nte
1 31.. Alta Sim Bom Sim
3 .40
1 > Méd Não Excele Não
4 40 ia nte
A classe C1 corresponde à Compra-Computador = ‘sim’ e a classe C2
corresponde a Compra-Computador = ‘não’. A tupla desconhecida que queremos
classificar é:

X = (Idade <= 30; Renda = Media; Estudante = sim; Credito = bom).


A partir dessa amostra X, calculamos as seguintes probabilidades:
 P[C1] = 9/14 = 0.643
 P[C2] = 5/14 = 0.357
 P[Idade ≤ 30 | Compra = Sim ] = 2/9 = 0.222
 P[Idade ≤ 30 | Compra = Não ] = 3/5 = 0.6
 P[Renda = Média | Compra = Sim ] = 4/9 = 0.444
 P[Renda = Média | Compra = Não ] = 2/5 = 0.4
 P[Estudante = sim | Compra = Sim ] = 6/9 = 0.667

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

Utilizando as probabilidades acima, temos:


 P[X|C1] = 0.222*0.444*0.667*0.667 = 0.044
 P[X|C2] = 0.6*0.4*0.2*0.4 = 0.019
 P[X|C1]*P[C1] = 0.044*0.643 = 0.028
 P[X|C2]*P[C2] = 0.019*0.357 = 0.007

Como a P[C1] = 0,028 é maior que a P[C2] = 0,007, o classificador Bayseano


prediz que a tupla X é classificada na classe Compra-Computador = ‘sim’.

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.

Em geral, existem dois tipos de clusterização: (i) Clusterização Conceitual; (ii)


Clusterização Convencional. Na Clusterização Conceitual o critério que determina
a formação dos clusters é um determinado conceito. Assim, uma classe de
objetos é determinada por este conceito. Por exemplo, suponhamos que os
objetos são indivíduos de uma população e que o critério determinante para se
agrupar indivíduos seja o risco de se contrair uma determinada doença. Já na
Clusterização Convencional, o que determina a pertinência dos objetos a um
mesmo grupo é a distância geométrica entre eles, como por exemplo, pode-se
calcular a distância Euclidiana dos objetos de um banco de dados organizados
numa matriz chamada de matriz de dissimilaridade, onde o elemento da coluna j
e linha i da matriz é o número d(i; j) representando a distância entre os objetos
i e j, conforme mostrado na figura 18, a seguir.

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))

7. Atributos Escalonados Não-lineares


– São atributos contínuos em intervalos, onde as medidas dos
seus valores estão numa escala não-linear, na maioria das vezes
exponencial.
– Exemplos:
 Crescimento de uma população de bactérias;
 Desintegração de um elemento radioativo, etc.

Existe um grande número de algoritmos de clusterização na literatura. A


escolha de um ou outro método depende do tipo de dados que se tem e qual o
objetivo que se tem em mente. Em geral, para uma determinada tarefa de
clusterização, aplica-se diferentes algoritmos sobre os mesmos dados e analisa-
se os clusters obtidos. Escolhe-se o algoritmo que produz os clusters mais
adequados para a aplicação a que se destinam os dados. Segundo Amo (2003),
os métodos de clusterização podem ser classificados nas seguintes categorias:
 Métodos baseados em Particionamento: dispõe-se de uma base
de dados de n elementos e de um número k <= n, representando o
número de clusters que se deseja formar. Repare que neste tipo de
método, o usuário precisa fornecer de antemão este número k. O método
vai dividir o conjunto de dados em k partes disjuntas, satisfazendo: (i) os
elementos numa mesma parte estão próximos (de acordo com um critério
dado); (ii) elementos de partes distintas estão longe, de acordo com este
mesmo critério. Para obter tal subdivisão, os métodos por particionamento
operam do seguinte modo: cria-se uma partição inicial aleatória de k
partes e posteriormente, num processo iterativo, os elementos das partes

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.

A figura 19, abaixo, ilustra o funcionamento do algoritmo k-médias para k =


3. Na primeira iteração, os objetos circundados representam os que foram
escolhidos aleatoriamente. Nas próximas iterações, os centros de gravidade são
marcados com o sinal +.

Mineração de dados . 53
Figura 18: Funcionamento do algoritmo k-médias

Sobre o uso do k-médias para a clusterização é importante destacar que boa


parte dos clusters já convergem nos primeiros passos do algoritmo, ficando
somente uma quantidade pequena de clusters que ainda se modificam. O
método k-médias, assim como o k-medóides, procura construir uma partição C
contendo k clusters, para qual o erro quadrático é mínimo. Porém, nem sempre
o algoritmo k-médias consegue minimizar esse erro quadrático, já que isto
depende muito da escolha dos centróides iniciais: (i) escolha aleatória:
normalmente são necessárias diversas rodadas do k-médias até encontrar a
escolha que produz o menor erro quadrático (nem sempre funciona!!!); (ii)
utilizar uma amostra: aplica-se um método de clusterização hierárquica sobre
a amostra, tal que os centróides iniciais sejam os centróides dos clusters das
amostras (funciona se a amostra é pequena).
É possível mostrar que o método k-médias produz um conjunto de clusters
que minimiza o erro quadrático com relação aos centros de gravidade de cada
cluster. Este método só produz bons resultados quando os clusters são “nuvens”
compactas de dados, bem separadas umas das outras. As vantagens do método
são sua eficiência em tratar grandes conjuntos de dados. Suas desvantagens
são: o fato do usuário ter que fornecer o número de clusters k, o fato de não
descobrir clusters de formatos não-convexos e sobretudo o fato de ser sensível a
ruídos, já que objetos com valores altos podem causar uma grande alteração no
centro de gravidade dos clusters e assim, distorcer a distribuição dos dados nos
mesmos.

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)

Iremos descrever o funcionamento do algoritmo PAM, cuja ideia geral é a


seguinte: (i) Determinar os k objetos que melhor representam os clusters, ou
seja, os medóides; (ii) Distribuir os objetos nos k clusters. Para tanto são
realizados os seguintes passos:

1. Seleciona k objetos aleatoriamente:


Mineração de dados . 54
– M1, M2, ..., Mk = medóides iniciais
– O1, ..., Op = objetos não medóides
2. Para cada objeto Oi (Oi não medóide) e cada medóide Mj, calcula-se
– O custo de trocar Mj por Oi (Oi seria um novo medóide no
lugar de Mj)
CTij = Σ Cmij -> Cmij = erro local provocado ao se trocar o
medóide Mj por Oi
3. Seleciona-se o par (Mj,Oi) que corresponde ao mínimo CTij.
– Se este mínimo é negativo então substitui-se Mj por Oi e
volta ao passo 2.
– Se este mínimo é positivo, vai para o passo 4.
4. Varre o banco de dados e distribui os objetos entre os k clusteres cujos
representantes são os k medóides encontrados no passo 3.

No cálculo do erro local ao se trocar o medóide Mj por Oi temos as seguintes


possíveis situações, descritas na Figura 20:

Sobre cada um desses casos é importante destacar que se o custo mínimo é


negativo, significa que existe uma maneira de se substituir um medóide por
outro objeto de modo a diminuir a soma dos erros quadráticos. Porém se o
custo mínimo é positivo, significa que não há possibilidade de se modificar os
medóides atuais de modo a diminuir o erro quadrático. Logo, neste ponto, os
medóides convergiram.

O algoritmo PAM funciona satisfatoriamente para pequenos conjuntos de


dados (em torno de 100 objetos e 5 clusters), porém é ineficiente para grandes
volumes de dados: (i) Número de pares MjOi = k(n-k); (ii) para cada par é
preciso computar Cmij, considerando todos os objetos não medóides Om; (iii)
Complexidade de cada iteração = O(k(n-k)2) .

Por fim, é importante destacar as diferenças básicas entre as tarefas de


Classificação e Análise de Clusters: a Análise de Clusters é uma tarefa
considerada como Aprendizado não-supervisionado, pelo fato de que os clusters
representam classes que não estão definidas no início do processo de
aprendizagem, como é o caso das tarefas de Classificação (Aprendizado
Supervisionado), onde o banco de dados de treinamento é composto de tuplas
classificadas. Clusterização constitui uma tarefa de aprendizado por observação
ao contrário da tarefa de Classificação que é um aprendizado por exemplo.

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

As etapas iniciais (1, 2, 3 e o início da etapa 4) do projeto de mineração de


dados serão apresentadas na seção 3.1 deste capítulo 3 e as etapas finais (4, 5
e 6) serão apresentadas na seção 3.2.

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.

A partir da década de 1950, o setor de marketing das empresas passou a


trabalhar com o sistema de metas, isto é, definem-se metas de vendas, de
market-share, etc. Alguns exemplos de metas bem comuns no mercado são:
– Atrair novos clientes
– Tornar novos clientes rentáveis
– Evitar clientes de risco
– Entender as características dos clientes
– Tornar rentáveis os atuais clientes
– Reter clientes rentáveis
– Recuperar clientes
– Melhorar a satisfação dos clientes
– Aumentar vendas
– Reduzir despesas

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.

Aquisição e avaliação de Dados


Após a escolha da fonte de dados a ser usada no projeto de mineração, o
passo seguinte é adquiri-los e avaliá-los. De uma maneira geral o número de
registros em um banco de dados é muito grande, sendo desnecessário utilizá-lo
totalmente para o ajuste de um modelo. Assim, utiliza-se apenas partes
(conjunto de registros) de um data mart ou data warehouse na criação do
modelo de mineração. Para isso, deve-se então construir uma amostra,
utilizando-se para tanto técnicas específicas de amostragem.
As tarefas a serem cumpridas nesta etapa seriam as seguintes:
– Adquirir dados das fontes de dados escolhidas
– Formatar dados no padrão correto
– Validar aquisição e formatação
– Criar amostras (aleatórias) de trabalho – dados representativos
– Particionar os dados (análise, calibração, validação e teste oculto),
construindo esquemas de particionamento
Duas perguntas básicas surgem quanto à amostragem: qual o tamanho da
amostra e como selecioná-la. O tamanho da amostra depende de muitas
considerações, tais como finalidade do modelo, número de parâmetros e poder
preditivo esperado. A outra questão é como escolher os elementos da amostra.
Para essa tarefa recomenda-se a utilização dos tipos (técnicas) básicas de
amostragem, que são as seguintes:
– Aleatória simples – é a selecionada por sorteio, de tal forma que
cada unidade da população tenha igual chance de ser sorteada.
– Aleatória estratificada – é a selecionada por sorteio em
subconjuntos ou estratos da população.
– Sistemática – variante da aleatória simples, embaralham-se os
elementos da população e passa-se a selecioná-los a cada n/N elementos,
onde n: tamanho da população e N: tamanho da amostra.
– Múltiplos estágios – a população é representada por estratos
hierarquizados do mais amplo para o mais específico: município, distrito,
bairro, quarteirão, domicílio, data de nascimento.
– Cotas – a população é dividida em subgrupos e a seleção é feita
arbitrariamente dentro de cada subgrupo e tantas vezes segundo sua
proporção na população.
Se a população a ser considerada é homogênea a amostragem aleatória
simples é a mais adequada. Entretanto se esta população for estratificada ou
segmentada, então podem ser utilizadas as opções aleatórias estratificadas,
cotas ou conglomerados.

Transformação e codificação dos dados


Para a mineração de dados, o número de variáveis presentes no dataset que
se deseja minerar pode ser muito grande e, além disto as variáveis podem estar
expressas de forma pouco conveniente. Surge então a necessidade de uma
etapa do projeto de mineração de dados conhecida como Transformação e
Codificação dos Dados.

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.

Quanto à detecção e tratamento de erros, diferentes métodos e estratégias


podem ser usados frente aos erros encontrados. Isto depende principalmente do
conjunto de dados (dataset) que está sendo analisado. Assim, por exemplo,
pode-se decidir por corrigir códigos postais inválidos quando estes forem
identificados, através de consultas a base de CEP’s dos Correios, e no caso da
identificação de telefones incorretos, estes podem ser ignorados e os registros
eliminados. Obviamente que este é apenas um exemplo e uma estratégia
diferente dessa pode ser adotada. Outro tipo comum de detecção e tratamento
de erros corresponde a acertar o formato de datas e dos CPF’s contidos no
dataset.
Outra importante tarefa nesta etapa de transformação dos dados é a detecção
e o tratamento dos valores aberrantes (outliers). A identificação de outliers é
muito importante para a mineração de dados, porém mais importante ainda é o
que se vai fazer após encontrá-los. A presença de outliers pode prejudicar o
desempenho de muitos métodos na etapa de modelagem. Entretanto, eles
podem também estar fornecendo uma informação preciosa para a tarefa de
mineração. Em muitos problemas de mineração de dados a meta é encontrar a
exceção e não a regra, por exemplo, em detecção de fraude. O monitoramento
de contas em uma operadora de cartão de crédito deve incluir testes que
detectem desvios significativos do padrão usual de gastos de um cliente.
Os dados qualitativos são expressos em categorias e basicamente são
utilizados em segmentação e classificação. Já os dados quantitativos são
expressos numericamente e se apresentam em quatro escalas diferentes:
nominal, ordinal, intervalar e contínua. Para um dado qualitativo é mais fácil
detectar um erro ou um outlier, já que basta verificar se os valores encontrados
na amostra correspondem aos valores possíveis. Caso isto não ocorra para
algum elemento pode-se descartá-lo ou alternativamente substituí-lo pela
“moda”. Para dados quantitativos também pode-se substituir dados errados ou
aberrantes, neste caso pela média ou pela mediana.
Quanto às transformações de dados além da detecção de erros e outliers,
existe uma série métodos de transformação, cada qual aplicado a uma situação
específica. Os métodos mais usuais de transformação de dados são:
– Sumarização – reduzir o número de valores mediante de alguma
agregação, por exemplo, substituir dados diários por médias semanais.
– Razões – gerar uma nova variável a partir da razão de duas outras.
– Codificação – transformar dados qualitativos em quantitativos. Por
exemplo datas no formato dd.mm.aa inviabilizam operações matemáticas,

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:

X2 = (valor esperado – valor observado)2


valor esperado

Um exemplo de aplicação desse cálculo do qui-quadrado para redução de


variáveis é também mostrado em Braga (2005), conforme figura 21 abaixo:

Figura 19: Cálculo do qui-quadrado para redução de variáveis

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.

Prototipagem e desenvolvimento do modelo de mineração


A etapa de Prototipagem e Desenvolvimento do Modelo de Mineração é talvez
a etapa mais crítica num projeto de mineração e envolve uma série de aspectos
e parâmetros que merecem a atenção especial da equipe responsável pela

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.

Figura 20: Páginas mais visitadas num site de compras

Figura 21: Nova estruturação do site de compras

Para finalizar essa descrição sobre a tarefa de identificação de padrões


sequenciais, pode-se afirmar que tal tarefa de mineração pode ser utilizada em
qualquer problema onde seja possível registrar a ordem de ocorrência de
eventos, tais como:
– Mineração de banco de dados de lojas, de supermercados,
etc.
– Análise de sequências em cadeias de DNA

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:

Figura 22: Equações básicas de um modelo de regressão

Para mostrar como é o uso deste modelo de regressão linear para a


mineração de dados podemos tomar como exemplo uma amostra de um banco
de dados que contém informações sobre número de cartões de crédito que uma
família possui, o tamanho da família e a renda familiar, conforme mostrado na
figura 25 abaixo:

Mineração de dados . 63
Figura 23: Banco de dados amostral com dados de famílias

O cálculo da regressão linear para esta amostra de dados leva a um modelo


de regressão linear ajustado de: Y = 0,482 + 0,63X1 + 0,216X2 +  , tal que o
valor do coeficiente de determinação () é 0,87. Esses valores calculados são os
ideais para maximizar o poder preditivo das variáveis Xi e, por consequência,
são usados para prever o valor da variável de saída ou de resposta Y em função
delas.
Outro aspecto na seleção do método é se o problema original é um problema
que necessita de um modelo de descrição ou de predição. Embora seja
relativamente fácil determinar a qual classe de modelos o problema em questão
pertence, não se pode dizer que é fácil selecionar o modelo e muito menos
ajustar seus parâmetros. Não há o modelo ótimo necessariamente, nem muito
menos os níveis ótimos para seus parâmetros. Deve-se admitir a possibilidade
da incerteza do modelo e fazer deduções com base em várias alternativas
plausíveis ou escolhendo um procedimento que não force uma forma particular
de modelo sobre os dados. Para a escolha do método de mineração de dados
mais adequado ao modelo em desenvolvimento existem algumas indicações
gerais:
1. Métodos para modelos de predição com variáveis de entrada e saída
contínuas:
 Regressão linear, não-linear, univariada e multivariada.
2. Métodos para modelos de predição com variáveis de entradas
contínuas, inteiras ou categóricas e saída categórica:
 Árvores de Classificação, Redes Bayesianas, Redes Neurais.
3. Métodos para modelos de classificação com variáveis de entrada
contínuas, inteiras ou categóricas e saída categórica:
 Análise de Cluster, Análise de Associação, Redes Neurais.

Entretanto, é importante ressaltar que essas recomendações são indicações


gerais e que cada problema específico tem um método de mineração que melhor
se adeque a sua resolução geral.
Outra tarefa incluída nessa etapa refere-se ao plano de prototipagem, isto
é, o desenvolvimento de hipóteses, baseadas nas metas da empresa, e a
construção de um plano de testes para elas. A sistemática de como se chega a
um modelo segue o método científico, ou seja, “dados – hipóteses– testes sobre
as hipóteses”. Hipótese é uma afirmação ou proposição não comprovada a
respeito de um sistema. Modelos são consolidados a partir do exame das
hipóteses que os constituem. Plano de Prototipagem, portanto, é a etapa de

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)

Em relação aos itens a) e b) é importante lembrar que existem muitas teorias


e métodos para b) mas relativamente muito pouco sobre a). A escolha do
modelo se faz com base na tradição da área de aplicação ou em função de
alguma inovação baseada em motivação heurística. Entretanto, a amostra que
serviu de base à decisão de escolher um determinado modelo não deve ser a
mesma que servirá para a estimação do modelo, e a validação deverá ainda ser
feita sobre uma terceira amostra diferente das duas anteriores.
Preferencialmente, estas três amostras devem ser obtidas de uma considerada
partição da população, ao invés de serem obtidas de toda a população. De uma
maneira geral deve-se admitir a possibilidade da incerteza do modelo e fazer
deduções com base em várias alternativas plausíveis, ou escolhendo um
procedimento que não force uma forma particular de modelo sobre os dados.
Outra questão crítica sobre esta etapa é a generalização do modelo: (i) um
modelo muito complexo pode se ajustar bem aos dados de treinamento, no
entanto, não ter um bom desempenho para outros dados. Por outro lado,
modelos muito simples podem não prever adequadamente o comportamento da
variável alvo (target). No caso de modelos preditivos, vimos que os métodos
permitem avaliar as estimativas dos parâmetros. Por fim, é importante destacar

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.

Figura 24: Softwares de Mineração de Dados

Fonte: http://www-users.cs.umn.edu/~kumar/dmbook/resources.htm

Tabela 10: Softwares de mineração e técnicas usadas


Empresa Produto Técnica de Mineração

Acknosoft Kate Árvores de decisão

Business Business Miner Redes Neurais, Aprendizado M.


Objects
CrossZ QueryObject Algoritmo de Otimização, Estatística

Data Data Surveyor Diferentes técnicas


Distilleries
DBMiner DBMiner Associação, Classificação, Clusterização.
Techno.
IBM Intelligent Miner Associação, Classificação, Previsão

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

Fonte: adaptado de Elsmari e Navathe (2011).

A maioria desses softwares de mineração citados atua no modo cliente-


servidor. Em geral, os softwares realizam processamento sequencial em única
máquina, entretanto, alguns já rodam em arquiteturas paralelas, realizando
processamento paralelo. A direção futura da área é o uso de softwares que
executam em ambientes distribuídos e computação paralela. Assim, cada vez
mais existe a tendência em mineração de dados de um processamento
distribuído em arquiteturas cliente-servidor, uso de bancos de dados paralelos
associados aos data warehouse’s. Outras tendências que podem ser citadas
sobre as ferramentas da área são:
– Abordagens híbridas das tarefas de mineração;
– Uso de algoritmos recentes da área de Inteligência Artificial;
– Custos de armazenamento secundário cada vez menores;
– Conjunto cada vez maior de dados minerados;
– Processamento e tratamento de dados multimídia;
– Recuperação de imagens.

Para mostrar brevemente o funcionamento de uma ferramenta de mineração


de dados, escolhemos o WEKA, que é um software livre de mineração de dados,
desenvolvido em Java por um grupo de pesquisadores da Universidade de
Waikato, Nova Zelândia. Seu download pode ser feito através do link
http://www.cs.waikato.ac.nz/ml/weka/, sendo de fácil instalação e
utilização, além de funcionar em diversos sistemas operacionais, como Windows,
Mac e Linux.
O software WEKA, nos últimos anos, se consolidou como a ferramenta de data
mining mais utilizada em ambiente acadêmico e em algumas aplicações
comerciais. Suas características e as técnicas usadas na implementação deste
software são apresentadas no livro “Data Mining: Practical Machine Learning
Tools and Techniques”, cujos autores são os criadores da ferramenta. Seu ponto
forte é a tarefa de classificação, mas também é capaz de minerar regras de
associação e clusters de dados. E também pode ser utilizada tanto no modo
console ou quanto através da interface gráfica WEKA Explorer, que é
apresentada abaixo na Figura 27.

Mineração de dados . 68
Figura 25: Interface gráfica do WEKA

O formato conhecido como ARFF é utilizado como padrão para estruturar as


bases de dados manipuladas pelo WEKA. Tal formato corresponde a um arquivo
texto contendo um conjunto de registros, precedido por um pequeno cabeçalho.
A ferramenta também suporta atributos numéricos e categóricos, tal que
atributos numéricos devem ser indicados através das palavras numeric ou real e
para atributos categóricos deve ser fornecida uma lista indicando todos os
valores possíveis do atributo. Os tipos date e string também são suportados.
Para simular o funcionamento da ferramenta WEKA, vamos citar um exemplo
prático da tarefa de classificação neste software em cima de um banco de dados
amostral de uma locadora de veículos. Em linhas gerais, esse problema de
mineração consiste em:
– A ideia é minerar um modelo que classifique o cliente como
“cliente de carro nacional” ou “cliente de carro importado” em
função de sua “idade” e “renda”.
– A base de dados para classificação deve conter um ou mais
atributos preditivos e um atributo classe (ou atributo alvo), sempre
do tipo discreto.
– Será usada como técnica de mineração as Árvores de
Decisão.

Nos parágrafos seguintes, descreve-se um passo a passo da ferramenta a


partir desse simples exemplo citado. Como primeiro passo é necessário
selecionar a fontes de dados que será minerada. No exemplo citado, selecionou-
se um arquivo em Excel, que contém os dados da amostra a ser minerada –
tabela Veículos (veja figura 28).

Mineração de dados . 69
Figura 26: WEKA - Passo 1: Selecionar a fonte de dados

Após a seleção da fonte de dados, o passo seguinte (passo 2) consiste em


gerar o arquivo ARRF correspondente a base de dados utilizada. Esse processo
pode ser feito manualmente, editando os dados da sua fonte num arquivo texto
qualquer (*.txt ou *.rtf) e salvando-o com o formato *.arff, ou então usando
softwares que fazem essa conversão da fonte de dados selecionada para o
formato ARFF. Mas cuidado, que nem todos os softwares que fazem essa
conversão automática funcionam bem. Para o exemplo citado, a base de dados
ARFF gerada é apresentada, a seguir, na Figura 29.
Figura 27: WEKA - Passo 2: Gerar o arquivo ARFF da base 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

Depois de carregado o arquivo ARFF no WEKA, é possível explorar as


informações da base de dados antes do processo de mineração dos dados (passo
4 – opcional). Na Figura 31, a seguir, é possível visualizar o atributo idade e as
classes de valores possíveis e suas ocorrências na amostra usada.

Figura 29: WEKA – Passo 4: Explorar a base de dados antes da mineração

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:

Figura 30: WEKA – Passo 5: Selecionar a tarefa de mineração a ser executada

Após a escolha da tarefa de mineração (classificação, no exemplo), o passo


seguinte (passo 6) refere-se à escolha da técnica ou algoritmo a ser usado para
executar a tarefa. No exemplo citado, escolheu a técnica de Árvores de Decisão
ID3, conforme Figura 33, abaixo:
Figura 31: WEKA – Passo 6: Escolher a técnica (algoritmo) de mineração a ser usada

Depois da escolha da tarefa e técnica de mineração usadas, dispara-se o


minerador (botão Start) e obtém-se os resultados da mineração de dados em
diversos formatos. Os formatos mais comuns de visualização dos resultados são:
modo texto (veja Figura 34) e árvore de decisão (veja Figura 35). O resultado a

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.

Figura 32: WEKA – Passo 7: Visualizar os resultados da mineração em texto

Figura 33: WEKA – Passo 7: Visualizar os resultados da mineração em árvores de


decisão

Por fim, o último passo (passo 8) nessa simulação de mineração usado o


software WEKA, consiste na avaliação da qualidade dos resultados obtidos com o
uso da tarefa e técnica escolhida na ferramenta. Para essa avaliação podem ser
usados os dados gerados após a mineração (visualização em modo texto),
conforme mostra a Figura 36, a seguir.

Mineração de dados . 73
Figura 34: WEKA – Passo 8: Avaliar a qualidade dos resultados obtidos

Avaliação e validação do modelo de mineração


A validação deve ser entendida aqui como a etapa em que a efetividade do
modelo será posta à prova. As seguintes questões podem ser levantadas:
a) O que deu errado?
b) Por que deu errado?
c) Como validar?

Sobre a questão a), basicamente, considera-se que um modelo de mineração


de dados falhou quando um dos dois eventos ocorre:
– O modelo não identifica padrões relevantes que realmente estão
presentes nos dados e poderiam ser generalizados.
– O modelo identifica padrões que não generalizam, que não são
relevantes ou que não estão presentes nos dados.”

Obviamente, esta etapa é uma etapa crítica do processo, porém, não


necessariamente definitiva, pois, a rejeição de um modelo pode ser uma
importante etapa no processo de descoberta do conhecimento. Fazendo-se
necessário refazer etapas anteriores.

Sobre a questão b), se um modelo não é validado a razão poderá ser


encontrada: (i) nos dados; (ii) num ajuste inadequado; ou (iii) algum problema
com a seleção das técnicas de mineração. Problemas típicos com os dados são:
arredondamento inadequado; codificação simbólica ou numérica imprópria;
dados faltantes; dados replicados (por exemplo, o mesmo cliente contado mais
de uma vez). Problemas típicos com o ajuste são: extração de características

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

Fonte: adaptado de Braga (2005).

Por fim, nesta etapa de avaliação e validação, é importante fazer um registro


sobre a avaliação dos resultados da prototipagem: é preciso chamar a atenção
para o fato de que na imensa maioria dos casos, os dados em mineração são
dados observados, para os quais não foi delineado nenhum experimento prévio,
como usualmente se faz em planejamento de experimentos. Assim, o escopo
dos resultados observados raramente pode ser universalizado, devendo ficar
restrito ao ambiente em estudo.

Avaliação do Retorno de Investimento


Esta fase deve ser conduzida pela gerência da empresa para avaliar se as
mudanças consequentes ao projeto representaram efetivamente um ganho
material. Esta atividade é feita após o uso do modelo proposto durante um
período compatível com o ciclo do problema. Nesta fase o impacto financeiro do
projeto é calculado em termos de percentagem do custo do projeto. Assim, se
um projeto para detecção de fraude evitou perdas de um milhão de reais e o
projeto de mineração custou 100 mil reais, então, o ROI é de 900%! Nas
empresas aonde não se praticava a mineração de dados estes retornos tendem a
ser elevados. Por este motivo, os pacotes de data warehouse e data mining são
caros e representam um investimento de peso em sua fase inicial. Pela sua
natureza este tipo de atividade tem que ser aprovado pela alta gerência da
organização, que assim proverá os recursos e a receptividade fundamentais para
o êxito do projeto. A fórmula básica para se avaliar o ROI é:
ROI = resultado – custo x 100
custo

Para mostrar como é feito esse cálculo sobre o retorno de investimento,


podemos citar o exemplo de Braga (2003) sobre o cálculo do ROI para um
cadastro de clientes de uma determinada loja.
Exemplo do cálculo do ROI:
Para um cadastro de 2.000 clientes deseja-se a partir das suas características
decidir para quais será enviado um catálogo de ofertas. Sabendo-se, que o custo
unitário do envio do material é de R$ 2,70 e que a compra média é de R$ 15,00,
qual o ROI se pelo modelo adotado foram enviados 797 catálogos e somente
271 clientes fizeram aquisições? A utilização do modelo dá um ROI maior do que

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%

Nesse exemplo, o uso do modelo de mineração mostrou-se bem mais


vantajoso e lucrativo que o não uso do modelo. Normalmente, é isso que ocorre
na prática, desde que o projeto do modelo de mineração de dados seja bem
conduzido pela equipe de elaboração e desenvolvimento do projeto.
Como forma de resumir todo o processo de elaboração de um projeto
mineração de dados apresentado, apresenta-se um exemplo, também extraído
de Braga (2005), sobre uma campanha de vendas de CDB’s de uma instituição
bancária. O objetivo com este exemplo é resumir o conteúdo incluído em cada
uma das etapas do projeto de mineração. Assim temos:

Exemplo: campanha de vendas de CDB’s de um Banco que tem 1.400.000


clientes pessoas físicas.

1. Definição do problema: identificar clientes que se interessariam em


comprar CDB’s deste banco.
2. Aquisição de dados: constrói-se uma amostra de 150 mil clientes, dos
quais se mediram os seguintes atributos: idade, renda, variáveis demográficas,
lucratividade, nível do depósito, frequência de investimentos, ocasião das
aplicações entre outras.
3. Transformação e codificação de dados: considerar apenas os atributos
relacionados à recência (tempo decorrido desde a última aquisição), frequência e
fator monetário.
4. Prototipagem e desenvolvimento do modelo: usar os classificadores
AdTree, ID3 e J48 do software WEKA e construir árvores de classificação para
o atributo-classe cliente-investidor.
5. Avaliação e validação do modelo: as árvores construídas explicaram
80% do comportamento dos clientes.
6. Execução do projeto: baseado na árvore de classificação foram enviados
convites para parte da totalidade dos clientes do banco propondo a aplicação em
CDB’s
7. Avaliação do retorno do Investimento: gastou-se 30% a menos em
divulgação porque ao contrário de outras PROMOÇÕES o contato só foi feito com
parte dos clientes. A resposta foi 50% melhor do que em promoções anteriores.

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.

AMO, S. A. Curso de Data Mining. Universidade Federal de Uberlândia (UFU),


Faculdade de Computação, 2003. Disponível em:
<www.deamo.prof.ufu.br/CursoDM.html>. Acesso em: 20 de Agosto 2013.

BOSAK, R., RICHARD, F. CLIPPINGER, R.F., DOBBS, C., GOLDFINGER, R.,


JASPER, R.B., KEATING, W., KENDRICK, G.; e SAMMET, J.E. An information
algebra: Phase 1 report – language structure group of the CODASYL
development committee. Communications of the ACM, 5(4), p. 190–204,
1962.

BRAGA, L. P. V. Introdução à mineração de dados. 2ª edição. Rio de Janeiro:


E-Papers Serviços Editoriais, 2005.

BUSH, V. As we may may think. Atlantic monthly, v.176, n.1, p. 101-108,


1945. Disponível em: http://www.w3.org/History/1945/vbush/vbush-all.shtml.
Acesso em: 10 de Setembro de 2013.

CARDOSO, O. N. P. e MACHADO, R. T. M. Gestão do conhecimento usando data


mining: estudo de caso na Universidade Federal de Lavras. Revista de
Administração Pública – Rio de Janeiro 42(3):495-528, maio/jun. 2008

CARVALHO, R. B. Aplicações de softwares de gestão do conhecimento: tipologia


e usos. 2000. Dissertação (Mestrado em Ciência da Computação ) —
Universidade Federal de Minas Gerais, Belo Horizonte.

CODD, E.F. Extending the database relational model to capture more meaning.
ACM Transactions on Database Systems, 4(4), p. 397–434, 1979.

DECKER, K.; FOCARDI, S. Technological overview: a report on data mining.


CSCS — Swiss National Supercomputing Center, Technical Report, Zurique,
1995. Disponível em: <ftp://ftp.cscs.ch/pub/CSCS/>. Acesso em: 17 de
setembro de 2013.

ELSMARI, R. e NAVATHE, S. Sistemas de Bancos de Dados. 6ª edição. São


Paulo: Pearson Addison Wesley, 2011.

FAYYAD, U. M. et al. From data mining to knowledge discovery: an overview. In:


Advances in knowledge discovery and data mining. California: AAAI/The MIT,
1996. p.1-34.

JARDINE, D. A. The ANSI/SPARC DBMS model. Proceedings of the Second


SHAREWorking Conference on Database Management Systems.
Amsterdam: North Holland, 1976.

KING, D. Numerical machine learning. Georgia: Tech College of Computing,


2003. Disponível em: <www.cc.gatech.edu/kingd/datamine/datamine.html>.
Acesso em: 17 set. 2013.

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.

MOXTON, B. Defining data mining. DBMS Data warehouse supplement site,


2013. Disponível em: <www.dbms.mfi.com/9608d53.html>. Acesso em: 17 set.
2013.

NAVEGA, S. Princípios Essenciais do Data Mining. Anais do Infoimagem,


Cenadem, Novembro 2002.

TAN, P.; STEINBACH, M. e KUMAR, V. Introdução ao Data Mining -


Mineração de Dados. Ed. Ciência Moderna, 2009.

WITTEN, I. H.; FRANK, E.; HALL, M. A. Data Mining: Practical Machine


Learning Tools and Techniques. 3rd Edition, Morgan Kaufmann, 2011.

Mineração de dados . 79

Você também pode gostar