Preparação de dados em um projeto de ciência de dados: receitas para jovens donas de casa



Em um artigo anterior , falei sobre a estrutura de um projeto de Ciência de Dados baseado em materiais de metodologia da IBM: como está estruturado, em que estágios consiste, em quais tarefas são resolvidas em cada estágio. Agora, gostaria de dar uma visão geral do estágio que consome mais tempo, que pode levar até 90% do tempo total do projeto: esses são os estágios associados à preparação dos dados - coleta, análise e limpeza.

Na descrição original da metodologia, o projeto Data Science é comparado com a preparação de um prato e o analista com um chef. Por conseguinte, o estágio de preparação dos dados é comparado com o de produtos: depois de termos decidido a receita do prato que prepararemos na fase de análise da tarefa de negócios, precisamos encontrar, coletar em um único local, limpar e picar os ingredientes. Consequentemente, o sabor do prato dependerá de quão bem essa etapa foi realizada (suponha que adivinhemos com a receita, especialmente porque existem muitas receitas em domínio público). Trabalhar com ingredientes, ou seja, preparar dados, é sempre um negócio de joalheria, trabalhoso e responsável: um produto estragado ou não lavado - e todo o trabalho é desperdiçado.

Coleta de dados


Depois de recebermos uma lista de ingredientes que podemos precisar, procuramos dados para resolver o problema e formamos uma amostra com a qual trabalharemos no futuro. Lembre-se do motivo pelo qual precisamos de uma amostra: primeiro, usamos-na para ter uma idéia da natureza dos dados no estágio de preparação dos dados e, em segundo lugar, formaremos amostras de teste e treinamento a partir dos estágios de desenvolvimento e configuração do modelo.


Obviamente, não aceitamos casos em que você, sob a ameaça de ser atingido por um NDA rígido, precisa entender algo sobre os dados em um projeto em grande escala e recebe os dados de um cliente sério em um pen drive ou como anexo a uma carta. Suponha que você esteja bem e tenha acesso aos dados. Nesta fase, é necessário preparar uma amostra que:

  1. refletia todas as propriedades necessárias da população
  2. Era conveniente trabalhar, ou seja, não era muito grande.

Parece, por que se limitar à quantidade de dados na era do big data? Isso é na sociologia, como regra, a população em geral não está disponível: quando examinamos a opinião pública, é impossível questionar todas as pessoas, mesmo em teoria. Ou na medicina, onde um novo medicamento está sendo estudado em um certo número de coelhos / ratos / moscas experimentais: cada objeto adicional no grupo de estudo é caro, problemático e difícil. No entanto, mesmo que toda a população esteja realmente disponível para nós, o big data exige uma infraestrutura apropriada para a computação e sua implantação é cara por si só (não estamos falando de casos em que uma infraestrutura pronta e configurada está ao seu alcance). Ou seja, mesmo que seja teoricamente possível calcular todos os dados, geralmente é longo, caro e geralmente o motivo, porque você pode ficar sem tudo isso se preparar uma seleção de alta qualidade, embora pequena, consistindo, por exemplo, de vários milhares de registros.

O tempo e o esforço gastos na criação da amostra permitem que você dedique mais tempo à mineração de dados: por exemplo, dados discrepantes ou ausentes podem conter informações valiosas, mas entre milhões de registros é impossível encontrar e entre milhares é completamente.

Como avaliar a representatividade dos dados?


Para entender como a nossa amostra é representativa, o bom senso e as estatísticas são úteis para nós. Para dados categóricos, precisamos garantir que em nossa amostra todos os atributos importantes do ponto de vista do problema de negócios sejam apresentados nas mesmas proporções que na população em geral. Por exemplo, se examinarmos os dados de pacientes na clínica e a pergunta se referir a pessoas de todas as idades, a amostra que inclui apenas crianças não será adequada para nós. Para dados históricos, vale a pena verificar se os dados cobrem um intervalo de tempo representativo no qual os recursos sob investigação recebem todos os valores possíveis. Por exemplo, se analisarmos os apelos a agências governamentais, os dados da primeira semana de janeiro provavelmente não serão adequados para nós, porque a queda nos recursos cai nesse momento. Para sinais numéricos, faz sentido calcular as estatísticas básicas (pelo menos estatísticas pontuais: média, mediana, variabilidade e comparar com estatísticas semelhantes da população em geral, se possível, é claro).

