Pré-Processamento de Dados · Li d D dLimpeza de Dados aPreocupação das empresas...

Post on 03-Nov-2018

217 views 0 download

Transcript of Pré-Processamento de Dados · Li d D dLimpeza de Dados aPreocupação das empresas...

Sistemas Inteligentes Aplicadosg p

Pré-Processamento de Pré Processamento de Dados

P d CPrograma do Curso

Limpeza/Integração de Dados

Transformação de DadosDiscretização de Variáveis ContínuasDiscretização de Variáveis ContínuasTransformação de Variáveis Discretas em ContínuasTransformação de Variáveis ContínuasTransformação de Variáveis Contínuas

Análise e Seleção de Variáveis (Redução deAnálise e Seleção de Variáveis (Redução de Dados)

Li d D dLimpeza de Dados

Preocupação das empresasG andes ol mes de dados estocados semGrandes volumes de dados estocados, semutilidade até recentemente.

Mudança de FilosofiaçAnálise de dados voltada à verificação (DataVerification))Análise de dados voltada à descoberta(Data Mining)( g)

Li d D dLimpeza de Dados

Dados reais são “sujos”:Incompletos: falta de valores de atributos, falta deIncompletos: falta de valores de atributos, falta de

atributos de interesse ou existência de atributos agregados;Ruidosos: contêm erros e desvios;Ruidosos: contêm erros e desvios;Inconsistentes: contêm discrepâncias em nomes e

na codificação.

Diversas causas:E d di it ãErros de digitaçãoErros de leitura por sensoresOutros errosOutros erros

Li d D dLimpeza de Dados

Dados de baixa qualidade resultam em resultados de baixa qualidade em DM:q

Decisões de qualidade devem estar baseadas em dados de qualidadeDM/DW necessita da integração consistente de dados deDM/DW necessita da integração consistente de dados de qualidade.

Limpeza dos dados:Preenchimento de valores inexistentes, atenuação de dados ruidosos, identificação e remoção de desvios, resolução deruidosos, identificação e remoção de desvios, resolução de inconsistências, etcPode corresponder a 60 % do esforço

I t ã d D dIntegração de Dados

Várias aplicações consistem em diversas bases de dados complementaresde dados complementares

Tais bases tipicamente devem ser integradas em uma base de dados consolidada

Surgem então uma nova série de problemasSurgem então uma nova série de problemas também relacionados à limpeza de dados

Problemas de Qualidade dos Dados

Em bases de dados:Em ma tabela isoladaEm uma tabela isolada⌧Em nível de atributo / campo⌧Em nível de registro / tupla⌧Em nível de registro / tupla⌧Em nível de tabela / arquivoEm múltiplas tabelas bases de dados ouEm múltiplas tabelas, bases de dados ou arquivos

Em dados / séries numéricas

Problemas – Tabela Isolada / Atributo

Valor faltante (pa1): falta de preenchimento de atributos obrigatórios

Valor ilegal (pa2): fora do domínio válido (atributos numéricos)numéricos).

Ex: idade = 233

l ( ) l d b ã dValor incorreto (pa3): valor do atributo não corresponde ao valor real.

Ex: idade = 25, mas a pessoa tem 27 anos, p

Problemas – Tabela Isolada / Atributo

Erro ortográfico (pa4): associada a atributos textuaisEx: cidade = ‘Rio de Jneiro’

Informação em excesso (pa5): múltiplas informações úagregadas em um único atributo textual.

Ex: endereço = ‘Rua da Couve, 35, 22340-150, Rio de Janeiro’

Valor indefinido ou desconhecido (pa6): resultante da utilização de abreviaturas e/ou siglas. ç / g

Ex: empresa = ‘CS’

Problemas – Tabela Isolada / Atributo

Uso de sinônimos (pa7): registros com termos sintaticamente diferentes, mas semanticamente iguais

Ex: profissao = ‘professor’ x profissao = ‘docente’

Representação sem Padronização (pa8): valor doRepresentação sem Padronização (pa8): valor do atributo armazenado sob diversos formatos diferentes

