Compartilhar via


Evitar dados de sobreajuste e desequilibrados com o ML automatizado

Os dados de sobreajuste e desequilibrados são armadilhas comuns quando você cria modelos de machine learning. Por padrão, o ML automatizado do Azure Machine Learning fornece gráficos e métricas para ajudá-lo a identificar esses riscos e implementa práticas recomendadas para ajudar a atenuá-los.

Identificar o sobreajuste

O sobreajuste no aprendizado de máquina ocorre quando um modelo se ajusta bem demais aos dados de treinamento e, como resultado, não consegue prever com precisão os dados de teste não vistos. Em outras palavras, o modelo memorizou padrões e ruídos específicos nos dados de treinamento, mas não é suficientemente flexível para fazer previsões sobre dados reais.

Considere os seguintes modelos treinados e suas imprecisões de treinamento e de teste correspondentes.

Modelo Precisão de treinamento Precisão de teste
Um 99,9% 95%
B 87% 87%
C 99,9% 45%

Considere o modelo A, há um equívoco comum de que, se a precisão de teste nos dados não vistos for menor do que a precisão de treinamento, o modelo será sobreajustado. No entanto, a precisão de teste deve ser sempre menor que a precisão de treinamento, e a distinção entre sobreajuste e ajuste adequado se resume a quanto menos preciso.

Compre os modelos A e B, o modelo A é um modelo melhor porque tem maior precisão de teste e, embora a precisão de teste seja um pouco menor em 95%, não é uma diferença significativa que sugira que exista sobreposição. Você não escolheria o modelo B porque as precisões de treinamento e de teste estão mais próximas.

O modelo C representa um caso claro de sobreajuste; a precisão de treinamento é alta, mas a precisão de teste não chega nem perto disso. Essa distinção é subjetiva, mas vem do conhecimento do seu problema e dados e de quais magnitudes de erro são aceitáveis.

Evitar o sobreajuste

Na maioria dos casos flagrantes, um modelo de sobreajuste assume que as combinações de valor de recurso vistas durante o treinamento sempre resultam na mesma saída para o destino.

A melhor maneira de evitar o sobreajuste é seguir as práticas recomendadas do ML, incluindo:

  • Usar mais dados de treinamento e eliminar a tendência estatística
  • Evitar o vazamento de destino
  • Usar menos recursos
  • Otimização de hiperparâmetro e regularização
  • Limitações de complexidade do modelo
  • Validação cruzada

No contexto do ML automatizado, as três primeiras maneiras listam as práticas recomendadas que você implementa. Os últimos três itens em negrito são as práticas recomendadas que o ML automatizado implementa por padrão para proteção contra sobreajuste. Em configurações que não sejam o ML automatizado, vale a pena seguir todas as seis práticas recomendadas para evitar modelos de sobreajuste.

Práticas recomendadas que você implementa

Usar mais dados

Usar mais dados é a maneira mais simples e melhor possível de evitar o sobreajuste, e como um bônus adicional, normalmente aumenta a precisão. Quando você usa mais dados, fica mais difícil para o modelo memorizar padrões exatos, e é forçado a alcançar soluções mais flexíveis para acomodar mais condições. Também é importante reconhecer o desvio estatístico para garantir que os dados de treinamento não incluam padrões isolados que não existem nos dados de previsão dinâmica. Esse cenário pode ser difícil de resolver, porque pode haver um sobreajuste presente quando comparado aos dados de teste dinâmico.

Evitar o vazamento de destino

O vazamento de destino é um problema semelhante, no qual você pode não ver o sobreajuste entre os conjuntos de treinamento/de teste, mas ele aparece no tempo de previsão. O vazamento de destino ocorre quando seu modelo "trapaceia" durante o treinamento tendo acesso aos dados que normalmente não deveria ter no tempo de previsão. Por exemplo, para prever na segunda-feira qual será o preço de um commodity na sexta-feira, se um de seus recursos acidentalmente incluírem dados de quintas-feiras, seriam dados que o modelo não terá no tempo de previsão, pois não pode ver o futuro. O vazamento de destino é um erro fácil de ser ignorado, mas costuma ser caracterizado por uma precisão muito alta para o seu problema. Se você estiver tentando prever o preço das ações e tiver treinado um modelo com precisão de 95%, é provável que haja vazamento de destino em algum lugar em seus recursos.

Usar menos recursos

A remoção de recursos também pode ajudar no sobreajuste, impedindo que o modelo tenha muitos campos a serem usados para memorizar padrões específicos, fazendo com que ele seja mais flexível. Pode ser difícil medir de forma quantitativa. Contudo, se você puder remover recursos e manter a mesma precisão, você provavelmente tornará o modelo mais flexível e reduzirá o risco de sobreajuste.

Práticas recomendadas que o ML automatizado implementa

Ajuste de hiperparâmetro e regularização

