paint-brush
Preparação de dados para aprendizado de máquina: um guia passo a passopor@itrex
3,802 leituras
3,802 leituras

Preparação de dados para aprendizado de máquina: um guia passo a passo

por ITRex12m2023/04/13
Read on Terminal Reader

Muito longo; Para ler

Muitas empresas assumem que a alimentação de grandes volumes de dados em um mecanismo de ML é suficiente para gerar previsões precisas. A verdade é que pode resultar em vários problemas, por exemplo, viés algorítmico ou escalabilidade limitada. O sucesso do aprendizado de máquina depende muito dos dados. E o triste dado é: todos os conjuntos de dados são falhos. É por isso que a preparação de dados é crucial para o aprendizado de máquina. Ele ajuda a eliminar imprecisões e vieses inerentes aos dados brutos, para que o modelo de ML resultante gere previsões mais confiáveis e precisas.
featured image - Preparação de dados para aprendizado de máquina: um guia passo a passo
ITRex HackerNoon profile picture

Anos atrás, quando o Spotify estava trabalhando em seu mecanismo de recomendação, eles enfrentaram desafios relacionados à qualidade dos dados usados para treinar algoritmos de ML.


Se eles não tivessem decidido voltar ao estágio de preparação de dados e investir esforços adicionais na limpeza, normalização e transformação de seus dados, é provável que nossa experiência auditiva não fosse tão agradável.


A preparação minuciosa dos dados para o aprendizado de máquina permitiu que a plataforma de streaming treinasse um poderoso mecanismo de ML que prevê com precisão as preferências de audição dos usuários e oferece recomendações de música altamente personalizadas.


O Spotify evitou um erro crucial que as empresas cometem quando se trata de preparar dados para aprendizado de máquina – não investir esforço suficiente ou pular o estágio.


Muitas empresas assumem que a alimentação de grandes volumes de dados em um mecanismo de ML é suficiente para gerar previsões precisas. A verdade é que pode resultar em vários problemas, por exemplo, viés algorítmico ou escalabilidade limitada.


O sucesso do aprendizado de máquina depende muito dos dados.


E o triste dado é: todos os conjuntos de dados são falhos. É por isso que a preparação de dados é crucial para o aprendizado de máquina. Ele ajuda a eliminar imprecisões e vieses inerentes aos dados brutos, para que o modelo de ML resultante gere previsões mais confiáveis e precisas.


Nesta postagem do blog, destacamos a importância de preparar dados para aprendizado de máquina e compartilhamos nossa abordagem para coletar, limpar e transformar dados. Portanto, se você é novo no ML e deseja garantir que sua iniciativa seja um sucesso, continue lendo.

Como preparar dados para aprendizado de máquina

O primeiro passo para adotar o ML com sucesso é formular claramente seu problema de negócios. Isso não apenas garante que o modelo de ML que você está construindo esteja alinhado com suas necessidades de negócios, mas também permite que você economize tempo e dinheiro na preparação de dados que podem não ser relevantes.


Além disso, uma declaração clara do problema torna o modelo de ML explicável (o que significa que os usuários entendem como ele toma decisões). É especialmente importante em setores como saúde e finanças, onde o aprendizado de máquina tem um grande impacto na vida das pessoas.


Com o problema de negócios resolvido, é hora de iniciar o trabalho de dados.


No geral, o processo de preparação de dados para aprendizado de máquina pode ser dividido nas seguintes etapas:


  1. Coleção de dados
  2. Limpeza de dados
  3. transformação de dados
  4. divisão de dados


Vamos dar uma olhada em cada um.

Coleção de dados

A preparação de dados para aprendizado de máquina começa com a coleta de dados. Durante o estágio de coleta de dados, você coleta dados para treinar e ajustar o futuro modelo de ML. Ao fazer isso, tenha em mente o tipo, volume e qualidade dos dados : esses fatores determinarão a melhor estratégia de preparação de dados.


