5-ProcessoDeMD

Propaganda
Marcus Sampaio
DSC/UFCG
Vários slides foram adaptados, traduzidos ou copiados de
Pang-Ning Tan (ver Bibliografia)
Etapas do Processo
Marcus Sampaio
DSC/UFCG
Etapas do Processo
•
•
•
•
•
Seleção
Pré-Processamento
Transformação
Garimpagem
Análise e Assimilação
Marcus Sampaio
DSC/UFCG
Seleção + Pré-processamento
Marcus Sampaio
DSC/UFCG
• Macro etapa Preparação de Dados
– Seleção
• Identificação dos bancos de dados
• Seleção de atributos
• ‘Discretização’ de valores de atributos numéricos
– Pré-processamento
• Limpeza
• Amostragem
Seleção de Atributos
Marcus Sampaio
DSC/UFCG
• Existem algoritmos que selecionam
automaticamente, de um banco de dados, os
atributos relevantes para compor as
instâncias ou exemplos de mineração
– Para Seleção de Atributos, consultar o livro texto,
ou qualquer bom livro de MD
• Banco de Dados, no contexto de MD, é
qualquer coleção desnormalizada de
documentos
– MD e BD Relacional: “Impedance mismatching”
‘Discretização’ de Atributos
Marcus Sampaio
DSC/UFCG
• Para diminuir a complexidade de um modelo
de conhecimento, atributos com domínio 
devem ser ‘discretizados’
– WEKA possui vários algoritmos de ‘discretização’
– Alguns algoritmos de MD simplesmente não
trabalham com domínios 
– Algoritmos que ‘trabalham’ com domínios  na
verdade embutem algoritmos de ‘discretização’
Pré-Processamento: Limpeza
Marcus Sampaio
DSC/UFCG
• Uma verdadeira ‘praga’ em aplicações de
mineração de dados é a pobre qualidade dos
dados de entrada dos algoritmos
• Uma maneira de resolver ou minimizar o
problema é fazer uma inspeção manual nos
arquivos de dados. Para arquivos grandes,
isto pode ser impraticável
Limpeza
Marcus Sampaio
DSC/UFCG
• Felizmente, as próprias técnicas de mineração de
dados podem ajudar a resolver o problema
• Considere um problema de classificação, e duas
espécies de ‘sujeira’: no atributo de classificação, e
nos atributos que não são de classificação
• ‘Sujeira’ em atributos de classificação
– Remover as instâncias concernentes do conjunto de
treinamento. Como?
• Rodando um algoritmo de classificação que procure ser espelho
do conjunto de treinamento  100% de acurácia de
treinamento
– As instâncias que caem em classes ‘sujas’ são fisicamente
retiradas
Limpeza
Marcus Sampaio
DSC/UFCG
• ’Sujeira’ em atributos que não são de
classificação
– Alguns algoritmos são capazes de descobrir
atributos não confiáveis, logicamente removendo a
‘sujeira’ do conjunto de treinamento
• Exemplo: algoritmo WEKA J48 (Árvores de Decisão)
– Pressuposição: ‘sujeiras’ são pouco freqüentes,
comparadas com valores ‘limpos’
• Existem diversas ferramentas para limpeza
automática
– Remoção lógica
– Remoção física
Amostragem
Marcus Sampaio
DSC/UFCG
• A idéia é escolher somente uma parte do
conjunto de treinamento, mas que seja
representativa do conjunto inteiro
• Estado-da-arte em amostragem
– Diversas técnicas
– Tecnologia relativamente consolidada
– Diversas ferramentas existentes no mercado
Etapas do Processo
•
•
•
•
•
Seleção
Pré-Processamento
Transformação
Garimpagem
Análise e Assimilação
Marcus Sampaio
DSC/UFCG
Transformação
Marcus Sampaio
DSC/UFCG
• Cada algoritmo de mineração de dados
necessita de uma entrada específica
• A finalidade da transformação é então de
transformar os dados preparados, de modo a
torná-los compatíveis com as entradas dos
diversos algoritmos de mineração de dados
• Exemplo 1
– Gerar arquivos .arff para usar os algoritmos da
biblioteca WEKA
Marcus Sampaio
DSC/UFCG
• Exemplo 2
– A maioria dos algoritmos de MD implementa
consultas abertas, ou não parametrizadas
• Vantagens: o minerador pode dizer “algoritmo, vire-se:
não vou ajudá-lo em nada!”
• Desvantagens: muitas vezes, restrições  ou parâmetros
 são importantes
