Partilhar via


Evite sobreajuste e dados desequilibrados com ML automatizado

Dados sobreajustados e desequilibrados são armadilhas comuns quando você cria modelos de aprendizado de máquina. Por padrão, o recurso de ML automatizado no Azure Machine Learning fornece gráficos e métricas para ajudá-lo a identificar esses riscos. Este artigo descreve como você pode implementar práticas recomendadas no ML automatizado para ajudar a mitigar problemas comuns.

Identificar sobreajuste

O overfitting no aprendizado de máquina ocorre quando um modelo se ajusta muito bem aos dados de treinamento. Como resultado, o modelo não pode fazer previsões precisas em dados de teste não vistos. O modelo memorizou padrões específicos e ruído nos dados de treinamento, e não é flexível o suficiente para fazer previsões em dados reais.

Considere os seguintes modelos treinados e suas correspondentes precisões de trem e teste:

Modelo Precisão do comboio Precisão do teste
A 99,9% 95%
N 87% 87%
C 99,9% 45%
  • Modelo A: O teste para este modelo produz um pouco menos de precisão do que o treinamento do modelo. Há um equívoco comum de que, se a precisão do teste em dados não vistos for menor do que a precisão do treinamento, o modelo será sobreajustado. No entanto, a precisão do teste deve ser sempre menor do que a precisão do treinamento. A distinção entre dados de sobreajuste versus dados de ajuste adequado se resume a medir quanto menor é a precisão.

  • Modelo A versus modelo B: O modelo A é um modelo melhor porque tem maior precisão de teste. Embora a precisão do teste seja ligeiramente menor em 95%, não é uma diferença significativa que sugere que o overfitting está presente. O modelo B não é o preferido porque a precisão do comboio e do teste é semelhante.

  • Modelo C: Este modelo representa um caso claro de sobreajuste. A precisão do treinamento é alta e a precisão do teste é baixa. Esta distinção é subjetiva, mas vem do conhecimento do seu problema e dados, e quais são as magnitudes aceitáveis de erro.

Evitar sobremontagem

Nos casos mais flagrantes, um modelo sobreajustado assume que as combinações de valores de recursos visíveis durante o treinamento sempre resultam exatamente na mesma saída para o alvo. Para evitar o sobreajuste de seus dados, a recomendação é seguir as melhores práticas de aprendizado de máquina. Os são vários métodos que você pode configurar em sua implementação de modelo. O ML automatizado também fornece outras opções por padrão para ajudar a evitar sobreajustes.

A tabela a seguir resume as práticas recomendadas comuns:

Melhor prática Implementação ML Automatizado
Use mais dados de treinamento e elimine o viés estatístico X
Evitar fugas no alvo X
Incorpore menos recursos X
Suporte à regularização e otimização de hiperparâmetros X
Aplicar limitações de complexidade do modelo X
Usar validação cruzada X

Aplicar as melhores práticas para evitar sobreajuste

As seções a seguir descrevem as práticas recomendadas que você pode usar na implementação do modelo de aprendizado de máquina para evitar sobreajustes.

Usar mais dados

Usar mais dados é a maneira mais simples e melhor possível de evitar o sobreajuste, e essa abordagem normalmente aumenta a precisão. Quando você usa mais dados, torna-se mais difícil para o modelo memorizar padrões exatos. O modelo é forçado a alcançar soluções mais flexíveis para acomodar mais condições. Também é importante reconhecer o viés estatístico, para garantir que seus dados de treinamento não incluam padrões isolados que não existem nos dados de previsão ao vivo. Este cenário pode ser difícil de resolver porque pode haver sobreajuste presente quando comparado com dados de teste em tempo real.

Evitar fugas no alvo

O vazamento de alvo é um problema semelhante. Você pode não ver sobremontagem entre o trem e os conjuntos de teste, mas o problema de vazamento aparece no momento da previsão. O vazamento de destino ocorre quando seu modelo "trapaceia" durante o treinamento, acessando dados que normalmente não deveria ter no momento da previsão. Um exemplo é o modelo prever na segunda-feira qual é o preço da commodity para sexta-feira. Se seus recursos incluírem acidentalmente dados de quintas-feiras, o modelo terá acesso a dados não disponíveis no momento da previsão, porque não pode ver o futuro. O vazamento de alvo é um erro fácil de perder. Muitas vezes é visível onde você tem uma precisão anormalmente alta para o seu problema. Se você está tentando prever o preço das ações e treinou um modelo com 95% de precisão, é provável que haja um vazamento direcionado em algum lugar em seus recursos.

Incorpore menos recursos

A remoção de recursos também pode ajudar com o overfitting, evitando que o modelo tenha muitos campos para usar para memorizar padrões específicos, fazendo com que ele seja mais flexível. Pode ser difícil medir quantitativamente. Se você puder remover recursos e manter a mesma precisão, seu modelo poderá ser mais flexível e reduzir o risco de sobreajuste.

