Preparação dos Dados
Preparação dos Dados


Compreensão dos dados
Limpeza







Metadado
Valores Perdidos
Formato de data unificado
Nominal para numérico
Discretização
Seleção de atributos e “falsos preditores”
Distribuição desbalanceada de classes
Processo de Descoberta de Conhecimento
Estima-se que a Preparação
dos Dados consume 7080% do tempo e esforço
Entendimento dos Dados:
Relevância

Que dados estão disponíveis para a tarefa?

Os dados são relevantes?

Há dados relevantes adicionais?

Qual a quantidade de dados históricos disponível?

Quem é o especialista dos dados?
Entendimento dos Dados: Quantidade



Número de instâncias (registros)
 Heurística: 5000 ou mais é desejável
 Se menos, os resultados são menos confiáveis; use métodos
especiais (cross-validation, boostrap, ...)
 Caso o conjunto seja muito grande, use métodos de seleção de
instâncias
Número de atributos (campos)
 Caso o número de atributos seja muito “alto”, use seleção ou redução
de atributos
 “Alto” vai depender, entre outras coisas, do número de instâncias
disponível
 5000 instâncias em que cada instância possui 600 atributos X 200
instâncias em que cada instância possui 600 atributos
Número de instâncias por classe
 Para conjuntos desbalanceados (número de instâncias por classe
diferentes), use uma amostragem extratificada
Limpeza do Dados: Passos

Aquisição de dados e metadados

Valores perdidos

Formato de data unificado

Conversão de dados nominal para numérico

Discretização de dados numéricos

Validação dos dados e estatística
Limpeza dos Dados: Aquisição


Os dados podem estar em SGBD
 ODBC, JDBC
Dados em flat file (tabela de dados)
 Formato largura fixa
 Formato delimitado: TAB, ponto-e-vírgula, ...
 O formato ARFF do WEKA usa vírgula como
delimitador


Atenção: converte também “delimitadores” dentro de
valores de atributos do tipo string
Verifique o número de atributos antes e depois do
processamento
Limpeza dos Dados: Exemplo

Dados originais (formato largura fixa)
000000000130.06.19971979-10-3080145722
#000310 111000301.01.000100000000004
0000000000000.000000000000000.000000000000000.000000000000000.000000000000000.00000000
0000000.000000000000000. 000000000000000.000000000000000.0000000...…
000000000000000.000000000000000.000000000000000.000000000000000.000000000000000.000000
000000000.000000000000000.000000000000000.000000000000000.000000000000000.000000000000
000.000000000000000.000000000000000.000000000000000.000000000000000.000000000000000.000
000000000000.000000000000000.000000000000000.000000000000000.000000000000000.000000000
000000.00 0000000000300.00 0000000000300.00

Dados limpos
0000000001,199706,1979.833,8014,5722 , ,#000310 ….
,111,03,000101,0,04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0300,0300.00
Limpeza dos Dados: Metadados



Tipos de atributos
 Nominal, ordinal, numérico (escalar e razão)
 Para atributos nominais, definir tabelas que traduzam a
codificação para as descrições completas
Papel do atributo
 Entrada: instâncias para a modelagem (e.g., criação de uma
árvore de decisão)
 Objetivo: saída
 Identificação da Instância: mantenha-o, mas não o use para a
modelagem
 Ignore: não o use para a modelagem
 Peso: peso da instância
 ....
Descritores de atributos
Limpeza dos Dados: Reformatação

Conversão dos dados para um formato padrão (e.g., ARFF ou
CSV)





Valores perdidos
Formato unificado para data
Discretização de dados numéricos
Correção de erros e observações atípicas (outliers)
Conversão de atributos ordinais para numérico (caso a
implementação do método a ser utilizado não trabalhe
diretamente com esse tipo de atributo)

Por quê? Para ser capaz de utilizar comparações do tipo “>”
e “<“ para esses atributos
Limpeza dos Dados: Valores Perdidos (1/4)

Dados perdidos


Valor de atributo não disponível de uma instância sobre a qual outros valores
de atributos estão disponíveis
Processo de dados perdidos