A regularização é o processo de minimizar uma função de custo para penalizar modelos complexos e sobreajustados. Há diferentes tipos de funções de regularização. Porém, em geral todos eles penalizam a variância, a complexidade e o tamanho do coeficiente do modelo. O machine learning automatizado usa L1 (Laço), L2 (Ressalto) e ElasticNet (L1 e L2 simultaneamente) em combinações diferentes com configurações de hiperparâmetro de modelo diferentes que controlam o sobreajuste. O ML automatizado varia o quanto um modelo é regulamentado e escolhe o melhor resultado.

Limitações de complexidade do modelo

O machine learning automatizado também implementa limitações de complexidade de modelo explícitas para evitar o sobreajuste. Na maioria dos casos, essa implementação é especificamente para algoritmos de árvore de floresta e árvore de decisão, em que a profundidade máxima da árvore individual é limitada, e o número total de árvores usadas nas técnicas de floresta ou de ensemble é limitado.

Validação cruzada

A CV (validação cruzada) é o processo de pegar muitos subconjuntos de seus dados de treinamento completos e treinar um modelo em cada subconjunto. A ideia é que um modelo poderia ter "sorte" e ter grande precisão com um subconjunto, mas usando muitos subconjuntos o modelo não atingirá essa alta precisão sempre. Ao fazer a CV, você fornece um conjunto de um conjunto de dados de controle de validação, especifica as dobras de CV (número de subconjuntos), e o ML automatizado treina seu modelo e ajusta os hiperparâmetros para minimizar o erro em seu conjunto de validação. Uma dobra de CV pode ser sobreajustada, mas usar muitas delas reduz a probabilidade de que o modelo final seja sobreadequado. A desvantagem é que a CV resulta em tempos de treinamento mais longos e maior custo, porque você treina um modelo uma vez para cada n subconjuntos de CV.

Observação

A validação cruzada não está habilitada por padrão; ela deve ser configurada nas configurações de machine learning automatizado. No entanto, depois que a validação cruzada estiver configurada, e um conjunto de dados de validação tiver sido fornecido, o processo será automatizado para você.

Identificar modelos com dados desequilibrados

Normalmente, os dados desequilibrados são encontrados em dados para cenários de classificação de aprendizado de máquina e referem-se a dados que contêm uma proporção desproporcional de observações em cada classe. Esse desequilíbrio pode causar um efeito de falso positivo de acordo com a precisão de um modelo porque os dados de entrada têm desvio, o que resulta no modelo treinado para imitar esse desvio.

Além disso, os trabalhos de ML automatizados geram os gráficos a seguir automaticamente. Esses gráficos ajudam a entender a exatidão das classificações do modelo, além de identificar os modelos potencialmente afetados por dados desequilibrados.

Gráfico Descrição
Matriz de confusão Avalia os rótulos classificados corretamente em relação aos rótulos reais dos dados.
Precisão/recall Avalia a proporção de rótulos corretos em relação à taxa de instâncias de rótulo encontradas dos dados
Curvas ROC Avalia a proporção de rótulos corretos em relação à taxa de rótulos falsos positivos.

Tratamento dos dados desequilibrados

Como parte do seu objetivo de simplificar o fluxo de trabalho de machine learning, o ML automatizado tem recursos internos para ajudar a lidar com dados desequilibrados como,

  • Uma coluna ponderada: o ML automatizado cria uma coluna ponderada como entrada para fazer com que as linhas nos dados sejam ponderadas para cima ou para baixo, o que pode tornar uma classe mais ou menos "importante".

  • Os algoritmos usados pelo desequilíbrio de detecção de ML automatizado quando o número de amostras na classe minoritária são iguais ou menores que 20% do número de amostras na classe principal, em que a classe minoritária refere-se a um com menos amostras e classe de maioria refere-se a uma com a maioria dos exemplos. Posteriormente, o machine learning automatizado executará um experimento com dados de subamostrados para verificar se o uso de pesos de classe corrigiria esse problema e melhorará o desempenho. Se ele garantir um desempenho melhor por meio desse experimento, essa solução será aplicada.

  • Use uma métrica de desempenho que lide melhor com dados desequilibrados. Por exemplo, a AUC_weighted é uma métrica primária que calcula a contribuição de cada classe com base no número relativo de amostras que representam essa classe, portanto, é mais robusta em relação ao desequilíbrio.

As técnicas a seguir são opções adicionais para lidar com dados desequilibrados fora do ML automatizado.

  • A reamostragem até mesmo do desequilíbrio de classe, seja por upsampling das classes menores ou downsampling das classes maiores. Esses métodos exigem experiência para processar e analisar.

  • Examine as métricas de desempenho para dados desequilibrados. Por exemplo, a pontuação F1 é a média harmônica de precisão e recuperação. A precisão mede a exatidão de um classificador, onde a precisão mais alta indica menos falsos positivos, enquanto a RECALL mede a integridade de um classificador, onde a RECALL superior indica menos falsos negativos.

Próximas etapas

Veja exemplos e saiba como criar modelos usando o ML automatizado: