Preparação e limpeza de dados: etapas e boas práticas
1. PREPARAÇÃO E LIMPEZA DE DADOS
Alexandre Duarte - http://alexandre.ci.ufpb.br/ensino/iad
2. Dados desorganizados vão cruzar o seu caminho, seja
você um analista de dados super bem pago com um
bilhão de registros ou uma startup com uma única
pessoa e uma lista com 90 contatos.
4. PREPARAÇÃO
• É comum que os dados coletados não estejam inicialmente
prontos para uso
• Há um conjunto comum de tarefas de preparação que precisam
ser executadas, principalmente com dados coletados por terceiros
• Se você tiver sorte, conseguirá automatizar pelo menos parte
destas tarefas!
• A maioria dos analistas detestam esta parte do trabalho mas
alguém precisa limpar os dados
6. SEPARAÇÃO
• Separar os dados em campos que serão mais úteis
para sua análise
Dado que você precisa Dado disponível
C77000S GA3C77000S
W30000P GA1W30000P
D21250G DE1D21250G
7. SEPARAÇÃO
• Um exemplo um pouco mais complexo
Shopping Endereço Cidade Estado
Manaíra Shopping,Av. Flávio Ribeiro Coutinho,
805 Manaíra - João Pessoa - PB
Shopping Recife, R. PE. CARAPUCEIRO, 777,
BOAVIAGEM - RECIFE/PE
Shopping Midway,Av. BernardoVieira, 3775 -Tirol
Natal-RN
8. SEPARAÇÃO
Nome
Pedro Campos
José João
Maria Silva
Luiz Santos
Zeca Oliveira
Marlene Maria
Nome Sobrenome
Pedro Campos
José João
Silva Maria
Luiz Santos
Zeca Oliveira
Marlene Maria
9. SEPARAÇÃO
Iniciais no meio Alexandre N. Duarte
Designação profissional Prof. Alexandre Duarte
Prefixos Dr. Alexandre Duarte
Sufixos Alexandre Duarte II
Sobrenome com hífen Alexandre Nóbrega-Duarte
Sobrenome primeiro Duarte,Alexandre Nóbrega
Primeiro nome duplo Alexandre Antônio Duarte
10. SEPARAÇÃO
Prefixo/Sufixos Prof. Alexandre Duarte, PhD
Outros campos incluídos
incorretamente
Alexandre Duarte UFPB João Pessoa
Primeiro nome ausente Nóbrega Duarte
Sobrenome ausente Alexandre
Tudo ausente
Não sei AA
Não é um nome de pessoa Universidade Federal da Paraíba
11. COMO PROCEDER?
• Suponha que precisamos separar os nomes para
podermos ordenar uma lista de 500 itens pelo
sobrenome
12. ANTES DE COMEÇAR
• Qual a importância de fazer essa separação?
• O que se perde mantendo o nome como um campo único?
• Qual o resultado esperado?
• Deve-se manter algum outro campo além do nome e sobrenome?
• Vale a pena o esforço ?
• E se alguém disser que corrige a lista para você por R$ 1000? E por R$ 100?
• Como lidar com entradas incorretas/incompletas?
13. COMO SEPARAR OS DADOS?
• É possível escrever um livro inteiro apenas sobre
isso!
• Conhecimento de uma linguagem de
programação facilita bastante o trabalho
15. PROCURE PELO CASO
COMUM
• Muitas vezes, a maior parte dos dados pode ser
separada de forma trivial
• Você pode perceber que dos 500 nomes, 200
possuem apenas o primeiro nome e o sobrenome
• Separe estes 200 e concentre-se nos 300
restantes
16. IDENTIFIQUE AS
SINGULARIDADES
• Dê uma olhada no conjunto de dados para
identificar entradas sem dados, nomes complicados,
nomes incompletos, dados que não representam
nomes e entradas com as quais você não sabe lidar.
• Digamos que este grupo é formado por 40 nomes
• Reserve-os para mais tarde.
17. PROCURE POR
SIMILARIDADES
• Dos 260 nomes restantes, talvez 60 sejam mais complicados por
conta de designações profissionais.
• Apague ou separe manualmente de uma única vez essas 60
designações profissionais
• Adicione os que agora possuem apenas nome e sobrenome aos
200 que separamos no começo
• Os que ainda não estiverem no formato esperado (sobrenomes
duplos, etc) são classificados em grupos apropriados
18. ESFORÇO MANUAL
• Os 40 nomes estranhos podem acabar tendo que
ser tratados manualmente, com a redigitação
correta dos dados
19. CONVERSÃO
• Uma outra tarefa importante na fase de preparação é garantir
que todos os dados de um determinado campo sejam descritos
utilizando a mesma unidade e tipo de dados
• Exemplo: considere uma base com dados biometricos de pessoas
de diferentes países.
• Pesos podem especificados em kilos ou libras
• Alturas podem ser especificadas em centímetros ou polegadas
20. PADRONIZAÇÃO
• Talvez a etapa mais intensiva da preparação dos
dados seja a padronização, ou controle de
inconsistências
• Valores diferentes para representar o mesmo
conceito
• Geralmente requer preparação semi-automática
21. PADRONIZAÇÃO
Engenharia da Computação
Ciência da Computação
Ciências da Computação
Matemática
Engenharia de Computação
EC
CC
MAT
0 7.5 15 22.5 30
Engenharia da Computação
Ciência da Computação
Matemática
0 12.5 25 37.5 50
22. DIMINUINDO A DOR DE
CABEÇA
• A melhor solução é a prevenção
• Se você está coletando os dados, faça o máximo
possível para minimizar a possibilidade de coletar
dados que demandem grande esforço na
preparação
• Veremos mais sobre isso ainda hoje!
24. LIMPEZA DOS DADOS
• Após a preparação dos dados devemos procurar identificar
dados incorretos
• Números inconsistentes
• Erros de digitação
• Decidir se é possível corrigir os erros ou se os dados devem ser
ignorados
• Atividade semi-automática
25. TESTE DE INTERVALO
• Procedimento simples para testar valores
numéricos
• Checar se valores estão acima ou abaixo dos
limites estabelecidos para uma variável
• Marcar valores suspeitos para análise manual
28. ORTOGRAFIA
• Verificação ortográfica é uma outra forma de detectar dados
problemáticos
• Cienca da Computaçao, Ciensia da Computasao ,etc
• Recomenda-se que cada variável (coluna) seja testada isoladamente
• Um valor considerado incorreto para uma variável pode ser correto
para outra
29. PADRÕES / EXPRESSÕES
REGULARES
• Expressões regulares são suas aliadas
• Testar se todas as entradas para a variável e-mail
são realmente endereços de e-mail
• Só fazem sentido se aplicadas a variáveis (colunas)
isoladamente
30. A MAIORIA DOS CONJUNTOS
DE DADOS NÃO É 100% LIMPA
• Aceite isso!
• Se você seleciona 1000 entradas de uma base com
1.000.000 entradas e você detecta que 2 estão
com o nome e sobrenome em um único campo,
faz sentido processar toda a base novamente ?
• Depende!
31. DEPOIS DA LIMPEZA
• há documentação!
• Como outros podem verificar que a limpeza que você fez não corrompeu
os dados?
• Os dados tratados podem ser muito diferentes dos dados brutos
• É preciso documentar tudo!
• É melhor documentar durante a limpeza e não após terminar.
• Ajudará a explicar porque determinados pontos de dados foram
removidos
32. REGRA GERAL
• Se o número de valores incorretos ou ausentes
em uma [linha, coluna] é maior do que o número
de valores corretos o mais recomendado é excluir
esta [linha, coluna]
33. O QUE UMA BOA LIMPEZA DE
DADOS CONSEGUETRATAR
• erros de digitação, erros de digitação
• outliers, valores inválidos, valores extremos
• dados que não são internamente consistentes
• ausência ou excesso de dados
• padrões estranhos em distribuições
• valores ausentes
34. O QUE A LIMPEZA NÃO FAZ
• Detectar valores incorretos mas dentro do intervalo esperado
• Uma pessoa de 45 anos digita sua idade como 54
• Detectar respostas que não refletem sua opinião do respondente
• Escolheu Concorda Fortemente quando queria na verdade
escolher Discorda Fortemente
• Distinguir dados ausentes de dados omitidos
• Prefiro não responder