– O minerador pode querer rodar um algoritmo indutor de um
modelo descritivo, para descrever os exemplos de
treinamento somente de uma certa classe X
• Restrições ou parâmetros são simulados com
uma conveniente transformação dos arquivos
de entrada
Etapas do Processo
•
•
•
•
•
Seleção
Pré-Processamento
Transformação
Garimpagem
Análise e Assimilação
Marcus Sampaio
DSC/UFCG
Garimpagem ou Mineração
Marcus Sampaio
DSC/UFCG
• Uma vez os dados preparados e
transformados, aplicam-se os algoritmos de
mineração de dados, dependendo do
problema
–
–
–
–
–
–
Associação
Classificação Supervisionada
Classificação Não-Supervisionada
Série Temporal
Regressão
...
Etapas do Processo
•
•
•
•
•
Seleção
Pré-Processamento
Transformação
Garimpagem
Análise e Assimilação
Marcus Sampaio
DSC/UFCG
Análise e Assimilação
Marcus Sampaio
DSC/UFCG
• Nesta etapa, a seguinte questão deve ser
respondida: o conhecimento induzido é relevante e
acionável?
– Relevância: conhecimento não trivial
– Modelo acionável: que não seja muito complexo, ou que
possa ser assimilado por um especialista
• Se a resposta não for satisfatória, então poderá ser
necessário repetir todo ou parte do processo de MD
– Por exemplo, usar um outro algoritmo de indução de
conhecimento
• Na seqüência, consideramos que os modelos são
relevantes e acionáveis
Três Questões a Analisar
Marcus Sampaio
DSC/UFCG
• “Underfitting” e “Overfitting” de Modelos
• Valores Faltando em Dados para Mineração
• Métricas de Desempenho dos Algoritmos
Indutores
“Overfitting” e “Underfitting”
Marcus Sampaio
DSC/UFCG
• Um bom modelo deve ter
– Alta acurácia de treinamento (actrein)
– Alta acurácia de teste (acteste)
• Pode ocorrer que alta actrein  baixa acteste
– “Overfitting”
• “Underfitting” de um modelo
– Baixa actrein e baixa acteste
• Modelos com “underfitting” e “overfitting”
devem ser descartados
– O importante é acteste
“Underfitting” e “Overfitting”
Underfitting
Marcus Sampaio
DSC/UFCG
Overfitting
Number of nodes
indica o tamanho
do modelo
induzido
Underfitting: quando o modelo é muito simples, tanto as acurácias de
treinamento quanto as de teste são baixas
“Underfitting” e “Overfitting”
Marcus Sampaio
DSC/UFCG
• Quais as causas de “underfitting” e
“overfitting”? Note que um e outro conduzem
a baixas acurácias de teste
• Considere que um algoritmo trabalha para
obter, se for possível, 100% de actrein
– Má distribuição das classes
– Ruído ou ‘sujeira’
– Falta de representatividade das classes
Conjunto de
Treinamento
Má Distribuição
Marcus Sampaio
DSC/UFCG
Duas classes
Representações
Pontos circulares
Pontos triangulares
Pode conduzir a
padrões muito dispersos
para as classes  pouco
valor estatístico
Conjunto de Treinamento
Pouca Representatividade
Marcus Sampaio
DSC/UFCG
Temp.
do
Corpo
Nasc.
Uterino
4
Pernas
Hiberna
Classe
Salaman
dra
fria
não
sim
sim
Não
mamífero
“Guppy”
fria
sim
não
não
Não
mamífero
Águia
quente
não
não
não
Não
mamífero
“Poorwill”
quente
não
não
sim
Não
mamífero
“Platypus
”
quente
não
sim
sim
Mamífero
Nome
Marcus Sampaio
DSC/UFCG
• O conjunto de treinamento não tem erro
• Um classificador poderia induzir a regra se
temperatura do corpo é quente e não hiberna
então não é mamífero
– Assim, humanos, elefantes e golfinhos seriam
classificados como não mamíferos!
– O problema é a falta de representatividade da
regra: só casa com as águias
– Assim, teríamos por exemplo 100% de actrein e
70% de acteste, caracterizando “overfitting”
Ruído ou ‘Sujeira’
Marcus Sampaio
DSC/UFCG
Note que um padrão para o ponto ‘sujo’ não tem
valor estatístico
Solução para
“Underfitting”
Marcus Sampaio
DSC/UFCG
• O problema de “underfitting” pode ser
resolvido com um conjunto de treinamento de
bom tamanho
– Técnicas de amostragem ajudam
“Overfitting”: Algumas
Conclusões
Marcus Sampaio
DSC/UFCG
• “Overfitting” resulta de modelos de
treinamento que são mais complexos do que
o necessário
– Regras sem valor estatístico
• Acurácia de treinamento deve ser vista com
muita reserva
• Necessidade de novos métodos de estimar
acurácia
– Acurácia de teste
– Acurácia de previsão
Estimativa de Acurácia
de Previsão
Marcus Sampaio
DSC/UFCG
• Conjunto de Treinamento
– Treina um algoritmo de mineração
– Acurácia de Treinamento
• Conjunto de Teste
– Testa o modelo induzido pelo algoritmo
– Acurácia de Teste
• Conjunto de Previsão
– Conjunto sobre o qual o modelo é aplicado, para fazer
previsão
– Acurácia de Previsão
• Acurácia de Previsão
– Acurácia de Previsão = f(Acurácia de Teste)
Acurácia de Previsão
Marcus Sampaio
DSC/UFCG
• “Holdout”
– Fragmentação dos dados  amostra  em
conjunto de treinamento e conjunto de teste
• Tipicamente, 2/3 para treinamento e 1/3 para teste
– O modelo é induzido do conjunto de treinamento
– O modelo induzido é testado com o conjunto de
teste
– Principal problema
• Uma classe pode ficar super-representada em um
conjunto, e sub-representada em outro; ou
• O modelo pode ser fortemente dependente da
composição dos conjuntos
Marcus Sampaio
DSC/UFCG
• Validação Cruzada (“Cross Validation”)
Marcus Sampaio
DSC/UFCG
– O algoritmo é treinado com todos os dados
– Para calcular a acurácia de teste
• Calcula-se a média  ou a soma  dos acertos dos três testes
realizados
• Note que os modelos podem variar  pouco, ou até muito! ,
em relação ao modelo induzido para todos os dados
• Usa-se cada vez mais "stratified ten-fold crossvalidation“
– Estratificação: classes igualmente representadas em todos
os fragmentos
– Os dados são aleatoria e estratificadamente divididos em
dez fragmentos
– Como consequência da estratificação, os 10 modelos da
iteração são praticamente iguais ao modelo do treinamento
do algoritmo
Marcus Sampaio
DSC/UFCG
• “Bagging” – Técnica de Meta Modelagem
– Usa um modelo classificador de modelos
Indução dos Modelos
Para cada uma das t iterações (“stratified t-fold crossvalidation”)
Aplique um algoritmo
Salve o modelo induzido pelo algoritmo
Previsão (ou Predição)
Para cada um dos modelos aprovados
Classificar a instância de previsão
Retornar a classe mais votada
Note que não se trata, aqui, de estimar a acurácia de previsão
Métricas de Desempenho:
Acurácia
Marcus Sampaio
DSC/UFCG
PREDICTED CLASS
Class=Yes
ACTUAL
CLASS
Class=No
Class=Yes
a
(TP)
b
(FN)
Class=No
c
(FP)
d
(TN)
ad
TP  TN
Accuracy 

