Equilibre seus dados para machine learning com o Amazon SageMaker Data Wrangler

Nó Fonte: 1600102

Gerenciador de dados do Amazon SageMaker é uma nova capacidade de Amazon Sage Maker isso torna mais rápido para cientistas e engenheiros de dados preparar dados para aplicativos de aprendizado de máquina (ML) usando uma interface visual. Ele contém mais de 300 transformações de dados integradas para que você possa normalizar, transformar e combinar recursos rapidamente sem precisar escrever nenhum código.

Hoje, temos o prazer de anunciar novas transformações que permitem equilibrar seus conjuntos de dados de maneira fácil e eficaz para o treinamento de modelos de ML. Demonstramos como essas transformações funcionam neste post.

Novos operadores de balanceamento

Os operadores de balanceamento recentemente anunciados estão agrupados sob o Dados de saldo tipo de transformação no ADICIONAR TRANSFORMAÇÃO painel.

Atualmente, os operadores de transformação suportam apenas problemas de classificação binária. Em problemas de classificação binária, o classificador tem a tarefa de classificar cada amostra em uma de duas classes. Quando o número de amostras na classe majoritária (maior) é consideravelmente maior que o número de amostras na classe minoritária (menor), o conjunto de dados é considerado desequilibrado. Essa distorção é um desafio para algoritmos e classificadores de ML porque o processo de treinamento tende a ser tendencioso para a classe majoritária.

Esquemas de balanceamento, que aumentam os dados para ficarem mais balanceados antes de treinar o classificador, foram propostos para enfrentar esse desafio. Os métodos de balanceamento mais simples são superamostrar a classe minoritária, duplicando amostras minoritárias, ou subamostrar a classe majoritária, removendo amostras majoritárias. A ideia de adicionar amostras de minorias sintéticas a dados tabulares foi proposta pela primeira vez na Técnica de Sobreamostragem de Minorias Sintéticas (SMOTE), onde amostras de minorias sintéticas são criadas interpolando pares dos pontos minoritários originais. SMOTE e outros esquemas de balanceamento foram extensivamente estudados empiricamente e demonstraram melhorar o desempenho da previsão em vários cenários, conforme a publicação SMOTE ou não SMOTE.

O Data Wrangler agora oferece suporte aos seguintes operadores de balanceamento como parte do Dados de saldo transformar:

  • Sobreamostrador aleatório – Amostras minoritárias duplicadas aleatoriamente
  • Subamostrador aleatório – Remova aleatoriamente amostras majoritárias
  • FERIR – Gere amostras minoritárias sintéticas interpolando amostras minoritárias reais

Vamos agora discutir detalhadamente os diferentes operadores de balanceamento.

Amostra aleatória

A sobreamostragem aleatória inclui a seleção de exemplos aleatórios da classe minoritária com uma substituição e a complementação dos dados de treinamento com múltiplas cópias desta instância. Portanto, é possível que uma única instância seja selecionada várias vezes. Com o Aleatória sobreamostra tipo de transformação, o Data Wrangler automaticamente sobreamostra a classe minoritária para você, duplicando as amostras minoritárias em seu conjunto de dados.

Subamostra aleatória

A subamostragem aleatória é o oposto da sobreamostragem aleatória. Este método busca selecionar e remover aleatoriamente amostras da classe majoritária, reduzindo consequentemente o número de exemplos da classe majoritária nos dados transformados. O Aleatória subamostragem O tipo de transformação permite que o Data Wrangler reduza automaticamente a amostragem da classe majoritária para você, removendo as amostras majoritárias em seu conjunto de dados.

FERIR

No SMOTE, amostras minoritárias sintéticas são adicionadas aos dados para atingir a proporção desejada entre amostras majoritárias e minoritárias. As amostras sintéticas são geradas pela interpolação de pares dos pontos minoritários originais. O FERIR transform oferece suporte ao balanceamento de conjuntos de dados, incluindo recursos numéricos e não numéricos. Os recursos numéricos são interpolados pela média ponderada. No entanto, você não pode aplicar interpolação de média ponderada a recursos não numéricos – é impossível calcular a média “dog” e “cat” por exemplo. Em vez disso, os recursos não numéricos são copiados de qualquer amostra minoritária original de acordo com o peso médio.

Por exemplo, considere duas amostras, A e B:

A = [1, 2, "dog", "carnivore"]
B = [0, 0, "cow", "herbivore"]