Qualquer evento sistemático externo ao respondente (como erros na entrada
de dados ou problemas na coleta de dados) ou ação por parte do respondente
(como recusa a responder) que conduz a valores perdidos
Alguns processos de dados perdidos são fáceis de identificar e resolver
 Por exemplo, o valor de um atributo “anos-de-casado” seria inexistente
(não aplicável) no caso de instâncias que representem adultos que nunca
foram casados
Outros processos de dados perdidos não são tão fáceis de identificar e
acomodar
 Por exemplo, em certos contextos, o valor de um atributo “renda” pode
não estar disponível porque a pessoa não quis informá-lo
Limpeza dos Dados: Valores Perdidos (2/4)

Identificação do processo de dados perdidos



Os dados perdidos estão distribuídos ao acaso pelas instâncias ou são padrões
distintos identificáveis?
Qual é a freqüência dos dados perdidos?
O impacto dos dados perdidos é prejudicial:

Tendências “ocultas” potenciais sobre o resultado

Impacto prático no tamanho do conjunto de dados (amostra) disponível

Se atitudes corretivas sobre dados perdidos não são aplicadas, qualquer instância
com atributos com valores perdidos será excluída da base de dados
Limpeza dos Dados: Valores Perdidos (3/4)

Dados perdidos ao acaso



Considere, para fins de ilustração, dois atributos X (e.g., “sexo”) e Y (e.g., “renda”)
de um conjunto de instâncias m (e.g., clientes de um banco). X não apresenta dados
perdidos para as m instâncias, mas Y tem alguns. Se um processo de dados perdidos
é identificado entre X e Y, em que há diferenças significastes nos valores de X que
entre os casos para Y com dados válidos e perdidos, então os dados perdidos não
aleatórios.
Qualquer análise deve acomodar explicitamente o processo de dados perdidos entre
X e Y, sob pena de serem introduzidas tendências nos resultados
Exemplo:







Atributos “sexo” e “renda”
Primeiro, formaríamos dois grupos de instâncias, aquelas com dados perdidos para renda
familiar e e aquelas que possuem este valor
Compararíamos então os percentuais de “sexo” para cada grupo
Se um sexo (e.g., masculino) fosse encontrado em maior proporção no grupo de dados
perdidos, suspeitaríamos de um processo de dados perdidos não-aleatório
Teste t-student para valores numéricos
Deve-se analisar vários atributos para ver se um padrão consistente aparece
Um segundo tratamento, uso correlações dicotomizadas para avaliar dados perdidos para
qualquer par de atributos
Limpeza dos Dados: Valores Perdidos (4/4)

Dados completamente perdidos ao acaso

Nesses casos, os valores observados de Y (e.g., “renda”) são verdadeiramente uma
amostra aleatória de todos os valores de Y, sem qualquer processo inerente que
conduza a tendências para os dados observados


No exemplo anterior, isso seria mostrado pelo fato de que dados perdidos para
renda familiar seriam perdidos ao acaso em iguais proporções tanto para o sexo
masculino quanto para o feminino
Se essa é a forma do processo de dados perdidos, quaisquer atitudes corretivas
podem ser aplicadas sem levar em consideração o impacto de qualquer outra
variável ou do processo de dados perdidos
Dados Completamente Perdidos ao Acaso (1/2)

Tratamento


Abordagem de caso completo
 Incluir na base de dados apenas aquelas instâncias com dados completos
 Mais apropriada a casos nos quais a quantidade de dados perdidos é
pequena, o conjunto de dados (amostra) é suficientemente grande para
permitir a exclusão das instâncias com dados perdidos
Desconsidere instância(s) e/ou atributo(s)