Ex: data = 03/06/2006 x data = 2006/06/03

Problemas – Tabela Isolada / Registro

Violação da dependência entre atributos (pr1): inconsistências entre valores de atributos relacionados

t ientre siEx: idade = 30 / nascimento = ’16/06/1981’

Inversão de valores entre atributos (pr2)Ex: nome = ‘Rua ...’ / endereco = ‘José Silva’

Registro incompleto ou vazio (pr3): maioria dos atributos do registro não preenchidos

Problemas – Tabela Isolada / Tabela

Valor não único (pt1): dois registros distintos com valores iguais em atributo de valor único

Ex: registro A: ID = 12234registro B: ID = 12234

Redundância (pt2): mesma entidade aparece representada em múltiplos registros, sob formas iguais ou diferentesou diferentes

Ex: registro A: nome = ‘Carlos Roberto’ registro B: nome = ‘C. Roberto’

Inconsistência (pt3): conflitos nos valores de entidades representadas em mais de um registrorepresentadas em mais de um registro

Ex: registro A: nasc = ’03/02/1970’registro B: nasc = ’05/07/1970’

Problemas – Tabelas Múltiplas

Referência inexistente (pm1): violação à integridade referencial, no caso de bases relacionais

é ãEx: nome = ‘Carlos José’ / ID_depto = 7, mas não existe a chave 7 na tabela de Departamentos

Referência incorreta (pm2): não viola a integridade referencial, mas a referência não está correta

Ex: nome = ‘Carlos José’ / ID depto = 7 mas pertence naEx: nome = Carlos José / ID_depto = 7, mas pertence na verdade ao Departamento cujo ID_depto = 9

Redundância (pm3): mesma entidade representada sobRedundância (pm3): mesma entidade representada sob formas iguais ou diferentes em tabelas distintas

Ex: tabela Funcionários: nome = ‘José Alves’t b l D C i l ‘J Al ’tabela DepComercial: nome = ‘J. Alves’

Problemas – Tabelas Múltiplas

Inconsistência (pm4): conflitos nos valores dos atributos de uma entidade representada em mais de uma tabela

áEx: tabela Funcionários: nasc = ’03/08/1970’tabela DepComercial: nasc = ’05/12/1970’

Representação sem Padronização (pm5): não viola a integ idade efe encial mas a efe ência não estáintegridade referencial, mas a referência não está correta

Ex: tabela X: data = ’03/08/1970’tabela Y: data = ’1970/08/03’

Problemas – Tabelas Múltiplas

Unidades sem Padronização (pm6): valor do atributo com unidades diferentes em tabelas distintas

Ex: tabela X: valor = 123 (euros)tabela Y: valor = 123 (dólares)

Uso de sinônimos (pm7): registros com termos sintaticamente diferentes mas semanticamente iguaissintaticamente diferentes, mas semanticamente iguais em tabelas distintas

Ex: tabela X: profissao = ‘professor’tabela Y: profissao = ‘docente’tabela Y: profissao = docente

Problemas – Dados Numéricos

Dados faltantes (pn1): valores não medidos ou não disponíveis em uma série

Dados ilegais (pn2): valores fora da faixa de medição do sensor/transdutorsensor/transdutor

Outliers (pn3): valores muito acima/abaixo do valor édi d é imédio da série

Dados incorretos: Ruído (pn4): sinais espúriosDados incorretos: Ruído (pn4): sinais espúrios normalmente adicionados ao sinal de interesse

Branco GaussianoS klSpeckleoutros

Técnicas de Limpeza

Tipos Distintos de DadosLimpeza em Bases de DadosLimpeza em Dados Numéricosp

Ti Di ti t d LiTipos Distintos de LimpezaAbordagens EspecializadasAbordagens Genéricas

Limpeza em Bases de Dados

Abordagens EspecializadasáDependem da área de aplicação

Dependem dos atributos específicosp pGeralmente dependem de conhecimento de especialistaespecialistaPrincipais casos:⌧Correção de Nomes e Endereços⌧Correção de Nomes e Endereços⌧Detecção de Duplicados