Problemas de coleta de dados


Muitas vezes acontece que nos faltam dados. Por exemplo, um sistema de informações foi alterado e os dados do sistema antigo não estão disponíveis ou a estrutura dos dados é diferente: novas chaves são usadas e é impossível estabelecer uma conexão entre os dados antigos e os novos. Os problemas organizacionais também não são incomuns quando os dados são mantidos por vários proprietários e nem todos podem ser configurados para gastar tempo e recursos no upload de um projeto de terceiros.

O que fazer neste caso? Às vezes, acaba por encontrar um substituto: se não houver tomates frescos, os enlatados podem surgir. E se a cenoura estiver podre, você precisará ir ao mercado para uma nova porção. Portanto, é bem possível que, nesse estágio, precisaremos retornar ao estágio anterior, onde analisamos a tarefa de negócios e nos perguntamos se seria possível reformular a pergunta de alguma forma: por exemplo, não podemos determinar claramente qual versão da página da loja online é melhor vende um produto (por exemplo, não há dados de vendas suficientes), mas podemos dizer em que página os usuários passam mais tempo e quais menos falhas (sessões de navegação muito curtas com alguns segundos de duração).


Análise exploratória de dados


Suponha que os dados sejam recebidos e haja confiança de que eles refletem a população em geral e contenham uma resposta para a tarefa comercial colocada. Agora eles precisam ser examinados para entender a qualidade dos produtos de dados em nossas mãos e se são adequados para a receita pretendida. Suponha que já pegamos alguns exemplos de registros, resolvemos qual é a chave e que tipos de dados ele contém: numérico, binário, categórico. Depois disso, você pode começar a estudar cada sintoma individualmente. A principal ferramenta de pesquisa é a estatística descritiva.


Avaliação da posição central


Na primeira etapa do estudo, seria bom entender quais valores para cada característica são típicos. A estimativa mais simples é a média aritmética: um indicador simples e bem conhecido. No entanto, se a dispersão dos dados for grande, a média não nos dirá muito sobre valores típicos: por exemplo, queremos entender o nível de salário em um hospital. Para fazer isso, some o salário de todos os funcionários, incluindo o diretor, que recebe várias vezes mais que a enfermeira. A média aritmética obtida será maior que o salário de qualquer funcionário (exceto o diretor) e não nos dirá nada sobre um salário típico. Esse indicador é adequado apenas para se reportar ao Ministério da Saúde, que orgulhosamente informará aumentos salariais. O valor obtido está muito sujeito à influência dos valores-limite. Para evitar a influência de valores discrepantes (atípicos, valores-limite), outras estatísticas são usadas: a mediana, que é calculada como o valor central nos valores classificados.

Se os dados forem binários ou categóricos, você deve descobrir quais valores são mais comuns e quais são menos comuns. Para fazer isso, use o mod: o valor ou a categoria mais comum. Isso é útil, entre outras coisas, para entender a representatividade da amostra: por exemplo, examinamos os dados dos prontuários dos pacientes e descobrimos que ⅔ cartões pertencem a mulheres. Isso fará você se perguntar se houve um erro durante a amostragem. Para exibir proporções de categoria entre si, é útil uma representação gráfica dos dados, por exemplo, na forma de gráficos de barras ou de pizza.

Avaliação da variabilidade dos dados


Depois de determinarmos os valores típicos de nossa amostra, podemos observar valores atípicos - outliers. As emissões podem nos dizer algo sobre a qualidade dos dados: por exemplo, podem ser sinais de erros: confusão de dimensionalidade, perda de casas decimais ou curva de codificação. Eles também falam sobre o quanto os dados variam, quais são os valores limitantes das características estudadas.

Em seguida, podemos proceder a uma avaliação geral de quanto os dados variam. A variabilidade (também é dispersão) mostra o quanto os valores da característica diferem. Uma maneira de medir a variabilidade é avaliar desvios típicos de recursos em relação a um valor central. É claro que a média desses desvios não nos dará muito, pois os desvios negativos neutralizam os positivos. As estimativas de variabilidade mais conhecidas são variância e desvio padrão, levando em consideração o valor absoluto dos desvios (variação é a média dos desvios quadrados e desvio padrão é a raiz quadrada da variância).