Determina-se a extensão dos dados perdidos em cada instância e atributo. Baseado
nisto, são excluídos as instâncias e/ou atributos com níveis excessivos
De fato, pode-se descobrir que os dados perdidos estão concentrados em um pequeno
subconjunto de instâncias e/ou atributos, sendo que sua exclusão reduz
substancialmente a extensão dos dados perdidos
Não existem orientações seguras sobre o nível necessário para a exclusão, mas
qualquer decisão deve ser baseada em considerações empíricas e teóricas
Se são descobertos valores perdidos no atributo que representa a “classe” (saída
desejada), também chamada de variável dependente, a referida instância é excluída
do conjunto de dados
Se um atributo é eliminado, é recomendável que existam atributos alternativos que
sejam altamente correlacionados com este, tal que possa representa sua influência
Dados Completamente Perdidos ao Acaso (2/2)

Tratamento

Método de atribuição
 Atribuição é o processo de estimação de valores perdidos com base em valores
válidos de outros atributos ou instâncias na base de dados
 Substituição pela média (ou moda): troca os valores perdidos de um dado
atributo pelo valor médio do atributo para todo o conjunto (ou para o valor
médio do atributo apenas para as instâncias na mesma classe)
 Atribuição por carta marcada: similar ao anterior, apenas o valor é definido
é definido por fontes externas
 Atribuição por regressão: análise de regressão é usada para prever os
valores perdidos de um atributo com base em sua relação com outros
atributos no conjunto de dados
 Atribuição múltipla: dois os mais métodos de atribuição são usados para
derivar uma estimativa composta para o valor perdido

Válido apenas para atributos com valores métricos
 Por exemplo, como substituir o valor perdido para um atributo nominal
como “sexo”?
Limpeza dos Dados: Formato de Data
Unificado


Todas as datas devem ser transformadas para o mesmo formato
interno
Alguns sistemas aceitam datas em vários formatos

“Sep 24, 2004”, 9/24/03, 24.09.2003, entre outros

Datas são transformadas internamente para um valor padrão

Representação de datas como AAAAMM ou AAAAMMDD
pode ser OK, mas tem problemas:

AAAAMMDD não preserva intervalos:
 20040201 - 20040131 /= 20040131 - 20040201
Opções de Formato de Data Unificado

A fim de se preservar intervalo, podemos usar

Sistema de data do Unix: número de segundos desde 1970

Número de dias desde 01/Jan/1960 (SAS)

Problemas
 Valores não são óbvios
 Não ajuda a intuição e descoberta de conhecimento
 Mais difícil de verificar, mas fácil de cometer um erro
Formato de Data KSP




dias_iniciando_Jan_1 - 0.5
Data KSP = AAAA + --------------------------------365 + 1_se_ano_bissexto
Preserva intervalo (quase)
O ano, como também suas subdivisões (semestres, trimestres, etc.)
são óbvios
 01/01/2005 é: 2005 + (1 - 0.5)/365
= 2005.0014
 31/03/2005 é: 2005 + (90 - 0.5)/365 = 2005.2452
 30/06/2005 é: 2005 + (181 - 0.5)/356 = 2005.4945
Pode ser estendida para incluir hora
Conversão: Nominal para Numérico


Algumas técnicas de AM manipulam internamente apenas com
valores nominais
Outras (redes neurais, regressão, k-NN) só trabalham com entradas
numéricas

Os valores de atributos nominais precisam ser transformados em
valores numéricos

Existem estratégias diferentes para atributos com valor binário,
ordinal e nominal multi-valorado
Conversão: Binário para Numérico

Atributos binários


Exemplo: Sexo = (M)asculino ,(F)eminino
Converta para o Atributo_0_1 com os valores 0,1

Sexo = M

Sexo_0_1 = 0

Sexo = F

Sexo_0_1 = 1
Conversão: Ordinal para Numérico

Atributos ordinais (e.g., grau_de_satisfação com um produto)
podem ser convertidos para números preservando a ordem natural





Muito Satisfeito
Satisfeito
Pouco Satisfeito
Insatisfeito




0.8
0.6
0.4
0.2
Por que é importante preservar a ordem natural?

Para permitir comparações que façam sentido:
grau_de_satisfação > 0.4
Conversão: Nominal - Poucos Valores

Atributos nominais multi-valorados um número pequeno de
possíveis valores (e.g., < 20)

Religião = Católica, Protestante, Budista, ..., Outras

Para cada valor v de Religião, crie um um atributo binário R_v,
que será 1 se Religião = v, 0 caso contrário:
I
D
.
.
.
R
e
l
i
g
i
ã
o
P
e
s
s
o
a
1
B
u
d
i
s
t
a
P
e
s
s
o
a
2
C
a
t
ó
l
i
c
o
I
D
R
_
C
a
t
ó
l
i
c
a
R
_
P
r
o
t
e
s
t
a
n
t
e
R
_
B
u
d
i
s
t
a
.
.
.
P
e
s
s
o
a
1
00
1
P
e
s
s
o
a
2
10
0
Conversão: Nominal - Muitos Valores



Exemplos
 Código Postal (CEP) de uma cidade
 Profissão (7000 valores, apenas algumas são mais freqüentes)
Ignore atributos cujos valores são únicos para cada instância: RG,
CPF, matrícula SIAPE, ...
Para outros atributos, agrupe valores “naturalmente”



150 bairros (CEP) de Recife  3 ou 5 regiões
Profissões - selecione a mais freqüentes, agrupe o resto
Crie atributos binários para os valores selecionados
Limpeza dos Dados: Discretização

Alguns algoritmos de AM manipulam apenas com atributos com
valores nominais



Algumas implementações do Naive, CHAID, ...
Para usá-los com bases de dados gerais, os atributos numéricos
têm que ser, primeiro, “discretizados” em um pequeno número
de intervalos distintos
Além disso, embora a maioria dos algoritmos de indução de árvore
de decisão ou regras possam lidar com atributos com valores
numéricos, algumas implementações tornam-se muito lentas quando
este tipo de atributo está presente
 No processo de indução, os valores desses atributos são
repetidamente ordenados
Discretização: Intervalos com Largura Fixa
Temperatura:
64 65 68 69 70 71 72 72 75 75 80 81 83 85
Contador
2
2
4
2
0
2
2
[64,67) [67,70) [70,73) [73,76) [76,79) [79,82) [82,85]
Low <= valor < High = Caixa Largura Fixa
Discretização: Intervalos com Largura Fixa


Não leva em consideração as classes no conjunto de dados discretização não-supervisionada
Pode destruir distinções que poderiam ser útil para o algoritmo de
aprendizado

Tamanho do intervalo muito pequeno ou grande que termina por
colocar, para o atributo, muitas instâncias de classes diferentes
juntas
Discretização: Entropia



Mesmo critério usado para a divisão de um atributo numérico em
árvores de decisão
 Ganho de Informação (Intervalo) = Entropia-Atual - EntropiaDepois-Divisao-do-Intervalo
 A cada passo, escolha o Intervalo para o qual o Ganho de
Informação é máximo
Leva em consideração as classes no conjunto de dados discretização supervisionada
Exemplo - Temperatura

64 65 68 69 70 71 72 75 80 81 83 85

Y N Y Y Y N N Y N Y Y N
66.5
70.5 73.5 77.5 80.5
84
Limpeza dos Dados: Observações Atípicas
(Outliers)


Uma instância com uma combinação única de valores de atributos
identificáveis como sendo notadamente diferente das outras
instâncias
As instâncias atípicas não podem ser categoricamente caracterizadas
como benéficas ou problemáticas
 Devem ser vistas no contexto da análise e avaliadas pelos tipos
de informação que possam fornecer
 Benéficas: podem ser indicativas de características da população
que não seriam descobertas no curso normal da análise
 Problemáticas: não são representativas da população, são
contrárias aos objetivos da análise e podem confundir os
algoritmos de aprendizado
Por que ocorrem observações atípicas?




Erro na entrada de dados ou codificação
 Essas observações devem ser eliminadas da amostra - ou os
valores atípicos devem ser considerados como dados perdidos
Resultado de um evento extraordinário, o que explica a
peculiaridade da observação
 Deve-se decidir se essa observação deve fazer parte da amostra