Limpeza em Bases de Dados

Correção de Nomes e EndereçosMuito importante no domínio de CRMMuito importante no domínio de CRMExistem várias ferramentas comerciais (ex. IDCentric, PureIntegrate QuickAddress Reunion TrilliumPureIntegrate, QuickAddress, Reunion, Trillium, Vality)Etapas:Etapas:⌧Extração e transformação dos elementos de um endereço⌧Validação dos nomes próprios, sobrenomes, nomes de ruas,

localidades, CEPs, com base em bibliotecas de regraspreviamente definidas

⌧Representação em um formato pré-definido⌧Representação em um formato pré definido

Limpeza em Bases de Dados

Detecção de DuplicadosTambém existem várias ferramentas comerciais (exTambém existem várias ferramentas comerciais (ex. DataCleanser, MatchIt, MasterMerge)Algoritmos para determinar se dois ou mais registrosAlgoritmos para determinar se dois ou mais registrossão representações da mesma entidadeNormalmente precisa-se comparar cada registro comNormalmente precisa se comparar cada registro com todos os outros (produto cartesiano)Alternativa: Método da Vizinhança OrdenadaAlternativa: Método da Vizinhança Ordenada⌧Ordenação de uma Chave construída a partir dos atributos⌧Registros duplicados ficarão próximos entre si⌧Compara-se os registros no interior de uma janela

deslizante de tamanho fixo

Limpeza em Bases de Dados

Abordagens GenéricasSistematizam a limpeza de dados, adaptando-se a diferentes domínios e a uma variedade de tipos de atributosDiferentes graus de automaçãog çFerramentas comerciais/acadêmicas disponíveis (Ex: AJAX, Arktos, IntelliClean,disponíveis (Ex: AJAX, Arktos, IntelliClean, Potter’s Wheel, FraQL)

Limpeza em Bases de Dados

Considerações PráticasDetecção x CorreçãoAutomática x ManualAutomação⌧Intrínseca⌧Intrínseca ⌧Por Extensão

Limpeza em Bases de Dados

Considerações Práticasá íDetecção Automática Intrínseca (DAI)

Detecção Automática por Extensão (DAE)ç p ( )Correção Manual (CM)Correção Automática Intrínseca (CAI)Correção Automática Intrínseca (CAI)Correção Automática por Extensão (CAE)

Limpeza em Bases de Dados

Casos TípicosValor faltante (pa1): DAI CM CAI CAEValor faltante (pa1): DAI, CM, CAI, CAEValor ilegal (pa2): DAI, DAE, CM, CAEValor incorreto (pa3): nenhumValor incorreto (pa3): nenhumErro ortográfico (pa4): DAI, DAE, CAI, CAEInformação em excesso (pa5): DAI DAE CAI CAEInformação em excesso (pa5): DAI, DAE, CAI, CAEValor indefinido ou desconhecido (pa6): DAI, DAE, CAI, CAEUso de sinônimos (pa7): DAI DAE CAI CAEUso de sinônimos (pa7): DAI, DAE, CAI, CAERepresentação sem Padronização (pa8): DAI, DAE, CAI, CAE

Limpeza em Bases de Dados

Casos TípicosViolação da dependência entre atributos (pr1): DAE CAEViolação da dependência entre atributos (pr1): DAE, CAEInversão de valores entre atributos (pr2): nenhumR i t i l t i ( 3) hRegistro incompleto ou vazio (pr3): nenhum

V l ã ú i ( t1) DAI CMValor não único (pt1): DAI, CMRedundância (pt2): DAI, DAE, CAI, CAE

ê ( 3) C CInconsistência (pt3): DAI, DAE, CAI, CAE

Limpeza em Bases de Dados

Casos TípicosReferência inexistente (pm1): DAI CMReferência inexistente (pm1): DAI, CMReferência incorreta (pm2): nenhumR d dâ i ( 3) DAI DAE CAI CAERedundância (pm3): DAI, DAE, CAI, CAEInconsistência (pm4): DAI, DAE, CAI, CAER t ã P d i ã ( 5) DAI DAE CAI CAERepresentação sem Padronização (pm5): DAI, DAE, CAI, CAEUnidades sem Padronização (pm6): nenhumU d i ô i ( 7) DAE CAEUso de sinônimos (pm7): DAE, CAE

Limpeza em Dados Numéricos

Dados faltantes (pn1): DAI, CAI, CAEéTécnicas de Correção:⌧Ignorar o registro⌧Preencher o valor manualmente⌧Usar uma constante global⌧Usar o valor médio do atributo na base⌧Usar o valor médio entre as instâncias mais próximas⌧Usar o valor médio do atributo na classe⌧Usar o valor mais provável

Limpeza em Dados Numéricos

Dados ilegais (pn2): DAI, DAE, CM, CAIáDetecção Automática: comparação direta com a

faixa válidaTécnicas de Correção:⌧Ignorar o registrog g⌧Corrigir o valor manualmente⌧Usar o limite superior/inferior da faixa válidap⌧Usar uma constante global⌧Usar o valor médio entre os instantes mais próximosp

Limpeza em Dados Numéricos

Outliers (pn3):O que é um Outlier?? Diferentes definições:O que é um Outlier?? Diferentes definições:⌧"An observation with an abnormally large residual"

[Anscombe(1960) pág. 125] ⌧“... is one that appears to deviate markedly from other members of⌧ ... is one that appears to deviate markedly from other members of

the sample in which it occurs." [Grubbs(1969) pág. 1] ⌧"Observations that, in the opinion of the investigator, stand apart

from the bulk of the data." [Beckman e Cook(1983) pág.120] ⌧“Observations that do not follow the pattern of the majority of the

data." [Rousseuw e Zomeren(1990) pág. 633] ⌧“Observation which being atypical and/or erroneous deviates

d d dl f h l b h f l d hdecidedly from the general behaviour of experimental data with respect to the criteria which is to be analysed on it." [Muñoz-Garcia et al.(1990) pág. 217]

⌧“An obervation which appears to be inconsistent with the remainder⌧ An obervation which appears to be inconsistent with the remainder of that set of data." [Barnett e Lewis(1994) pág. 7]

Limpeza em Dados Numéricos

Outliers (pn3):Outras denominações: "wild", "straggler", "sport“, "maverick“, "discordant", "anomalous“, "aberrant", "rogue value", "contaminant", "surprising values", "dirty data"

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de Detecçãoé áTécnicas Gráficas⌧Scatter Plots⌧Box Plots

Técnica Analítica⌧Teste de Grubb

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de DetecçãoScatter Plots

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de DetecçãoBox Plots: indicam localização e variaçãoBox Plots: indicam localização e variaçãoEx: 30, 171, 184, 201, 212, 250, 265, 270, 272, 289, 305, 306 322 322 336 346 351 370 390 404 409 411306, 322, 322, 336, 346, 351, 370, 390, 404, 409, 411, 436, 437, 439, 441, 444, 448, 451, 453, 470, 480, 482, 487, 494, 495, 499, 503, 514, 521, 522, 527, 548, 550, , , , , , , , , , , ,559, 560, 570, 572, 574, 578, 585, 592, 592, 607, 616, 618, 621, 629, 637, 638, 640, 656, 668, 707, 709, 719, 3 39 2 8 66 92 92 9 802 8 8 830737, 739, 752, 758, 766, 792, 792, 794, 802, 818, 830,

832, 843, 858, 860, 869, 918, 925, 953, 991, 1000, 1005, 1068 14411068, 1441

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de DetecçãoBox Plots: indicam localização e variaçãoBox Plots: indicam localização e variação⌧Média: 576,08⌧Mediana: 559 50⌧Mediana: 559,50⌧Mínimo: 30, Máximo: 1441⌧Percentil 25% (Q1): 436⌧Percentil 75% (Q2): 739⌧Interquartil (IQ): 739 – 436 = 303⌧L1 Q1 1 5 IQ 18 5⌧L1 = Q1 – 1,5 x IQ = -18,5⌧L2 = Q1 – 3,0 x IQ = -473⌧U1 = Q2 + 1 5 x IQ = 1193 50⌧U1 Q2 + 1,5 x IQ 1193,50⌧U2 = Q2 + 3,0 x IQ = 1648,00

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de DetecçãoBox Plots: indicam localização e variaçãoBox Plots: indicam localização e variaçãoEx: 30, 171, 184, 201, 212, 250, 265, 270, 272, 289, 305, 306 322 322 336 346 351 370 390 404 409 411306, 322, 322, 336, 346, 351, 370, 390, 404, 409, 411, 436, 437, 439, 441, 444, 448, 451, 453, 470, 480, 482, 487, 494, 495, 499, 503, 514, 521, 522, 527, 548, 550, , , , , , , , , , , ,559, 560, 570, 572, 574, 578, 585, 592, 592, 607, 616, 618, 621, 629, 637, 638, 640, 656, 668, 707, 709, 719, 3 39 2 8 66 92 92 9 802 8 8 830737, 739, 752, 758, 766, 792, 792, 794, 802, 818, 830,

832, 843, 858, 860, 869, 918, 925, 953, 991, 1000, 1005, 1068 14411068, 1441

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de DetecçãoBox Plots: indicam localização e variaçãoBox Plots: indicam localização e variação⌧Média: 576,08⌧Mediana: 559 50⌧Mediana: 559,50⌧Mínimo: 30, Máximo: 1441⌧Percentil 25% (Q1): 436Valor < L1 ou Valor > U1: Outlier leve⌧Percentil 75% (Q2): 739⌧Interquartil (IQ): 739 – 436 = 303⌧L1 Q1 1 5 IQ 18 5

Valor < L1 ou Valor > U1: Outlier leveValor < L2 ou Valor > U2: Outlier extremo

⌧L1 = Q1 – 1,5 x IQ = -18,5⌧L2 = Q1 – 3,0 x IQ = -473⌧U1 = Q2 + 1 5 x IQ = 1193 50⌧U1 Q2 + 1,5 x IQ 1193,50⌧U2 = Q2 + 3,0 x IQ = 1648,00

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de DetecçãoBox Plots: indicam localização e variaçãoBox Plots: indicam localização e variação⌧Média: 576,08⌧Mediana: 559 50⌧Mediana: 559,50⌧Mínimo: 30, Máximo: 1441⌧Percentil 25% (Q1): 436Valor < L1 ou Valor > U1: Outlier leve⌧Percentil 75% (Q2): 739⌧Interquartil (IQ): 739 – 436 = 303⌧L1 Q1 1 5 IQ 18 5

Valor < L1 ou Valor > U1: Outlier leveValor < L2 ou Valor > U2: Outlier extremo

⌧L1 = Q1 – 1,5 x IQ = -18,5⌧L2 = Q1 – 3,0 x IQ = -473⌧U1 = Q2 + 1 5 x IQ = 1193 50

1441 > L1: Outlier leve⌧U1 Q2 + 1,5 x IQ 1193,50⌧U2 = Q2 + 3,0 x IQ = 1648,00

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de DetecçãoBox Plots: indicam localização e variaçãoBox Plots: indicam localização e variaçãoEx: 30, 171, 184, 201, 212, 250, 265, 270, 272, 289, 305, 306 322 322 336 346 351 370 390 404 409 411306, 322, 322, 336, 346, 351, 370, 390, 404, 409, 411, 436, 437, 439, 441, 444, 448, 451, 453, 470, 480, 482, 487, 494, 495, 499, 503, 514, 521, 522, 527, 548, 550, , , , , , , , , , , ,559, 560, 570, 572, 574, 578, 585, 592, 592, 607, 616, 618, 621, 629, 637, 638, 640, 656, 668, 707, 709, 719, 3 39 2 8 66 92 92 9 802 8 8 830737, 739, 752, 758, 766, 792, 792, 794, 802, 818, 830,

832, 843, 858, 860, 869, 918, 925, 953, 991, 1000, 1005, 1068 14411068, 1441

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de DetecçãoBox Plots: indicam localização e variação⌧Média: 576,08⌧Outlier: 1441⌧Novo Máximo: 1068⌧Percentil 75%: 739⌧Mediana: 559,50⌧Percentil 25%: 436⌧Mínimo: 30

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de DetecçãoBox Plots: indicam localização e variação⌧Média: 576,08⌧Outlier: 1441⌧Novo Máximo: 1068⌧Percentil 75%: 739⌧Mediana: 559,50⌧Percentil 25%: 436⌧Mínimo: 30

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de Detecçãoú éBox Plots: múltiplas séries

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de Detecçãoú éBox Plots: múltiplas séries

Mediana Quartis (25%, 75%)

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de Detecçãoú éBox Plots: múltiplas séries

Mediana Valores extremos (max/min)

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de Detecçãoú éBox Plots: múltiplas séries

outliers

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de DetecçãoTeste de Grubb⌧Assume que os dados têm distribuição normal⌧Detecta um outlier de cada vez⌧Não deve ser usado para amostragens com menos de 6

valores⌧É um Teste de Hipótese

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de DetecçãoTeste de Grubb⌧H0: Não há outliers⌧H1: Há pelo menos um outlier⌧Estatística de teste (bi-caudal):

xxG i −

=max

⌧xi: valor máximo ou mínimo

σ

i

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de DetecçãoTeste de Grubb⌧H0: Não há outliers⌧H1: Há pelo menos um outlier⌧Estatísticas de teste (mono-caudais):

minxxG −=

xxG −= max

σ σ

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de Detecçãoí íTeste de Grubb: Valor crítico bi-caudal (nível de

significância α – ex: 5%)

( ) ( )2

2,2/1 −−> NNtNG α

( )2

2,2/2 −+−>

NNtNNG

α

( )2,2/ −NNt α : Valor crítico da distribuição de Student (t) com (N-2)/2 graus de liberdade e significância α/2N( ) g g

Limpeza em Dados Numéricos

Outliers (pn3): Técnicas de Detecçãoí íTeste de Grubb: Valor crítico mono-caudal (nível

de significância α – ex: 5%)

( ) ( )2

2,/1 −−> NNtNG α

( )2

2,/2 −+−>

NNtNNG

α

( )2,/ −NNt α : Valor crítico da distribuição de Student (t) com (N-2)/2 graus de liberdade e significância α/N( ) g g

Limpeza em Dados Numéricos

Outliers (pn3):éTécnicas de Correção:⌧Ignorar o registro⌧Corrigir o valor manualmente⌧Usar uma constante global⌧Usar o valor médio do atributo na base⌧Usar o valor médio entre os instantes mais próximos⌧Usar o valor médio do atributo na classe⌧Usar o valor mais provável

Limpeza em Dados Numéricos

Dados incorretos: Ruído (pn4):Filtragem Digital⌧Filtros de Média Móvel⌧Filtro de Wiener⌧Filtro de Kalman

Fora do escopo deste curso!Fora do escopo deste curso!

Referências

Artigo “Limpeza de Dados - Uma Visão Geral”, Paulo Jorge Oliveira, Fátima Rodrigues, Pedro Rangel Henriques (http://wiki di uminho pt/wiki/pub/Doutoramentos/SDDI2004/ArtigoOliveira(http://wiki.di.uminho.pt/wiki/pub/Doutoramentos/SDDI2004/ArtigoOliveira.pdf)

Livro “Data Mining: Practical Machine Learning Tools and Techniques –second edition”, Ian H. Witten & Eibe Frank, Elsevier

Website http://www.ipv.pt/millenium/arq12.htm

Website http://www itl nist gov/div898/handbook/prc/section1/prc16 htmWebsite http://www.itl.nist.gov/div898/handbook/prc/section1/prc16.htm