Avaliar modelos de ML - Amazon Machine Learning

Não estamos mais atualizando o serviço Amazon Machine Learning nem aceitando novos usuários para ele. Essa documentação está disponível para usuários existentes, mas não estamos mais atualizando-a. Para obter mais informações, consulte O que é o Amazon Machine Learning.

Avaliar modelos de ML

Você sempre deve avaliar um modelo para determinar se ele terá bom desempenho na previsão do destino em dados novos e futuros. Como futuras instâncias têm valores de destino desconhecidos, verifique a métrica de precisão do modelo de ML nos dados para os quais já sabe a resposta sobre o destino e use essa avaliação como um proxy para precisão preditiva em dados futuros.

Para avaliar corretamente um modelo, você retém uma amostra de dados que foram identificados com o destino (verdade zero) da fonte de dados de treinamento. A avaliação da precisão preditiva de um modelo de ML com os mesmos dados usados no treinamento não é útil, pois recompensa modelos que podem "memorizar" dados de treinamento em vez de generalizar a partir deles. Assim que você tiver concluído o treinamento do modelo de ML, envie ao modelo as observações retidas para as quais você conhece os valores de destino. Em seguida, compare as previsões retornadas pelo modelo de ML em relação ao valor de destino. Por fim, calcule uma métrica resumida que mostra se a correspondência entre os valores previstos e reais foi bem feita.

No Amazon ML, para avaliar um modelo de ML, crie uma avaliação. Para criar uma avaliação para um modelo de ML, você precisa de um modelo de ML que deseja avaliar e de dados rotulados não usados para treinamento. Primeiro, crie uma fonte de dados para avaliação criando uma fonte de dados do Amazon ML com os dados retidos. Os dados usados na avaliação devem ter o mesmo esquema daqueles usados em treinamento, além de incluir valores reais para a variável de destino.

Se todos os dados estiverem em um único arquivo ou diretório, use o console do Amazon ML para dividir os dados. O caminho padrão no assistente Create ML model divide a fonte de dados de entrada e usa os primeiros 70% como fonte de dados de treinamento e os demais 30% como fonte de dados de avaliação. Você também pode personalizar a taxa de divisão usando a opção Custom (Personalizar) no assistente Create ML model (Criar modelo de ML), em que você pode escolher uma amostra aleatória de 70% para treinamento e usar os 30% restantes para avaliação. Para especificar as taxas de divisão personalizadas, use a string de reorganização de dados na API Create Datasource. Assim que você tiver uma fonte de dados de avaliação e um modelo de ML, poderá criar uma avaliação e analisar os resultados correspondentes.

Evitar sobreajuste

Ao criar e treinar um modelo de ML, o objetivo é selecionar o modelo que faz as melhores previsões, o que significa escolher o modelo com as melhores configurações (configurações ou hiperparâmetros de modelo de ML). No Amazon Machine Learning, há quatro hiperparâmetros que você pode definir: número de etapas, regularização, tamanho do modelo e tipo de ordem aleatória. No entanto, se você selecionar configurações de parâmetro de modelo que produzem o "melhor" desempenho de previsões com dados de avaliação, pode sobreajustar seu modelo. O sobreajuste ocorre quando um modelo memoriza padrões que aparecem nas fontes de dados de avaliação e, mas não consegue generalizar os padrões nos dados. Isso geralmente acontece quando os dados de treinamento incluem todos os dados usados na avaliação. Um modelo sobreajustado tem bom desempenho durante avaliações, mas não consegue fazer previsões precisas com dados não vistos.

Para evitar a seleção de um modelo sobreajustado como o melhor modelo, você pode reservar dados adicionais para validar o desempenho do modelo de ML. Por exemplo, você pode dividir os dados em 60 por cento para treinamento, 20 por cento para avaliação e outros 20 por cento para validação. Após selecionar os parâmetros do modelo que funcionam bem com os dados de avaliação, execute uma segunda avaliação com os dados de validação para ver o desempenho do modelo de ML com os dados de validação. Se o modelo atende às suas expectativas com os dados de validação, o modelo não está sobreajustando os dados.

O uso de terceiro conjunto de dados para validação ajuda você a selecionar os parâmetros de modelo de ML adequados para evitar o sobreajuste. No entanto, a retenção de dados do processo de treinamento tanto para avaliação como para validação disponibiliza menos dados para treinamento. Isso é um problema principalmente com conjuntos pequenos de dados porque é sempre melhor usar o máximo de dados possível para treinamento. Para resolver esse problema, você pode executar a validação cruzada. Para obter informações sobre validação cruzada, consulte Validação cruzada.