(conjunto de dados)
Resultado de em evento extraordinário, mas que não há explicação
 Em geral, são descartadas da amostra
Observações que estão no intervalo usual de valores para cada
atributo, mas são únicas em suas combinações de valores entre
atributos
 Em geral, são mantidas na amostra
Identificação de observações atípicas



Detecção univariada
 Padronizar os valores dos atributos: média de 0 e desvio-padrão de 1
 Considerar como observações atípicas aquelas instâncias que possuam
valores de atributos com escore padrão 2.5 (4.0 para amostras como mais de
80 instâncias) ou mais
Detecção bivariada
 Pares de atributos podem ser analisados conjuntamente por meio de um
diagrama de dispersão (gráficos bidimensionais)
 Instâncias que notoriamente estão fora do intervalo das outras observações
podem ser percebidos como pontos isolados no diagrama de dispersão
Detecção multivariada
 A posição multidimensional de cada instância é medida em relação a um
ponto comum
 A medida D2 de Mahalanobis pode ser usada para esse propósito
 Ela é uma medida da distância, em um espaço multidimensional, de cada
instância em relação ao centro médio das instâncias
 Testes estatísticos de signifîcância
Limpeza dos Dados: Falsos Preditores


São atributos correlacionados ao comportamento objetivo, que
descrevem eventos que ocorrem ao mesmo tempo ou após o
comportamento objetivo
Se bancos de dados não possuem as datas do eventos, um falso
preditor aparecerá como um bom preditor

Data do cancelamento de um serviço é um falso preditor para
prever desentendimentos

A média final de um estudante para prever se o mesmo foi
aprovado no curso
Falsos Preditores: encontrando “suspeitos”

Para cada atributo





Construa uma árvore de decisão com apenas este atributo
Ou, no caso de regressão, compute a correlação com o atributo
que representa a saída desejada
Ordene todos os atributos de acordo com a acurácia da respectiva
árvore (ou correlação)
Remova todos os atributos cuja acurácia é próxima a 100% (este
limiar é dependente do domínio)
Verifique os “suspeitos” usando conhecimento do domínio ou com
um especialista
Limpeza dos Dados: Transformações de Dados (1/4)

Um atributo pode ter uma característica indesejável, como não
normalidade


Por exemplo, muitos implementações do Naive assumem que a
ocorrência dos valores de atributos numéricos obedecem a uma
distribuição normal
Atributos medidos em escalas com grau de magnitude muito
diferente apresentam características indesejáveis:


Quando medidas de distâncias são usadas (k-NN, métodos de
agrupamento)
Para o ajuste dos pesos de uma rede neural
Limpeza dos Dados: Transformações de Dados (2/4)

Transformações para atingir normalidade (para um atributo X)
 Distribuições “achatadas”
1/X

Distribuições negativas
SQRT(X)

Distribuições positivas
Log X
Limpeza dos Dados: Transformações de Dados (3/4)

Transformações para conseguir linearidade (par de atributos X e Y)
Y
Y2
Y
Log Y; -1/Y; SQRT(Y)
Log X; -1/X; SQRT(X)
X2
X
Y
Log Y; -1/Y; SQRT(Y)
X
Y
Y2
Log X; -1/X; SQRT(X)
X2
X
X
Limpeza dos Dados: Transformações de Dados (4/4)

Transformação por causa de unidades diferentes ou dispersões
muito heterogêneas

Escalonamento para [0,1] dos valores de um atributo X


Valor-Escalonado = (x - min_X)/(max_X - min_X)
Padronização dos valores de um atributo X (média de zero e
desvio padrão de 1)

Escore-Padrão = (x - média_X)/desvio_padrão_X
Bibliografia


Witten, I. H. and Frank, E. (1999). Data Mining:
practical machine learning tools and techniques
with Java implementations. Chapter 7 - Moving
on: Engineering the input and output?, pp. 229264. Morgan Kaufmann.
Hair-Jr., J. F. (2005). Análise Multivariada de
Dados. Capítulo 2 - Examine seus dados, pp. 4988. Bookman.
Download

Pré-processamento