a  b  c  d TP  TN  FP  FN
Acurácia
Marcus Sampaio
DSC/UFCG
• Note que o cálculo da acurácia no slide
anterior é limitado ao caso de duas classes 
“two-class problem”
• É comum um conjunto de treinamento ter
muitas classes
• De qualquer maneira, o valor da acurácia se
confunde sempre com a taxa de acerto
Acurácia: Limitações
Marcus Sampaio
DSC/UFCG
• Considere um “2-class problem”
– Número de instâncias (ou exemplos) de
treinamento da Classe 0 = 9990
– Número de exemplos da Classe 1 = 10
• Se um modelo prediz que tudo é da Classe 0
  exemplo de predição  0  , então a
acurácia é 9990/10000 = 99.9 %
– O valor é enganoso porque o modelo não prevê
qualquer exemplo da Classe 1
Intervalo de Confiança
para Acurácia
Marcus Sampaio
DSC/UFCG
Area = 1 - 
• For large test sets (N > 30),
– acc has a normal distribution
with mean p and variance
p(1-p)/N
P( Z 
 /2
acc  p
Z
p (1  p ) / N
1 / 2
)
 1
• Confidence Interval for p:
Z/2
Z1-  /2
2  N  acc  Z  Z  4  N  acc  4  N  acc
p
2( N  Z )
2
 /2
