Você está na página 1de 61

Prof. Msc.

Paulo Muniz de vila

O que Data Mining ?


Minerao de dados (descoberta de conhecimento em

bases de dados):

Extrao de informao interessante (no-trivial, implcita,

previamente desconhecida e potencialmente til) dos dados


armazenados em grandes massas de dados

Nomes alternativos:
Descoberta (minerao) de conhecimento em banco de dados

(KDD), extrao de conhecimento, anlise de dados/padres,


business intelligence, etc.

O que no data mining?

Processamento de consultas dedutivo.


Sistemas especialistas ou pequenos programas estatsticos ou de

aprendizado de mquina

Aplicaes em Potencial
Anlise de dados e suporte a decises
Anlise de mercado

Marketing sob demanda, relao entre clientes, anlise e segmentao de


mercado, anlise cruzada de dados, etc.

Anlise de risco

Previso, controle de qualidade, anlise competitiva, anlise de seguros

Deteco de fraude

Outras Aplicaes
Minerao de texto (news group, email, documentos XML e HTML)

Web mining

Anlise de Mercado (1)


Quais so as fontes de dados para anlise ?
Transaes de cartes de crdito, cartes de fidelidade, cupons de

desconto, servios de televendas, estudos de comportamento


(questionrios pblicos, web, etc.)
Marketing sob demanda
Descobrir grupos de modelos de clientes que compartilham as

mesmas caractersticas: interesses, hbitos de compras, etc.


Determinar padres de compras no tempo
Anlise cruzada de dados
Associaes/co-relaes entre vendas de produtos
Previso baseada nas associaes determinadas

Anlise de Mercado (2)


Customer profiling
Data mining pode mostrar que tipos de clientes compram que

tipos de produtos (clustering ou classificao)

Identificao das necessidades dos clientes


Melhores produtos para diferentes clientes
Modelos de predio para descobrir que fatores vo atrair

novos clientes

Informaes sumrias
Relatrios multidimensionais e estatsticos

Deteco de Fraude (1)


Aplicaes
Largamente usada em servios de sade, cartes de crditos,
telecomunicaes (fraude de ligaes telefnicas), etc.
Tcnicas
Dados histricos para construir modelos de comportamento
fraudulentos e usar minerao de dados para identificar instncias
similares
Exemplos
Seguro de automveis: detecta um grupo de pessoas que so potenciais
coletores de sinistros
Lavagem de dinheiro: detecta transaes suspeitas de dinheiro
Seguro de sade: detecta pacientes profissionais e grupo de outores
usados para receber seguro destes pacientes

Deteco de Fraude (2)


Deteco inapropriada de tratamento mdico

Comisso de Seguro de Sade da Austrlia identificou que

em muitos casos os tratamentos no eram necessrios


(economia de $1milho/ano).

Deteco de fraudes telefnicas

Modelo de ligaes telefnicas: destino da ligao,

durao, hora do dia, dia da semana. Anlise de padres


que desviam do padro esperado.

Data Mining: Uma Etapa do Processo KDD

1 - SELEO
2 - PR-PROCESSAMENTO
(Limpeza + Enriquecimento)
3 - TRANSFORMAO

4 - MINERAO

5 - INTERPRETAO

3
Regras e
Padres

2
Dados
Pr-processados

1
Dados

Dados
Selecionados

Dados
Transformados

Conhecimento

Etapas do Processo KDD


Conhecer o domnio da aplicao:

Conhecimento relevante e metas da aplicao

Criar a base de dados alvo: seleo de dados


Limpeza dos dados e pr-processamento: (at 60% do esforo!)
Transformao dos dados:
Contemplar propriedades importantes e dimenses.

Escolha das funes do data mining

sumarizao, classificao, associao, clustering.

Escolha dos algortimos de minerao


Data mining: busca dos padres de interesse
Avaliao dos padres descobertos e apresentao do conhecimento
visualizao, transformao, remoo de padres redundantes, etc.

Uso do conhecimento descoberto

Algoritmos de Minerao
O algoritmo de minerao o mecanismo que cria um

modelo a partir das informaes disponveis na base de


dados. Para criar um modelo, um algoritmo primeiro
analisa um conjunto de dados e procura padres e
tendncias especficos. O algoritmo usa os resultados
dessa anlise para definir os parmetros do modelo de
minerao. Esses parmetros so aplicados pelo
conjunto de dados inteiro para extrair padres
acionveis e estatsticas detalhadas.