Revise os recursos de ML automatizados para evitar sobreajuste

As seções a seguir descrevem as práticas recomendadas fornecidas por padrão no ML automatizado para ajudar a evitar sobreajustes.

Suporte a regularização e ajuste de hiperparâmetros

A regularização é o processo de minimizar uma função de custo para penalizar modelos complexos e sobreajustados. Existem diferentes tipos de funções de regularização. Em geral, todas as funções penalizam o tamanho, a variância e a complexidade do coeficiente do modelo. O ML automatizado usa L1 (Lasso), L2 (Ridge) e ElasticNet (L1 e L2 simultaneamente) em diferentes combinações com diferentes configurações de hiperparâmetros do modelo que controlam o sobreajuste. O ML automatizado varia o quanto um modelo é regulado e escolhe o melhor resultado.

Aplicar limitações de complexidade do modelo

O ML automatizado também implementa limitações explícitas de complexidade do modelo para evitar sobreajustes. Na maioria dos casos, essa implementação é especificamente para algoritmos de árvore de decisão ou floresta. A profundidade máxima de cada árvore é limitada, e o número total de árvores usadas em técnicas de floresta ou conjunto é limitado.

Usar validação cruzada

A validação cruzada (CV) é o processo de pegar muitos subconjuntos de seus dados completos de treinamento e treinar um modelo em cada subconjunto. A ideia é que um modelo possa ter "sorte" e ter grande precisão com um subconjunto, mas ao usar muitos subconjuntos, o modelo não consegue atingir alta precisão sempre. Ao fazer o CV, você fornece um conjunto de dados de retenção de validação, especifica suas dobras CV (número de subconjuntos) e o ML automatizado treina seu modelo e ajusta os hiperparâmetros para minimizar erros no conjunto de validação. Uma dobra CV pode estar sobreajustada, mas ao utilizar muitas delas, o processo reduz a probabilidade de o seu modelo final estar sobreajustado. A contrapartida é que o CV resulta em tempos de treinamento mais longos e maior custo, porque você treina um modelo uma vez para cada n nos subconjuntos de CV.

Nota

A validação cruzada não está habilitada por padrão. Esse recurso deve ser configurado em Configurações de aprendizado de máquina automatizado. No entanto, depois que a validação cruzada é configurada e um conjunto de dados de validação é fornecido, o processo é automatizado para você.

Identificar modelos com dados desequilibrados

Dados desequilibrados são comumente 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 levar a um efeito positivo falsamente percebido da precisão de um modelo, porque os dados de entrada têm viés para uma classe, o que resulta no modelo treinado para imitar esse viés.

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

Gráfico Description
A matriz de confusão Avalia os rótulos classificados corretamente em relação aos rótulos reais dos dados.
Recordação de precisão Avalia a proporção de rótulos corretos em relação à proporção de ocorrências de rótulos encontrados dos dados.
Curvas ROC Avalia a proporção de rótulos corretos em relação à proporção de rótulos falso-positivos.

Lidar com dados desequilibrados

Como parte do objetivo de simplificar o fluxo de trabalho de aprendizado de máquina, o ML automatizado oferece recursos integrados para ajudar a lidar com dados desequilibrados:

  • O ML automatizado cria uma coluna de pesos como entrada para fazer com que as linhas nos dados sejam ponderadas para cima ou para baixo, o que pode ser usado para tornar uma classe mais ou menos "importante".

  • Os algoritmos usados pelo ML automatizado detetam desequilíbrio quando o número de amostras na classe minoritária é igual ou inferior a 20% do número de amostras na classe majoritária. A classe minoritária refere-se àquela com menos amostras e a classe majoritária refere-se àquela com mais amostras. Mais tarde, o aprendizado de máquina automatizado executa um experimento com dados subamostrados para verificar se o uso de pesos de classe pode solucionar esse problema e melhorar o desempenho. Se verificar um melhor desempenho através desta experiência, aplica o remédio.

  • Use uma métrica de desempenho que lida melhor com dados desequilibrados. Por exemplo, o 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. Esta métrica é mais robusta contra o desequilíbrio.

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

  • Refaça a amostra até mesmo para o desequilíbrio de classe. Você pode aumentar a amostra das classes menores ou reduzir a amostra das classes maiores. Estes métodos requerem conhecimentos especializados para processar e analisar.

  • Analise as métricas de desempenho em busca de dados desequilibrados. Por exemplo, a pontuação F1 é a média harmônica de precisão e recordação. A precisão mede a exatidão de um classificador, onde maior precisão indica menos falsos positivos. Recall mede a completude de um classificador, onde maior recall indica menos falsos negativos.

Próximo passo