Preparao dos Dados Marcilio Souto DIMApUFRN Preparao dos

  • Slides: 38
Download presentation
Preparação dos Dados Marcilio Souto DIMAp/UFRN

Preparação dos Dados Marcilio Souto DIMAp/UFRN

Preparação dos Dados ● ● Compreensão dos dados Limpeza – – – ● ●

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

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

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

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 ●

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,

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) 00000130. 06. 19971979 -10

Limpeza dos Dados: Exemplo ● Dados originais (formato largura fixa) 00000130. 06. 19971979 -10 -3080145722 #000310 111000301. 0001000004 000000000000000. 0000000. . . … 000000000000000. 00000000000000000000000. 0000000000300. 00 ● Dados limpos 000001, 199706, 1979. 833, 8014, 5722 , , #000310 …. , 111, 03, 000101, 0, 04, 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, 0300. 00

Limpeza dos Dados: Metadados ● ● ● Tipos de atributos – Nominal, ordinal, numérico

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.

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

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 –

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 – – –

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

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

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

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 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

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

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

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

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 ,

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)

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 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

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:

Conversão: Nominal - Muitos Valores ● ● ● Exemplos – Código Postal (CEP) de

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

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

Discretização: Intervalos com Largura Fixa

Discretização: Intervalos com Largura Fixa ● ● Não leva em consideração as classes no

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

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 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

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

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

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 D 2 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

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

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

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

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

Limpeza dos Dados: Transformações de Dados (3/4) ● Transformações para conseguir linearidade (par de atributos X e Y) Y Log Y; -1/Y; SQRT(Y) Log X; -1/X; SQRT(X) X Y Log Y; -1/Y; SQRT(Y) X 2 Y Y 2 Log X; -1/X; SQRT(X) X X

Limpeza dos Dados: Transformações de Dados (4/4) ● Transformação por causa de unidades diferentes

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

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. 229 -264. Morgan Kaufmann. Hair-Jr. , J. F. (2005). Análise Multivariada de Dados. Capítulo 2 - Examine seus dados, pp. 4988. Bookman.