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.
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:
Vamos dar uma olhada em cada um.
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.
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:
À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:
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.
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.
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.
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:
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 .