Outra abordagem é baseada na consideração da propagação de dados classificados (para conjuntos de dados grandes, essas medidas não são usadas, pois você deve primeiro classificar os valores, que são caros por si só). Por exemplo, avaliação usando percentis (você também pode encontrar apenas centis). Nésimo percentil - são esses valores que pelo menos N% dos dados assumem esse valor ou mais. Para evitar a sensibilidade externa, os valores podem ser eliminados de cada extremidade. A medida de variabilidade geralmente aceita é a diferença entre os percentis 25 e 75 - o intervalo interquartil.

Pesquisa de Distribuição de Dados


Depois de avaliarmos os dados usando características numéricas generalizadas, podemos estimar a aparência da distribuição dos dados como um todo. Isso é feito de maneira mais conveniente usando ferramentas de modelagem visual - gráficos.

Os tipos de gráficos mais usados ​​são um gráfico de caixas (ou uma caixa com bigode) e gráficos de barras. Uma caixa com bigode - uma representação compacta e conveniente da seleção, permite ver várias das características estudadas em uma imagem e, portanto, compará-las. Caso contrário, esse tipo de gráfico é chamado de diagrama ou plotagem de caixas e bigodes, plotagem de caixas. Esse tipo de diagrama, de forma compreensível, mostra a mediana (ou, se necessário, a média), os quartis inferior e superior, os valores mínimo e máximo da amostra e dos valores extremos. Várias dessas caixas podem ser desenhadas lado a lado para comparar visualmente uma distribuição com outra; eles podem ser colocados na horizontal e na vertical. As distâncias entre diferentes partes da caixa permitem determinar o grau de dispersão (dispersão), assimetria de dados e identificar valores extremos.


Além disso, uma ferramenta útil é um histograma conhecido - visualização da tabela de frequências, onde os intervalos de frequência são plotados no eixo X e a quantidade de dados no eixo Y. Um gráfico de barras também será útil para pesquisar dados históricos: ajudará você a entender como os registros foram distribuídos ao longo do tempo e você pode confiar neles? Usando o gráfico, é possível identificar erros de amostragem e dados quebrados: explosões em locais inesperados ou a presença de registros relacionados ao futuro podem permitir detectar problemas no formato dos dados, por exemplo, misturar formatos de data na parte da amostra.

Correlação


Depois de analisarmos todas as variáveis, precisamos entender se existem outras extras entre elas. Para isso, é utilizado o coeficiente de correlação - um indicador métrico que mede o grau em que as variáveis ​​numéricas estão relacionadas entre si e assume valores no intervalo de 1 a -1. A matriz de correlação é uma tabela na qual linhas e colunas são variáveis. e os valores das células são correlações entre essas variáveis. Diagrama de dispersão - ao longo do eixo x, os valores de uma variável, ao longo do eixo y - outra.

Limpeza de dados


Depois de examinarmos os dados, eles precisam ser limpos e possivelmente transformados. Nesse estágio, precisamos obter uma resposta para a pergunta: como precisamos preparar os dados para usá-los da maneira mais eficiente possível? Precisamos nos livrar de dados incorretos, processar registros ausentes, remover duplicatas e garantir que tudo esteja formatado corretamente. Também nesta fase, definimos um conjunto de recursos nos quais o aprendizado de máquina será desenvolvido posteriormente. A qualidade da execução desse estágio determinará se o sinal nos dados é distinguível para o algoritmo de aprendizado de máquina. Se estivermos trabalhando com texto, podem ser necessárias etapas adicionais para transformar dados não estruturados em um conjunto de atributos adequados para uso no modelo. A preparação de dados é a base sobre a qual os próximos passos serão construídos. Como na culinária, apenas um ingrediente estragado ou com casca pode estragar todo o prato. Qualquer descuido no manuseio de dados pode levar ao fato de que o modelo não apresentará bons resultados e precisará voltar algumas etapas.


Excluir entradas indesejadas