Weka
O pacote de software Weka (Waikato Environment for

Knowledge Analysis) comeou a ser escrito em 1993, usando


Java, na Universidade de Wakato, Nova Zelndia sendo
adquirido posteriormente por uma empresa no final de
2006. O Weka encontra-se licenciado ao abrigo da General
Public License sendo portanto possvel estudar e alterar o
respectivo cdigo fonte.

Weka tem como objetivo agregar algoritmos


provenientes de diferentes abordagens/paradigmas na
subrea da inteligncia artificial dedicada ao estudo da
aprendizagem por parte de mquinas.

Weka
Essa subrea pretende desenvolver algoritmos e

tcnicas que permitam a um computador "aprender"


(no sentido de obter novo conhecimento) quer
indutiva quer dedutivamente.

O Weka procede anlise computacional e estatstica

dos dados fornecidos recorrendo a tcnicas de dataminning tentando, indutivamente, a partir dos padres
encontrados gerar hipteses para solues e no
extremos inclusive teorias sobre os dados em questo.

Tarefas de Minerao
De acordo com os objetivos pretendidos, podem ser

realizadas vrias tarefas de minerao de dados.

Uma tarefa um conceito que define o modo como as

informaes sero mineradas. Pode ser visto como uma


funcionalidade. O conjunto de tarefas realizadas sobre os
dados disponveis define a anlise realizada em um dado
intervalo de tempo.

Uma tarefa pode utilizar-se de diferentes abordagens para

alcanar os objetivos. Essas abordagens so conhecidas


como tcnicas.

Tcnicas de Minerao
As principais tcnicas so:
Classificao
Agrupamento
Regras de Associao

Classificao
A classificao um conceito bastante conhecido do

homem.

Essa tarefa consiste em categorizar os dados em classes

previamente definidas de acordo com a similaridade de


alguma caracterstica dos dados.

Por

exemplo, em um supermercado podemos


classificar os produtos em algumas classes prdefinidas: frios, laticnios, produtos de higiene,
jardinagem, etc.

Weka Tcnicas de Classificao


Algoritmo J48
O algoritmo J48 fornece uma classificao de uma base
de dados que lhe fornecida. Ele gera um classificador
na forma de uma rvore de deciso.
Uma rvore de deciso descreve uma estrutura de rvore
onde folhas representam classificaes e ramos
representam conjunes de caractersticas que levam s
classificaes
Vamos a um exemplo no Weka

Weka Exemplo
Aps executar o software Weka
Clique em Explorer.

Weka - Ambiente

Weka Exemplo
Selecione Open File...
Abrir o arquivo tempo.arff

Weka Arquivo ARFF


@relation weather
@attribute tempo {ensolarado, nublado, chuvoso}
@attribute temperatura real
@attribute humidade real
@attribute ventando {TRUE, FALSE}
@attribute jogar? {yes, no}
@data
ensolarado,85,85,FALSE,no
ensolarado,80,90,TRUE,no
nublado,83,86,FALSE,yes
chuvoso,70,96,FALSE,yes
chuvoso,68,80,FALSE,yes
chuvoso,65,70,TRUE,no
nublado,64,65,TRUE,yes
...

Weka Arquivo ARFF


@relation weather
@attribute tempo {ensolarado, nublado, chuvoso}
@attribute temperatura real
@attribute humidade real
@attribute ventando {TRUE, FALSE}
@attribute jogar? {yes, no}
@data
ensolarado,85,85,FALSE,no
ensolarado,80,90,TRUE,no
nublado,83,86,FALSE,yes
chuvoso,70,96,FALSE,yes
chuvoso,68,80,FALSE,yes
chuvoso,65,70,TRUE,no
nublado,64,65,TRUE,yes
5/21/2010

University of Waikato

21

Explorando a GUI do Weka

Classificando com J48


Selecione o classificador J48 conforme
Figura ao lado.
Aps selecionar clique em Close.

Classificando com J48

Classificando com o J48


Instncias classificadas
Corretamente/incorretamente

Classificando com o J48

Classificando com o J48

Classificando com o J48

Vamos testar nosso modelo


Tempo

Temperatura

humidade

Ventando

Nublado

76

90

FALSE

Ensolarado

80

86

TRUE

Chuvoso

70

100

FALSE

Como as instncias so classificadas ?

Testando o modelo
Crie um arquivo chamado tempo_real.arff (wordpad)

