Dados de retenção e validação cruzada
Um dos maiores desafios na análise preditiva é saber como um modelo treinado se comportará em dados que nunca viu antes. Em outras palavras, quão bem o modelo aprendeu padrões verdadeiros versus simplesmente memorizar os dados de treinamento. Dados de retenção e validação cruzada são técnicas eficazes para garantir que seu modelo não esteja apenas memorizando, mas também aprendendo padrões generalizados.
Ao configurar seu experimento, você pode escolher se os dados de treinamento e os dados de retenção serão divididos de forma aleatória ou com um método especial usado para criar modelos de dados com reconhecimento de tempo.
Testando modelos para memorização versus generalização
Perguntar o desempenho de um modelo no mundo real equivale a perguntar se o modelo memoriza ou generaliza. A memorização é a capacidade de lembrar perfeitamente o que aconteceu no passado. Embora um modelo que memoriza possa ter pontuações altas quando treinado inicialmente, a exatidão preditiva cairá significativamente quando aplicada a novos dados. Em vez disso, queremos um modelo que generalize. Generalização é a capacidade de aprender e aplicar padrões gerais. Ao aprender os verdadeiros padrões mais amplos dos dados de treinamento, um modelo generalizado será capaz de fazer as mesmas previsões de qualidade em novos dados que nunca viu antes.
Dados de retenção automática
Uma retenção são dados "ocultos" do modelo durante o treinamento e, em seguida, usados para pontuar o modelo. A retenção simula o desempenho do modelo em previsões futuras, gerando métricas de exatidão nos dados que não foram usados no treinamento. É como se tivéssemos construído um modelo, implementado e monitorado suas previsões em relação ao que realmente aconteceu — sem ter que esperar para observar essas previsões.
No Qlik AutoML, há dois métodos para selecionar os dados de retenção: o método padrão e o método baseado em tempo.
Método padrão de seleção de dados de retenção
A menos que você ative o treinamento de modelo com reconhecimento de tempo, os dados de retenção são selecionados aleatoriamente antes do início do treinamento do modelo.
Método baseado em tempo para selecionar dados de retenção
Com o método baseado em tempo, todo o conjunto de dados de treinamento é classificado primeiro de acordo com uma coluna de índice de data que você seleciona. Após a classificação, os dados de retenção são separados do restante dos dados de treinamento. Esses dados de retenção contêm os dados mais recentes com relação ao seu índice selecionado.
O método baseado em tempo é usado para criar modelos com reconhecimento de tempo. Ative o treinamento com reconhecimento de tempo em Otimização do modelo no painel de configuração do experimento. Para obter mais informações, consulte Configurando experimentos.
Validação cruzada
Validação cruzada é um processo que testa a eficácia de um modelo de aprendizado de máquina ao prever valores futuros para dados que ainda não viu. Na validação cruzada, os dados de treinamento para um modelo são divididos em vários segmentos, chamados dobras. Durante cada iteração do treinamento, o modelo é treinado em uma ou mais dobras, com pelo menos uma das dobras sempre impedida de ser usada para treinamento. Após cada iteração, o desempenho é avaliado usando uma das dobras que foi impedida de ser usada no treinamento.
O resultado da validação cruzada é um conjunto de métricas de teste que fornecem uma previsão razoável de quão precisamente o modelo treinado será capaz de prever dados que nunca viu antes.
No Qlik AutoML, há dois métodos de validação cruzada: o método padrão e o método baseado em tempo.
Validação cruzada padrão
A menos que você configure o treinamento para usar a validação cruzada baseada em tempo, o Qlik AutoML usará o método padrão de validação cruzada. O método padrão de validação cruzada é adequado para modelos que não dependem de uma dimensão de série temporal, ou seja, você não precisa que o modelo faça previsões considerando uma coluna baseada em tempo específica nos dados de treinamento.
No método padrão de validação cruzada, o conjunto de dados é dividido aleatoriamente em vários segmentos pares, chamados dobras. O algoritmo de aprendizado de máquina treina o modelo em todas as dobras, exceto uma. A validação cruzada então testa cada dobra em relação a um modelo treinado em todas as outras dobras. Isso significa que cada modelo treinado é testado em um segmento dos dados que nunca viu antes. O processo é repetido com uma dobra diferente sendo ocultada durante o treinamento e, em seguida, testada até que todas as dobras tenham sido usadas exatamente uma vez como teste e treinadas durante todas as outras iterações.
Retenção automática e validação cruzada padrão
Por padrão, o AutoML usa validação cruzada de cinco dobras durante o treinamento do modelo para simular o desempenho do modelo. O modelo é então testado em relação a uma validação separada dos dados de treinamento. Isso gera métricas de pontuação para permitir que você avalie e compare o desempenho de diferentes algoritmos.
Antes do início do treinamento de seu experimento, todos os dados em seu conjunto de dados que têm um alvo não nulo são embaralhados aleatoriamente. 20 por cento do seu conjunto de dados é extraído como dados de retenção. Os 80% restantes do conjunto de dados são usados para treinar o modelo com validação cruzada.
Para se preparar para a validação cruzada, o conjunto de dados é dividido em cinco partes — dobras — aleatoriamente. O modelo é então treinado cinco vezes, cada vez "ocultando" um quinto diferente dos dados para testar o desempenho do modelo. As métricas de treinamento são geradas durante a validação cruzada e são a média dos valores computados.
Após o treinamento, o modelo é aplicado aos dados de retenção. Como os dados de retenção não foram vistos pelo modelo durante o treinamento — ao contrário dos dados de validação cruzada — eles são ideais para validar o desempenho do treinamento do modelo. As métricas de retenção são geradas durante essa avaliação final do modelo.
Para obter mais informações sobre métricas usadas para analisar o desempenho do modelo, consulte Revisando modelos.
Validação cruzada baseada em tempo
A validação cruzada baseada em tempo é adequada para treinar seu modelo para prever dados ao longo de uma dimensão de série temporal. Por exemplo, você deseja prever as vendas da sua empresa para o próximo mês, dado um conjunto de dados contendo dados de vendas anteriores. Para usar a validação cruzada baseada em tempo, deve haver uma coluna em seus dados de treinamento que contenha informações de data ou carimbo de data/hora.
A validação cruzada baseada em tempo é usada para criar modelos com reconhecimento de tempo. Ative o treinamento com reconhecimento de tempo em Otimização do modelo no painel de configuração do experimento. Para obter mais informações, consulte Configurando experimentos.
Com a validação cruzada baseada em tempo, os modelos são treinados para entender melhor que estão prevendo dados para datas futuras.
Assim como o método padrão, a validação cruzada baseada em tempo envolve separar os dados de treinamento em dobras que são usadas para treinamento e teste. Em ambos os métodos, os modelos também são treinados em várias iterações. No entanto, o método baseado em tempo tem várias diferenças em relação ao método padrão:
Os dados de treinamento são classificados e organizados em dobras ao longo do índice de data que você escolher. Por outro lado, a validação cruzada padrão seleciona aleatoriamente quais linhas são incluídas em qualquer dobra.
O número de dobras sendo usadas como dados de treinamento aumenta gradualmente com cada iteração do treinamento. Isso significa que, durante a primeira iteração, apenas a primeira dobra (mais antiga) pode ser usada, com iterações subsequentes contendo gradualmente um volume maior de dados de treinamento, incluindo dados mais recentes. A dobra sendo usada como dados de teste varia com cada iteração.
Isso é diferente do método de validação cruzada padrão, que usa um volume fixo de dados para divisões de treinamento e teste em cada iteração (ou seja, quatro dobras para treinamento e uma dobra para teste).
Como todo o conjunto de dados de treinamento é classificado ao longo do índice selecionado, os dados sendo usados para testar o modelo treinado são sempre mais recentes — ou igualmente recentes — do que os dados usados para treinar o modelo. Os dados de retenção automática usados para executar os testes de desempenho final no modelo são sempre mais recentes — ou igualmente recentes — do que o restante do conjunto de dados de treinamento.
Por outro lado, a validação cruzada padrão pode resultar em modelos sendo testados em dados mais antigos do que os dados de treinamento, resultando em vazamento de dados.
Retenção automática e validação cruzada baseada em tempo
Esse procedimento mostra como os modelos com reconhecimento de tempo são treinados. O processo tem diferenças e semelhanças em comparação com o processo de validação cruzada padrão.
Todos os conjuntos de dados em seu conjunto de dados são classificados de acordo com o índice de datas que você selecionou. Isso inclui os dados de treinamento e os dados de retenção.
Antes do início do treinamento de seu experimento, 20 por cento do seu conjunto de dados é extraído como dados de retenção. Esses dados de retenção são os mais recentes, ou tão recentes quanto o restante do conjunto de dados. Os 80% restantes do conjunto de dados são usados para treinar o modelo com validação cruzada.
Na preparação para a validação cruzada, os dados de treinamento classificados são divididos em várias dobras. Com relação ao índice de data selecionado, a primeira dobra conterá os registros mais antigos e a última dobra conterá os registros mais recentes.
O modelo é então treinado em cinco iterações. Em cada iteração, a quantidade de dados de treinamento é aumentada gradualmente. A cada iteração, a atualidade dos dados de treinamento incluídos também aumenta. As métricas de treinamento são geradas durante a validação cruzada e são a média dos valores computados.
Após o treinamento, o modelo é aplicado aos dados de retenção. Como os dados de retenção não foram vistos pelo modelo durante o treinamento, eles são ideais para validar o desempenho do treinamento do modelo. As métricas de retenção são geradas durante essa avaliação final do modelo.