Suponha que as amostras sejam interpoladas com pesos 0.3 para a amostra A e 0.7 para a amostra B. Portanto, a média dos campos numéricos é calculada com esses pesos para produzir 0.3 e 0.6, respectivamente. O próximo campo é preenchido com “dog” com probabilidade 0.3 e “cow” com probabilidade 0.7. Da mesma forma, o próximo é igual “carnivore” com probabilidade 0.3 e “herbivore” com probabilidade 0.7. A cópia aleatória é feita independentemente para cada recurso, então o exemplo C abaixo é um resultado possível:

C = [0.3, 0.6, "dog", "herbivore"]

Este exemplo demonstra como o processo de interpolação pode resultar em amostras sintéticas irrealistas, como um cão herbívoro. Isso é mais comum com recursos categóricos, mas também pode ocorrer em recursos numéricos. Mesmo que algumas amostras sintéticas possam ser irrealistas, o SMOTE ainda pode melhorar o desempenho da classificação.

Para gerar heuristicamente amostras mais realistas, o SMOTE interpola apenas pares que estão próximos no espaço de recursos. Tecnicamente, cada amostra é interpolada apenas com seus k vizinhos mais próximos, onde um valor comum para k é 5. Em nossa implementação do SMOTE, apenas os recursos numéricos são usados ​​para calcular as distâncias entre os pontos (as distâncias são usadas para determinar a vizinhança de cada amostra). É comum normalizar os recursos numéricos antes de calcular distâncias. Observe que os recursos numéricos são normalizados apenas para fins de cálculo da distância; os recursos interpolados resultantes não são normalizados.

Vamos agora equilibrar o Conjunto de dados adulto (também conhecido como conjunto de dados Census Income) usando a transformação SMOTE integrada fornecida pelo Data Wrangler. Este conjunto de dados multivariado inclui seis recursos numéricos e oito recursos de string. O objetivo do conjunto de dados é uma tarefa de classificação binária para prever se a renda de um indivíduo excede US$ 50,000 por ano ou não, com base nos dados do censo.

Você também pode ver a distribuição das classes visualmente criando um histograma usando o tipo de análise de histograma no Data Wrangler. A distribuição alvo é desequilibrada e a proporção de registros com >50K para <=50K é cerca de 1:4.

Podemos equilibrar esses dados usando o FERIR operador encontrado sob o Dados de saldo transforme no Data Wrangler com as seguintes etapas:

  1. Escolha income como a coluna de destino.

Queremos que a distribuição desta coluna seja mais equilibrada.

  1. Defina a proporção desejada para 0.66.

Portanto, a proporção entre o número de amostras minoritárias e majoritárias é de 2:3 (em vez da proporção bruta de 1:4).

  1. Escolha FERIR como a transformação a ser usada.
  2. Deixe os valores padrão para Número de vizinhos para a média e se deve ou não normalizar.
  3. Escolha visualização para obter uma prévia da transformação aplicada e escolha Adicionar para adicionar a transformação ao seu fluxo de dados.

Agora podemos criar um novo histograma semelhante ao que fizemos antes para ver a distribuição realinhada das classes. A figura a seguir mostra o histograma do income coluna após balancear o conjunto de dados. A distribuição das amostras é agora 3:2, como era pretendido.

Agora podemos exportar esses novos dados balanceados e treinar um classificador neles, o que poderia produzir uma qualidade de previsão superior.

Conclusão

Nesta postagem, demonstramos como equilibrar dados de classificação binária desequilibrados usando o Data Wrangler. O Data Wrangler oferece três operadores de balanceamento: subamostragem aleatória, sobreamostragem aleatória e SMOTE para reequilibrar dados em seus conjuntos de dados não balanceados. Todos os três métodos oferecidos pelo Data Wrangler oferecem suporte a dados multimodais, incluindo recursos numéricos e não numéricos.

Como próximas etapas, recomendamos que você replique o exemplo desta postagem no fluxo de dados do Data Wrangler para ver o que discutimos em ação. Se você é novo no Data Wrangler ou Estúdio SageMaker, referir-se Introdução ao Data Wrangler. Se você tiver alguma dúvida relacionada a esta postagem, adicione-a na seção de comentários.


Sobre os autores

Yotam Elor é cientista aplicado sênior na Amazon SageMaker. Seus interesses de pesquisa são em aprendizado de máquina, especialmente para dados tabulares.

Arunprasath Shankar é arquiteto de soluções especialista em inteligência artificial e aprendizado de máquina (AI / ML) da AWS, ajudando clientes globais a dimensionar suas soluções de IA de maneira eficaz e eficiente na nuvem. Em seu tempo livre, Arun gosta de assistir filmes de ficção científica e ouvir música clássica.

Fonte: https://aws.amazon.com/blogs/machine-learning/balance-your-data-for-machine-learning-with-amazon-sagemaker-data-wrangler/

Carimbo de hora:

Mais de Blog do AWS Machine Learning