@relation weather_real_data

@attribute tempo {ensolarado, nublado, chuvoso}


@attribute temperatura real
@attribute humidade real
@attribute ventando {TRUE, FALSE}
@attribute jogar? {yes, no}

@data
nublado,76,90,FALSE,yes
ensolarado,80,86,TRUE,yes
chuvoso,70,100,FALSE,yes

Classificando com o J48


1
2

Classificando com o J48

O que ocorreu aqui ? 1 instncia classificada como incorreta.

Classificando com o J48

Classificando com o J48

Erros no modelo
s

vezes
nosso
modelo
contem
algumas
inconsistncias. Vamos criar uma inconsistncia no
modelo e verificar se o classificador capaz de detectala.

Inserindo a inconsistncia
Na base de dados tempo.arff insira a linha abaixo:

nublado,70,80,TRUE,no
Execute novamente o treinamento

necessrio abri-lo novamente.

do algoritmo.

Erro detectado no modelo


O que aconteceu ?

Erro detectado no modelo

Mais um exemplo
Vamos agora utilizar um outro algoritmo muito

conhecido, o naive bayses.


Este algoritmo recebe este nome porque baseado na
teoria da probabilidade de Bayes. O algoritmo tem por
objetivo calcular a probabilidade de que um novo dado
pertena a alguma classe previamente determinada
[Pichiliani 2007].
Este tipo de predio chamado de classificao
estatstica, pois completamente baseada em
probabilidades.

Naive Bayses

Naive Bayses
Analise a sada do algoritmo ?
Alguma classe classificada de forma incorreta ?
Visualize a classificao de erros
1

Agrupamento
A tarefa de agrupamento bastante parecida com a de

classificao.

A diferena fundamental que na classificao, as

classes j esto definidas previamente, enquanto que


no agrupamento, as classes so definidas durante a
tarefa de acordo com o estabelecimento do conjunto de
atributos que devem nortear essa categorizao

Agrupamento
Observe o agrupamento definido
na base de dados. Temos 2 grupos:
Jogar/SIM = 9
Jogar/NO = 5

Agrupamento
Para o nosso propsito importante que os dados no

estejam categorizados em Jogar/SIM ou Jogar/No. Em


outras palavras, queremos que o algoritmo de
agrupamento seja capaz de inferir esses grupos de
forma automtica.

Sendo assim, precisamos remover o atributo jogar? da

nossa base de dados.

O Weka ir nos ajudar nessa tarefa.

2
3

Agrupamento

Agrupamento

Agrupamento Output

Agrupamento
O algoritmo foi eficiente par a essa base de dados?
Lembre-se dos dados originais.
Observe o agrupamento definido
na base de dados. Temos 2 grupos:
Jogar/SIM = 9
Jogar/NO = 5

Associao
Essa tarefa visa identificar grupos de fatos que ocorrem em

conjunto ou de forma condicionada.

A rea de utilizao mais comum desse tipo de tarefa a

rea de vendas. Busca identificar-se relacionamentos e


associaes entre produtos para o estabelecimento de
pacotes, ou rearranjo de prateleiras.
Por exemplo. Se 50% dos consumidores que compram o

produto A comprarem tambm o produto B, colocar esses


produtos em prateleiras prximas ou estimular o consumo em
conjunto desses itens certamente trar resultados benficos
para as vendas.

Algoritmo Apriori
Apriori um algoritmo clssico para aprendizado de

regras de associao. Apriori utilizado com bases de


dados que contm transaes (como por exemplo,
conjuntos de itens comprados por consumidores).

Como comum em minerao de associaes, dado

um conjuntos de itens, o algoritmo tenta encontrar


subconjuntos em comum que estejam acima de uma
confiana mnima definida pelo utilizador.

Weka Apriori
Trabalha apenas com atributos nominais e binrios

OK

Weka Apriori
Trabalha apenas com atributos nominais e binrios

Problema !!!!

Weka Apriori
possvel converter atributos ?
SIM e o software Weka prov esses recursos.

Weka Apriori - Filtros


1

Weka Apriori - Filtros


4

2
3

Melhorando as regras

Exerccios
Suponha que voc deseje treinar um sistema para que

seja capaz de detectar se uma determinada pessoa


homem ou mulher.

Quais atributos voc acredita ser necessrio ?


Monte um arquivo ARFF com 10 instncias e verifique

a eficincia do modelo criado ?

Você também pode gostar