2
 /2
2
 /2
2
Intervalo de Confiança
para Acurácia
Marcus Sampaio
DSC/UFCG
• Consider a model that produces an accuracy
of 80% when evaluated on 100 test instances:
– N=100, acc = 0.8
– Let 1- = 0.95 (95% confidence)
1-
Z
0.99 2.58
– From probability table, Z/2=1.96
0.98 2.33
N
50
100
500
1000
5000
0.95 1.96
p(lower)
0.670
0.711
0.763
0.774
0.789
0.90 1.65
p(upper)
0.888
0.866
0.833
0.824
0.811
Outras Métricas de
Desempenho
number correct positive prediction s
precision 
number positive prediction s
recall 
number correct positive prediction s
number positive ins tances
2
F  measure 
1 / precision  1 / recall
Marcus Sampaio
DSC/UFCG
Marcus Sampaio
DSC/UFCG
• Exemplos
– A percentagem de todas as instâncias da classe esporte que
foram classificadas corretamente é o “recall”, ou a cobertura
– A percentagem de instâncias corretamente classificadas
como esporte é a precisão
– F-measure: média harmônica de precisão e “recall”
• Alta precisão é sempre muito importante, mas muitas instâncias
esporte podem ser deixadas de lado (isto é medido por “recall”)
– Programa que identifica “spam e-mail” com alta precisão e baixo
“recall
• Deixa “spam” na caixa de entrada (baixo “recall”)
• Geralmente acerta quando joga um “spam” no lixo (alta
precisão)
Marcus Sampaio
DSC/UFCG
• Considere que um sistema de e-mail marcou
corretamente 20 e-mails como spam, mas
não detectou 5 emails que são spams
– Precisão = 20 / 20 = 100%
– Recall = 20 / 25 = 80%
– F-measure = 2 / (1 + 1 / 0,8) = 0,89
Valores Faltando
Marcus Sampaio
DSC/UFCG
• Valores faltando são valores NULL
• Convivência com valores NULL
– Diversos algoritmos trabalham com valores NULL
• É preciso saber como
– Por exemplo, alguns algoritmos smplesmente removem
logicamente atributos com pelo menos um valor NULL
• Não convivência com valores NULL
– A solução ‘crua’ é remover aquelas instâncias do
conjunto de treinamento com valores NULL
• Pode ser muito restritiva, ou mesmo inviável
– Soluções mais sofisticadas permitem estimar os
valores de atributos faltando
Estimativa de Valor
Tid Refund Marital
Status
Marcus Sampaio
DSC/UFCG
Taxable
Income Class
1
Yes
Single
125K
No
2
No
Married
100K
No
3
No
Single
70K
No
4
Yes
Married
120K
No
5
No
Divorced 95K
Yes
6
No
Married
No
7
Yes
Divorced 220K
No
8
No
Single
85K
Yes
9
No
Married
75K
No
60K
Tid Refund Marital
Status
Taxable
Income Class
10
90K
Single
?
Yes
10
Refund
Yes
No
Class=Yes
0 + 3/9
Class=Yes
2 + 6/9
Class=No
3
Class=No
4
Probability that Refund=Yes is 3/9
10
Refund
Yes
Probability that Refund=No is 6/9
No
Class=Yes
0
Class=Yes
2
Class=No
3
Class=No
4
Assign record to the left child with
weight = 3/9 and to the right child
with weight = 6/9
Download