Uma das primeiras operações de limpeza de dados é excluir registros desnecessários. Inclui duas etapas: excluir entradas duplicadas ou incorretas. Encontramos valores errôneos no estágio anterior, quando estudamos valores extremos e atípicos. Poderíamos obter dados duplicados após o recebimento de dados semelhantes de várias fontes.

Correção de erro estrutural


Existem casos frequentes em que as mesmas categorias podem ser nomeadas de maneira diferente (pior, quando categorias diferentes têm o mesmo nome): por exemplo, nos dados abertos do governo de Moscou, os dados de construção são apresentados trimestralmente, mas o volume total do ano é assinado como um ano e, em alguns registros são designados como quarto trimestre. Nesse caso, restauramos os valores de categoria corretos (se possível).

Se você precisar trabalhar com dados de texto, pelo menos precisará executar as seguintes manipulações: remover espaços, remover toda a formatação, alinhar o caso, corrigir erros de ortografia.

Remoção de outlier


Para tarefas de aprendizado de máquina, os dados da amostra não devem conter valores discrepantes e devem ser o mais padronizados possível, portanto, os valores limite da unidade devem ser excluídos.

Gerenciamento de dados ausentes


Trabalhar com dados ausentes é uma das etapas mais difíceis na limpeza de dados. A ausência de uma parte dos dados, como regra, é um problema para a maioria dos algoritmos; portanto, você não deve usar registros onde uma parte está faltando ou tentar restaurar os que estão faltando com base em quaisquer suposições sobre a natureza dos dados. Ao mesmo tempo, entendemos que o preenchimento de lacunas de dados (não importa quão sofisticado seja o modo como fazemos) não está adicionando novas informações, mas simplesmente uma muleta que permite que você use com mais eficiência o restante das informações. Ambas as abordagens não são tão difíceis, porque, em qualquer caso, perdemos informações. No entanto, a falta de dados pode ser um sinal em si. Por exemplo, examinamos os dados de reabastecimento e a falta de dados do sensor pode ser um sinal claro de violação.

Ao trabalhar com dados categóricos, o melhor que podemos fazer com dados ausentes desse tipo é marcá-los como "ausentes". Esta etapa envolve realmente adicionar uma nova classe de dados categóricos. Uma maneira semelhante é lidar com dados ausentes de um tipo numérico: é necessário marcar de alguma forma os dados ausentes, por exemplo, substituir os dados ausentes por zero. Mas você precisa ter em mente que zero nem sempre se encaixa. Por exemplo, nossos dados são leituras de contador e a ausência de leituras não pode ser confundida com zeros reais nos valores dos dados.

Ferramentas de limpeza de dados


Como regra, a limpeza de dados não é um evento único; provavelmente teremos que adicionar novos dados à amostra, que novamente terá que ser passada pelos procedimentos de limpeza desenvolvidos. Para otimizar o processo, é bom usar aplicativos especializados (além do Excel 'I, que também pode ser útil), por exemplo:

  • O Talend Data Preparation é um aplicativo de desktop gratuito com uma interface visual que simplifica e automatiza as tarefas de limpeza de dados: permite criar um pipeline de processamento de dados personalizado. Você pode usar uma variedade de fontes de dados com o Talend, incluindo arquivos csv ou dados do Excel.
  • OpenRefine Essa ferramenta costumava ser chamada de Google Refine ou Freebase Gridworks. Agora, o OpenRefine é um aplicativo popular da área de trabalho para limpar e converter formatos de dados.
  • O Trifacta Wrangler - um aplicativo de desktop que permite trabalhar com tipos de dados complexos, também é útil para análise exploratória de dados. Não requer treinamento especial do usuário.

Bem, é claro, o pipeline de limpeza de dados pode ser implementado em qualquer linguagem de programação conveniente - do Python ao Scala, o principal é que o processamento leva um tempo aceitável.


E finalmente ...


Depois que limpamos e transformamos os dados, pode ser que os dados não sejam suficientes, por isso é normal que você precise voltar à etapa de obtenção de dados desse estágio, adicionar mais valores à seleção ou procurar novas fontes de dados. Isso é normal.


Conclusão


, - , , , , : , , .

, .

PS: , , , !

Source: https://habr.com/ru/post/pt470650/


All Articles