Title: Prepara
1Preparação dos Dados
- Marcilio Souto
- DIMAp/UFRN
2Preparaçã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
3Processo de Descoberta de Conhecimento
Estima-se que a Preparação dos Dados consume
70-80 do tempo e esforço
4Entendimento 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?
5Entendimento 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
6Limpeza 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
7Limpeza 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
8Limpeza dos Dados Exemplo
- Dados originais (formato largura fixa)
- Dados limpos
000000000130.06.19971979-10-3080145722
000310 111000301.01.000100000000004
0000000000000.000000000000000.00000000000
0000.000000000000000.000000000000000.0000000000000
00.000000000000000. 000000000000000.00000000000000
0.0000000... 000000000000000.000000000000000.0000
00000000000.000000000000000.000000000000000.000000
000000000.000000000000000.000000000000000.00000000
0000000.000000000000000.000000000000000.0000000000
00000.000000000000000.000000000000000.000000000000
000.000000000000000.000000000000000.00000000000000
0.000000000000000.000000000000000.000000000000000.
000000000000000.00 0000000000300.00
0000000000300.00
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
9Limpeza 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
10Limpeza 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 gt e lt para esses atributos
11Limpeza 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
12Limpeza 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
13Limpeza 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
14Limpeza 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
15Dados 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
16Dados 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?
17Limpeza 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
18Opçõ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
19Formato 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
20Conversã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
21Conversã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
22Conversã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 ? 0.8
- Satisfeito ? 0.6
- Pouco Satisfeito ? 0.4
- Insatisfeito ? 0.2
- Por que é importante preservar a ordem natural?
- Para permitir comparações que façam sentido
grau_de_satisfação gt 0.4
23Conversão Nominal - Poucos Valores
- Atributos nominais multi-valorados um número
pequeno de possíveis valores (e.g., lt 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
24Conversã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
25Limpeza 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
26(No Transcript)
27Discretizaçã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
28Discretizaçã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
- Entropia-Depois-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
29Limpeza 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
30Por 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
31Identificaçã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
32Limpeza 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
33Falsos 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
34Limpeza 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
35(No Transcript)
36(No Transcript)
37Limpeza 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
38Bibliografia
- 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. 229-264.
Morgan Kaufmann. - Hair-Jr., J. F. (2005). Análise Multivariada de
Dados. Capítulo 2 - Examine seus dados, pp.
49-88. Bookman.