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 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 as práticas recomendadas no ML Automatizado para ajudar a atenuar problemas comuns.
Identificar o sobreajuste
O sobreajuste 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. 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:
Modelar | Precisão de treinamento | Precisão de teste |
---|---|---|
Um | 99,9% | 95% |
B | 87% | 87% |
C | 99,9% | 45% |
Modelo A: o teste para esse modelo produz um pouco menos de precisão do que o treinamento de modelo. 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 está sobreajustado. No entanto, a precisão do teste deve ser sempre menor do que a precisão do treinamento. A distinção entre o sobreajuste versus a montagem adequada de dados se resume a medir quanto menos é 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 a sobreajuste está presente. O modelo B não é preferencial porque as precisões de treinamento e teste são semelhantes.
Modelo C: esse modelo representa um caso claro de sobreajuste. A precisão do treinamento é alta e a precisão do teste é baixa. 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. Para evitar a sobreajuste de seus dados, a recomendação é seguir as práticas recomendadas de aprendizado de máquina. São vários métodos que você pode configurar na implementação do modelo. O ML Automatizado também fornece outras opções por padrão para ajudar a evitar o sobreajuste.
A tabela a seguir resume as práticas recomendadas comuns:
Melhor prática | Implementação | ML automatizado |
---|---|---|
Usar mais dados de treinamento e eliminar o viés estatístico | X | |
Evitar o vazamento de destino | X | |
Incorporar menos recursos | X | |
Dar suporte à otimização de hiperparâmetro e regularização | X | |
Aplicar limitações de complexidade do modelo | X | |
Usar validação cruzada. | X |
Aplicar melhores práticas para evitar o sobreajuste
As seções a seguir descrevem as práticas recomendadas que você pode usar na implementação do modelo de machine learning para evitar o sobreajuste.
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. O modelo é 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. Talvez você não veja sobreajuste entre os conjuntos de treinamento e teste, mas o problema de vazamento aparece em 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. Um exemplo é que o modelo deve prever na segunda-feira qual é o preço das mercadorias para sexta-feira. Se seus recursos incluírem, acidentalmente, dados das quintas-feiras, o modelo terá acesso a dados não disponíveis no tempo de previsão, pois não poderá ser exibido no futuro. O vazamento de destino é um erro fácil de perder. Muitas vezes é visível onde você tem uma precisão anormalmente 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.
Incorporar 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 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.
Examinar os recursos de ML Automatizado para evitar o sobreajuste
As seções a seguir descrevem as práticas recomendadas fornecidas por padrão no ML Automatizado para ajudar a evitar o sobreajuste.
Dar suporte ao 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. Em geral, todas as funções penalizam o tamanho, a variação e a complexidade 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.
Aplicar 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 decisão ou floresta. A profundidade máxima de árvore individual é limitada e o número total de árvores usadas em técnicas de floresta ou conjunto é limitado.
Usar 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 pode dar "sorte" e ter grande precisão com um subconjunto, mas usando muitos subconjuntos o modelo não consegue 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 sobreajustado. 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. Esse recurso deve ser configurado em 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 objetivo de simplificar o fluxo de trabalho de machine learning, o ML Automatizado oferece funcionalidades internas para ajudar a lidar com dados desequilibrado:
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 ML Automatizado detectam desequilíbrio quando o número de amostras na classe minoritária é igual ou menor que 20% do número de amostras na classe majoritária. A classe minoritária refere-se à que tem menos amostras e a classe majoritária refere-se à que tem a maioria dos exemplos. Posteriormente, o machine learning automatizado executa um experimento com dados subamostrados para verificar se o uso de pesos de classe corrigiria esse problema e melhorará o desempenho. Se ele verificar um melhor desempenho por meio deste experimento, ele aplicará o remédio.
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. Essa métrica é 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:
Faça amostras novamente, até mesmo do desequilíbrio de classe. Você pode aumentar a amostra das classes menores ou de amostra abaixo 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, em que uma precisão mais alta indica menos falsos positivos. O recall mede a integridade de um classificador, em que um recall maior indica menos falsos negativos.