O aprendizado de máquina usa três tipos de dados: estruturados, não estruturados e semiestruturados.

  • Os dados estruturados são organizados de uma maneira específica, geralmente em formato de tabela ou planilha. Os exemplos de dados estruturados abrangem informações coletadas de bancos de dados ou sistemas transacionais.
  • Dados não estruturados incluem imagens, vídeos, gravações de áudio e outras informações que não seguem modelos de dados convencionais.
  • Os dados semiestruturados não seguem um formato de modelo de dados tabular. Ainda assim, não é totalmente desorganizado, pois contém alguns elementos estruturais, como tags ou metadados que facilitam a interpretação. Os exemplos incluem dados nos formatos XML ou JSON.


A estrutura dos dados determina a abordagem ideal para preparar dados para aprendizado de máquina. Dados estruturados, por exemplo, podem ser facilmente organizados em tabelas e limpos por meio de desduplicação, preenchimento de valores ausentes ou padronização de formatos de dados.


Por outro lado, extrair recursos relevantes de dados não estruturados requer técnicas mais complexas, como processamento de linguagem natural ou visão computacional .


A abordagem ideal para a preparação de dados para aprendizado de máquina também é afetada pelo volume de dados de treinamento. Um grande conjunto de dados pode exigir amostragem, que envolve a seleção de um subconjunto dos dados para treinar o modelo devido a limitações computacionais. Um menor, por sua vez, pode exigir que os cientistas de dados tomem medidas adicionais para gerar mais dados com base nos pontos de dados existentes (mais sobre isso abaixo).


A qualidade dos dados coletados também é crucial. O uso de dados imprecisos ou tendenciosos pode afetar a produção de ML, o que pode ter consequências significativas, especialmente em áreas como finanças, saúde e justiça criminal. Existem técnicas que permitem que os dados sejam corrigidos quanto a erros e vieses. No entanto, eles podem não funcionar em um conjunto de dados inerentemente distorcido. Depois de saber o que torna os dados “bons”, você deve decidir como coletá-los e onde encontrá-los. Existem várias estratégias para isso:


  • Coleta de dados de fontes internas : se você tiver informações armazenadas em seu data warehouse corporativo , poderá usá-las para treinar algoritmos de ML. Esses dados podem incluir transações de vendas, interações com clientes, dados de plataformas de mídia social e outras fontes.
  • Coleta de dados de fontes externas : você pode recorrer a fontes de dados disponíveis publicamente, como portais de dados do governo, repositórios de dados acadêmicos e comunidades de compartilhamento de dados, como Kaggle, UCI Machine Learning Repository ou Google Dataset Search.
  • Web scraping : esta técnica envolve a extração de dados de sites usando ferramentas automatizadas. Essa abordagem pode ser útil para coletar dados de fontes que não são acessíveis por outros meios, como análises de produtos, artigos de notícias e mídias sociais.
  • Pesquisas : esta abordagem pode ser usada para coletar pontos de dados específicos de um público-alvo específico. É especialmente útil para coletar informações sobre preferências ou comportamento do usuário.


Às vezes, porém, essas estratégias não produzem dados suficientes. Você pode compensar a falta de pontos de dados com estas técnicas:


  • Aumento de dados , que permite gerar mais dados de amostras existentes, transformando-os de várias maneiras, por exemplo, girando, traduzindo ou dimensionando
  • Aprendizado ativo , que permite selecionar a amostra de dados mais informativa para rotulagem por um especialista humano.
  • Aprendizagem por transferência , que envolve o uso de algoritmos de ML pré-treinados aplicados para resolver uma tarefa relacionada como ponto de partida para treinar um novo modelo de ML, seguido pelo ajuste fino do novo modelo em novos dados.
  • Compartilhamento colaborativo de dados , que envolve trabalhar com outros pesquisadores e organizações para coletar e compartilhar dados para um objetivo comum.

Limpeza de dados

