Unificado, automatizado e pronto para transformar dados em inteligência.
Ontdek hoe u de ware waarde van uw gegevens kunt ontsluiten.
O pré-processamento de dados para aprendizado de máquina (ML ) refere-se à preparação e transformação de dados brutos em um formato adequado para treinar modelos de ML. É uma etapa essencial em um fluxo de ML (ou AI) porque afeta diretamente o desempenho e a precisão dos modelos.
O pré-processamento de dados envolve várias técnicas, como limpar os dados para lidar com valores ausentes, remover valores discrepantes, dimensionar recursos, codificar variáveis categóricas e dividir os dados em conjuntos de treinamento e teste. Essas técnicas são essenciais para garantir que os dados estejam em um formato uniforme e utilizável para os algoritmos de ML.
Este artigo aborda tudo o que você precisa saber sobre o pré-processamento de dados para aprendizado de máquina, incluindo o que é, seus benefícios, etapas e exemplos.
O pré-processamento de dados é a transformação de dados brutos em um formato mais adequado e significativo para análise e treinamento de modelos. O pré-processamento de dados desempenha um papel vital para melhorar a qualidade e a eficiência dos modelos de ML, abordando problemas como valores ausentes, ruído, inconsistências e valores discrepantes nos dados.
O pré-processamento de dados para aprendizado de máquina tem muitos benefícios, e esses benefícios são os mesmos das etapas envolvidas no pré-processamento de dados. Vamos dar uma olhada.
A limpeza de dados é uma parte essencial do fluxo de pré-processamento de dados no aprendizado de máquina. Ela envolve identificar e corrigir erros ou inconsistências no conjunto de dados para garantir que os dados sejam de alta qualidade e adequados para análise ou treinamento de modelo.
A limpeza de dados normalmente inclui:
Como lidar com valores ausentes
Valores ausentes são um problema comum em conjuntos de dados do mundo real e podem afetar negativamente o desempenho dos modelos de ML. Para identificar e lidar com valores ausentes:
Você também pode considerar métodos de imputação mais avançados, como imputação de regressão, imputação de vizinhos mais próximos de k ou usar modelos de ML para prever valores ausentes com base em outros recursos.
Como lidar com valores atípicos
Discrepantes são pontos de dados que diferem significativamente de outras observações no conjunto de dados e podem distorcer a análise estatística ou os modelos de aprendizado de máquina.
Para detectar e lidar com valores discrepantes:
Como lidar com duplicatas
Registros duplicados podem distorcer a análise e o treinamento de modelos ao inflar determinados padrões ou vieses.
Para detectar e lidar com duplicatas:
Ao seguir essas etapas e usar técnicas adequadas, você pode limpar e pré-processar com eficácia seus dados para tarefas de aprendizado de máquina, melhorando a qualidade e a confiabilidade das previsões dos seus modelos.
A normalização é uma técnica de pré-processamento de dados usada para dimensionar e padronizar os valores dos recursos em um conjunto de dados. O principal objetivo da normalização é colocar todos os valores de variáveis em um intervalo semelhante sem distorcer as diferenças nos intervalos de valores. Isso é importante porque muitos algoritmos de aprendizado de máquina têm melhor desempenho ou convergem mais rapidamente quando os recursos de entrada estão em uma escala semelhante e têm uma distribuição semelhante.
Os benefícios da normalização incluem:
Técnicas de normalização
Dimensionamento mínimo e máximo
Exemplo:
Normalização do Z-score (Padronização):
Exemplo:
Dimensionamento mínimo e máximo: O dimensionamento mínimo e máximo é adequado para algoritmos que exigem recursos de entrada dentro de um intervalo específico, como redes neurais e máquinas de vetor de suporte. Certifique-se de que os valores discrepantes sejam tratados adequadamente, pois podem afetar a expansão.
Normalização da pontuação Z: Isso é adequado para algoritmos como cluster k-means, regressão linear e regressão logística. Ela resulta em uma distribuição centrada em torno de 0 com um desvio padrão de 1, tornando-a ideal para algoritmos que assumem dados normalmente distribuídos.
Dados esparsos: Para conjuntos de dados esparsos (onde a maioria dos valores é zero), considere usar técnicas como MaxAbsScaler ou RobustScaler para normalização.
Dados categóricos: Para recursos categóricos, considere técnicas como codificação one-hot antes da normalização para garantir expansão significativa.
É importante observar que a escolha da técnica de normalização depende das características específicas dos seus dados e dos requisitos do algoritmo de aprendizado de máquina que você planeja usar. A experimentação e a compreensão do impacto no desempenho do modelo são aspectos essenciais da aplicação eficaz da normalização.
O dimensionamento de recursos é uma técnica de pré-processamento de dados usada para padronizar o intervalo de variáveis ou recursos independentes de um conjunto de dados. O objetivo do dimensionamento de recursos é levar todos os recursos a uma escala ou faixa semelhante para evitar que um recurso domine sobre outros durante o treinamento ou a análise do modelo. O dimensionamento de recursos pode melhorar a velocidade de convergência dos algoritmos de otimização e evitar que certos recursos tenham influência indevida no modelo.
Função do dimensionamento de recursos no pré-processamento de dados
Os recursos de expansão garantem que os algoritmos de ML tratem todos os recursos igualmente, evitando a tendência a recursos com escalas maiores. Ele também melhora as convergências, pois muitos algoritmos de otimização (por exemplo, descida de gradiente) convergem mais rapidamente quando os recursos são dimensionados, levando a um treinamento de modelo mais rápido. Ele também pode evitar problemas de instabilidade numérica que podem surgir devido a grandes diferenças nas magnitudes dos recursos. Por fim, a expansão horizontal pode facilitar a interpretação do impacto das variáveis nas previsões do modelo.
Métodos de expansão de recursos
Além do dimensionamento mínimo e máximo descrito acima e da normalização da pontuação Z, também há:
MaxAbsScaler: Isso dimensiona cada variável pelo seu valor absoluto máximo, de modo que os valores resultantes variam entre -1 e 1. Ele é adequado para dados escassos em que a preservação de zero entradas é importante, como em sistemas de classificação ou recomendação de texto.
RobustScaler: Isso usa estatísticas que são robustas para valores discrepantes, como a faixa mediana e interquartil (IQR, Median and Interquartile Range), para dimensionar recursos. É adequado para conjuntos de dados que contêm valores atípicos ou distribuições distorcidas.
Diretrizes para aplicar a expansão de recursos
Para aplicar o dimensionamento de recursos:
Tenha em mente que os recursos categóricos podem precisar de codificação (por exemplo, codificação one-hot) antes de aplicar o dimensionamento de recursos, especialmente se forem nominais (categorias não ordenadas).
Variáveis categóricas representam grupos ou categorias e muitas vezes são de natureza não numérica, apresentando desafios durante o treinamento do modelo, incluindo:
Técnicas para codificar variáveis categóricas
As técnicas para codificar variáveis categóricas incluem:
Codificação de rótulos: A codificação de rótulos atribui um rótulo numérico exclusivo a cada categoria em uma variável categórica. É adequado para variáveis ordinais em que há uma ordem significativa entre as categorias.
Veja um exemplo usando o aprendizado de scikit da Python:
de importação sklearn.preprocessing LabelEncoder
le = LabelEncoder()
Rótulos_codificados = le.fit_transform(['cat', 'cachorro', 'coelho', 'cachorro'])
Codificação única: A codificação one-hot cria colunas binárias para cada categoria em uma variável categórica, onde cada coluna indica a presença ou ausência dessa categoria. É adequado para variáveis nominais sem uma ordem específica entre as categorias.
Veja um exemplo usando pandas:
importar pandas como pd
df = pd.DataFrame({'category': ['A', 'B', 'C', 'A']})
one_hot_encoded = pd.get_dummies(df['category'], prefixo='category')
Codificação simulada: A codificação simulada é semelhante à codificação one-hot, mas descarta uma das colunas binárias para evitar problemas de multicolinearidade em modelos lineares. Ela é comumente usada em modelos de regressão em que uma categoria serve como categoria de referência.
Veja um exemplo usando pandas:
dummy_encoded = pd.get_dummies(df['category'], prefix='category', drop_first=True)
Diretrizes para lidar com dados categóricos
Para lidar corretamente com dados categóricos, você deve:
Entenda os tipos de variáveis: Determine se as variáveis categóricas são ordinais ou nominais para escolher a técnica de codificação apropriada.
Evite interpretações errôneas ordinais: Tenha cuidado ao usar a codificação de rótulos para variáveis nominais, pois isso pode introduzir ordinalidade não intencional nos dados.
Lide com alta cardinalidade: Para variáveis categóricas com um grande número de categorias exclusivas, considere técnicas como codificação de frequência, codificação de destino ou técnicas de redução de dimensionalidade, como PCA.
Tudo isso além do tratamento já mencionado de valores ausentes e da normalização de dados numéricos.
Lidar com dados desequilibrados é um desafio comum no aprendizado de máquina, especialmente em tarefas de classificação em que o número de instâncias em uma classe (classe minoritária) é significativamente menor do que nas outras classes (classes majoritárias). Os dados desequilibrados podem ter um impacto profundo no treinamento e avaliação de modelos, levando a modelos tendenciosos que favorecem a classe majoritária e têm um desempenho ruim nas classes minoritárias.
Aqui estão alguns pontos-chave sobre dados desequilibrados e técnicas para lidar com eles:
Impacto de dados desequilibrados no desempenho do modelo
Os modelos treinados em dados desequilibrados tendem a priorizar a precisão na classe majoritária enquanto negligenciam a classe minoritária. Isso pode levar a um desempenho ruim nas previsões de classe minoritária. Além disso, métricas como precisão podem ser enganosas em conjuntos de dados desequilibrados, pois uma alta precisão pode resultar da previsão correta da classe majoritária enquanto ignora a classe minoritária. As métricas de avaliação, como precisão, recall, F1-score e área sob a curva ROC (AUC-ROC), são mais informativas para conjuntos de dados desequilibrados em comparação com a precisão isoladamente.
Técnicas para lidar com dados desequilibrados
As técnicas mais comuns para lidar com dados desequilibrados são sobreamostragem e subamostragem. A sobreamostragem envolve aumentar o número de instâncias na classe minoritária para equilibrá-la com a classe majoritária. A subamostragem envolve reduzir o número de instâncias na classe majoritária para equilibrá-la com a classe minoritária. Você também pode adotar uma abordagem híbrida combinando sobreamostragem e subamostragem.
Há também a ponderação de classes, em que você ajusta os pesos das classes durante o treinamento do modelo para penalizar erros na classe minoritária mais do que erros na classe majoritária. Isso só é útil para algoritmos que suportam a ponderação de classe, como regressão logística ou máquinas de vetor de suporte.
Diretrizes para lidar com dados desequilibrados
Para lidar com dados desequilibrados, você deve:
Entenda a distribuição de dados: Analise a distribuição de classes no seu conjunto de dados para determinar a gravidade do desequilíbrio.
Escolha a técnica apropriada: Selecione a técnica de sobreamostragem, subamostragem ou híbrida com base no tamanho do conjunto de dados, na taxa de desequilíbrio e nos recursos computacionais.
Avalie as métricas: Use métricas de avaliação adequadas, como precisão, recall, F1-score ou curva AUC-ROC, para avaliar o desempenho do modelo em ambas as classes.
Validação cruzada: Aplique técnicas em pastas de validação cruzada para evitar vazamento de dados e obter estimativas confiáveis de desempenho do modelo.
O pré-processamento de dados ajuda a garantir que os modelos de ML sejam treinados em dados de alta qualidade e formatados adequadamente, o que afeta diretamente o desempenho, a precisão e a capacidade de generalização do modelo. Ao abordar problemas como valores ausentes, valores discrepantes, variáveis categóricas e desequilíbrio de classe, o pré-processamento de dados permite que os modelos façam previsões mais informadas e precisas, levando a uma melhor tomada de decisão em aplicativos do mundo real.
Com o pré-processamento adequado de dados, os profissionais de ML podem aproveitar todo o potencial de seus dados e criar modelos preditivos mais precisos e confiáveis para vários aplicativos em vários domínios.
No entanto, para realmente fazer isso no mundo real, primeiro você precisa ter uma solução flexível de armazenamento de dados, como a Pure Storage, que ajude a acelerar a AI e o aprendizado de máquina e a avançar com suas iniciativas de AI corporativa.
Prepare-se para o evento mais valioso do ano.
Acesse vídeos e demonstrações sob demanda para ver do que a Everpure é capaz.
Charlie Giancarlo sobre o por que de gerenciar dados — e não o armazenamento — é o futuro. Descubra como uma abordagem unificada transforma as operações de TI corporativas.
Cargas de trabalho avançadas exigem velocidade, segurança e escala compatíveis com a IA. Sua pilha está pronta?