Preparação dos Dados -...
Transcript of Preparação dos Dados -...
1
Preparação dos Dados
2
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
3
Processo de Descoberta de Conhecimento
Estima-se que a Preparação dos Dados consume 70-80% do tempo e esforço
4
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?
5
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
6
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
7
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
8
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
9
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
10
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
11
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
12
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
13
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
14
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
15
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”?
16
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
17
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
18
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
19
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
20
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
21
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 ⇒ 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 > 0.4
22
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:
23
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
24
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
25
Discretização: Intervalos com Largura Fixa
Low <= valor < High = Caixa Largura Fixa
[64,67) [67,70) [70,73) [73,76) [76,79) [79,82) [82,85]
Temperatura: 64 65 68 69 70 71 72 72 75 75 80 81 83 85
2 2
Contador
4 2 2 2 0
26
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
27
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 - 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
28
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
29
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
30
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
31
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
32
Limpeza dos Dados: Transformações de Dados (2/4) Transformações para atingir normalidade (para um atributo X)
Distribuições “achatadas”
Distribuições negativas
Distribuições positivas
1/X
SQRT(X)
Log X
33
Limpeza dos Dados: Transformações de Dados (3/4) Transformações para conseguir linearidade (par de atributos X e
Y)
Y
X
Y2
X2
Y
X
Log Y; -1/Y; SQRT(Y)
Y
X X2
Y
X
Y2
Log X; -1/X; SQRT(X)
Log Y; -1/Y; SQRT(Y)
Log X; -1/X; SQRT(X)
34
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
35
PCA - Todas as Componentes
D_PCA = A'*D' 0,7071 0,7071 0,88 -1,67 ... -0,99
-0,7071 0,7071 0,58 -1,43 ... -1,19 *
36
PCA - Apenas 1a. PC
0,7071 0,7071 0,88 -1,67 ... -0,99
0,58 -1,43 ... -1,19 *
37
Análise de Componentes Principais
Principais Limitações
Assume apenas relações lineares entre os atributos
A interpretação dos resultados (e.g., classificador gerado) em termos dos atributos originais pode ficar mais difícil
38
Bibliografia
Witten, I. H. and Frank, E. (2005). Data Mining: practical machine learning tools and techniques with Java implementations. Chapter 7 - Transformations: Engineering the input and output. pp. 288-343. Morgan Kaufmann.
Hair-Jr., J. F. et al (2005). Análise multivariada de dados. Capítulo 3 - Introdução. pp. 23-45. Bookman.
Smith, L. I. (2002). A tutorial on principal component analysis.