A próxima etapa a ser tomada para preparar os dados para o aprendizado de máquina é limpá-los. A limpeza de dados envolve encontrar e corrigir erros, inconsistências e valores ausentes. Existem várias abordagens para fazer isso:


  • Manipulando dados ausentes


    Valores ausentes são um problema comum no aprendizado de máquina. Ele pode ser tratado por imputação (pense: preencher valores ausentes com dados previstos ou estimados), interpolação (derivar valores ausentes dos pontos de dados circundantes) ou exclusão (simplesmente remover linhas ou colunas com valores ausentes de um conjunto de dados).


  • Manipulando discrepâncias


    Outliers são pontos de dados que diferem significativamente do restante do conjunto de dados. Outliers podem ocorrer devido a erros de medição, erros de entrada de dados ou simplesmente porque representam observações incomuns ou extremas. Em um conjunto de dados de salários de funcionários, por exemplo, um outlier pode ser um funcionário que ganha significativamente mais ou menos do que outros. Outliers podem ser tratados removendo-os, transformando-os para reduzir seu impacto, winsorizing (pense: substituindo valores extremos pelos valores mais próximos que estão dentro do intervalo normal de distribuição) ou tratando-os como uma classe separada de dados.


  • Removendo duplicatas


    Outra etapa no processo de preparação de dados para aprendizado de máquina é a remoção de duplicatas. As duplicatas não apenas distorcem as previsões de ML, mas também desperdiçam espaço de armazenamento e aumentam o tempo de processamento, especialmente em grandes conjuntos de dados. Para remover duplicatas, os cientistas de dados recorrem a uma variedade de técnicas de identificação de duplicatas (como correspondência exata, correspondência difusa, hash ou vinculação de registros). Uma vez identificados, eles podem ser descartados ou mesclados. No entanto, em conjuntos de dados não balanceados, as duplicatas podem, de fato, ser bem-vindas para alcançar a distribuição normal.


  • Manipulando dados irrelevantes


    Dados irrelevantes referem-se aos dados que não são úteis ou aplicáveis para resolver o problema. O tratamento de dados irrelevantes pode ajudar a reduzir o ruído e melhorar a precisão da previsão. Para identificar dados irrelevantes, as equipes de dados recorrem a técnicas como análise de componentes principais, análise de correlação ou simplesmente confiam em seu conhecimento de domínio. Uma vez identificados, esses pontos de dados são removidos do conjunto de dados.


  • Tratamento de dados incorretos


    A preparação de dados para machine learning também deve incluir o tratamento de dados incorretos e incorretos. As técnicas comuns para lidar com esses dados incluem a transformação de dados (alterar os dados para que atendam aos critérios definidos) ou remover completamente os pontos de dados incorretos.


  • Manipulando dados desbalanceados


    Um conjunto de dados desequilibrado é um conjunto de dados no qual o número de pontos de dados em uma classe é significativamente menor do que o número de pontos de dados em outra classe. Isso pode resultar em um modelo tendencioso que prioriza a classe majoritária, ignorando a classe minoritária. Para lidar com o problema, as equipes de dados podem recorrer a técnicas como reamostragem (seja superamostrar a classe minoritária ou subamostrar a classe majoritária para equilibrar a distribuição de dados), geração de dados sintéticos (gerar pontos de dados adicionais para a classe minoritária sinteticamente), custo -aprendizagem sensível (atribuindo maior peso à classe minoritária durante o treinamento), aprendizado conjunto (combinando vários modelos treinados em diferentes subconjuntos de dados usando diferentes algoritmos) e outros.


    Essas atividades ajudam a garantir que os dados de treinamento sejam precisos, completos e consistentes. Embora seja uma grande conquista, ainda não é suficiente produzir um modelo de ML confiável. Portanto, a próxima etapa na jornada de preparação de dados para aprendizado de máquina envolve garantir que os pontos de dados no conjunto de dados de treinamento estejam em conformidade com regras e padrões específicos. E esse estágio no processo de gerenciamento de dados é chamado de transformação de dados.

transformação de dados

Durante o estágio de transformação de dados, você converte dados brutos em um formato adequado para algoritmos de aprendizado de máquina. Isso, por sua vez, garante maior desempenho e precisão algorítmica.


Nossos especialistas na preparação de dados para machine learning citam as seguintes técnicas comuns de transformação de dados:


  • Dimensionamento


    Em um conjunto de dados, diferentes recursos podem usar diferentes unidades de medida. Por exemplo, um conjunto de dados imobiliários pode incluir informações sobre o número de quartos em cada propriedade (variando de um a dez) e o preço (variando de $ 50.000 a $ 1.000.000). Sem dimensionamento, é um desafio equilibrar a importância de ambos os recursos. O algoritmo pode dar muita importância ao recurso com valores maiores - neste caso, o preço - e não o suficiente para o recurso com valores aparentemente menores. A escala ajuda a resolver esse problema, transformando todos os pontos de dados de uma forma que os ajuste a um intervalo especificado, geralmente entre 0 e 1. Agora você pode comparar diferentes variáveis em pé de igualdade.


  • Normalização


    Outra técnica usada na preparação de dados para aprendizado de máquina é a normalização. É semelhante à escala. No entanto, enquanto o dimensionamento altera o intervalo de um conjunto de dados, a normalização altera sua distribuição.


  • Codificação


    Os dados categóricos têm um número limitado de valores, por exemplo, cores, modelos de carros ou espécies de animais. Como os algoritmos de aprendizado de máquina geralmente funcionam com dados numéricos, os dados categóricos devem ser codificados para serem usados como entrada. Portanto, codificação significa converter dados categóricos em um formato numérico. Existem várias técnicas de codificação para escolher, incluindo codificação one-hot, codificação ordinal e codificação de rótulo.


  • discretização


    A discretização é uma abordagem para preparar dados para aprendizado de máquina que permite transformar variáveis contínuas, como tempo, temperatura ou peso, em variáveis discretas. Considere um conjunto de dados que contém informações sobre a altura das pessoas. A altura de cada pessoa pode ser medida como uma variável contínua em pés ou centímetros. No entanto, para certos algoritmos de ML, pode ser necessário discretizar esses dados em categorias, digamos, “curto”, “médio” e “alto”. Isso é exatamente o que a discretização faz. Isso ajuda a simplificar o conjunto de dados de treinamento e reduzir a complexidade do problema. Abordagens comuns para discretização abrangem discretização baseada em cluster e baseada em árvore de decisão.


  • Redução de dimensionalidade


    A redução de dimensionalidade significa limitar o número de recursos ou variáveis em um conjunto de dados e preservar apenas as informações relevantes para a solução do problema. Considere um conjunto de dados contendo informações sobre o histórico de compras dos clientes. Ele apresenta a data da compra, o item comprado, o preço do item e o local onde ocorreu a compra. Reduzindo a dimensionalidade desse conjunto de dados, omitimos tudo menos os recursos mais importantes, digamos, o item comprado e seu preço. A redução de dimensionalidade pode ser feita com uma variedade de técnicas, algumas delas sendo análise de componentes principais, análise discriminante linear e incorporação de vizinhança estocástica com distribuição t.


  • Transformação de log


    Outra forma de preparar dados para aprendizado de máquina, a transformação de log, refere-se à aplicação de uma função logarítmica aos valores de uma variável em um conjunto de dados. Geralmente é usado quando os dados de treinamento são altamente distorcidos ou possuem uma grande variedade de valores. A aplicação de uma função logarítmica pode ajudar a tornar a distribuição de dados mais simétrica.


    Falando em transformação de dados, devemos mencionar a engenharia de recursos também. Embora seja uma forma de transformação de dados, é mais do que uma técnica ou uma etapa no processo de preparação de dados para aprendizado de máquina. Significa selecionar, transformar e criar recursos em um conjunto de dados. A engenharia de recursos envolve uma combinação de técnicas estatísticas, matemáticas e computacionais, incluindo o uso de modelos de ML, para criar recursos que capturam as informações mais relevantes nos dados.


    Geralmente é um processo iterativo que requer testar e avaliar diferentes técnicas e combinações de recursos para encontrar a melhor abordagem para resolver um problema.

divisão de dados

A próxima etapa no processo de preparação de dados para aprendizado de máquina envolve dividir todos os dados coletados em subconjuntos – o processo conhecido como divisão de dados. Normalmente, os dados são divididos em um conjunto de dados de treinamento, validação e teste.


  • Um conjunto de dados de treinamento é usado para realmente ensinar um modelo de aprendizado de máquina a reconhecer padrões e relacionamentos entre variáveis de entrada e de destino. Esse conjunto de dados geralmente é o maior.
  • Um conjunto de dados de validação é um subconjunto de dados usado para avaliar o desempenho do modelo durante o treinamento. Ele ajuda a ajustar o modelo ajustando hiperparâmetros (pense: parâmetros do processo de treinamento que são definidos manualmente antes do treinamento, como a taxa de aprendizado, força de regularização ou o número de camadas ocultas). O conjunto de dados de validação também ajuda a evitar o ajuste excessivo aos dados de treinamento.
  • Um conjunto de dados de teste é um subconjunto de dados usado para avaliar o desempenho do modelo treinado. Seu objetivo é avaliar a precisão do modelo em dados novos e não vistos. O conjunto de dados de teste é usado apenas uma vez — depois que o modelo foi treinado e ajustado nos conjuntos de dados de treinamento e validação.


Ao dividir os dados, podemos avaliar o desempenho de um modelo de aprendizado de máquina em dados que não foram vistos antes. Sem divisão, é provável que o modelo tenha um desempenho ruim em novos dados. Isso pode acontecer porque o modelo pode ter apenas memorizado os pontos de dados em vez de aprender padrões e generalizá-los para novos dados.


Existem várias abordagens para a divisão de dados, e a escolha da ideal depende do problema a ser resolvido e das propriedades do conjunto de dados. Nossos especialistas em preparação de dados para aprendizado de máquina dizem que geralmente requer alguma experimentação da equipe de dados para determinar a estratégia de divisão mais eficaz. Os seguintes são os mais comuns:


  • Amostragem aleatória , onde, como o nome sugere, os dados são divididos aleatoriamente. Essa abordagem geralmente é aplicada a grandes conjuntos de dados representativos da população que está sendo modelada. Como alternativa, é usado quando não há relações conhecidas nos dados que exijam uma abordagem mais especializada.
  • Amostragem estratificada , onde os dados são divididos em subconjuntos com base em rótulos de classe ou outras características, seguidos de amostragem aleatória desses subconjuntos. Essa estratégia é aplicada a conjuntos de dados desbalanceados com o número de valores em uma classe excedendo significativamente o número de valores em outras. Nesse caso, a amostragem estratificada ajuda a garantir que os conjuntos de dados de treinamento e teste tenham uma distribuição semelhante de valores de cada classe.
  • Amostragem baseada em tempo , onde os dados coletados até um certo ponto de tempo formam um conjunto de dados de treinamento, enquanto os dados coletados após o ponto de ajuste são formados em um conjunto de dados de teste. Essa abordagem é usada quando os dados foram coletados por um longo período de tempo, por exemplo, em conjuntos de dados financeiros ou médicos, pois permite garantir que o modelo possa fazer previsões precisas sobre dados futuros.
  • Validação cruzada , onde os dados são divididos em vários subconjuntos ou dobras. Algumas dobras são usadas para treinar o modelo, enquanto as demais são usadas para avaliação de desempenho. O processo é repetido várias vezes, com cada dobra servindo como dados de teste pelo menos uma vez. Existem várias técnicas de validação cruzada, por exemplo, validação cruzada k-fold e validação cruzada leave-one-out. A validação cruzada geralmente fornece uma estimativa mais precisa do desempenho do modelo do que a avaliação em um único conjunto de dados de teste.

Em uma nota final

A preparação adequada de dados para aprendizado de máquina é essencial para o desenvolvimento de soluções de aprendizado de máquina precisas e confiáveis. Na ITRex, entendemos os desafios da preparação de dados e a importância de ter um conjunto de dados de qualidade para um processo de aprendizado de máquina bem-sucedido.


Se você deseja maximizar o potencial de seus dados por meio do aprendizado de máquina, entre em contato com a equipe ITRex . Nossos especialistas fornecerão assistência na coleta, limpeza e transformação de seus dados.


Publicado também aqui .