Uma rápida introdução à validação cruzada leave-one-out (loocv)
Para avaliar o desempenho de um modelo em um conjunto de dados, precisamos medir até que ponto as previsões feitas pelo modelo correspondem aos dados observados.
A maneira mais comum de medir isso é usando o erro quadrático médio (MSE), que é calculado da seguinte forma:
MSE = (1/n)*Σ(y i – f(x i )) 2
Ouro:
- n: número total de observações
- y i : O valor da resposta da i-ésima observação
- f (x i ): O valor de resposta previsto da i- ésima observação
Quanto mais próximas as previsões do modelo estiverem das observações, menor será o MSE.
Na prática, usamos o seguinte processo para calcular o MSE de um determinado modelo:
1. Divida um conjunto de dados em conjunto de treinamento e conjunto de teste.
2. Crie o modelo usando apenas os dados do conjunto de treinamento.
3. Use o modelo para fazer previsões sobre o conjunto de testes e medir o MSE – isso é chamado de MSE de teste .
Os testes MSE nos dão uma ideia do desempenho de um modelo em dados que não foram vistos antes, ou seja, dados que não foram usados para “treinar” o modelo.
No entanto, a desvantagem de usar um único conjunto de testes é que o teste MSE pode variar significativamente dependendo das observações utilizadas nos conjuntos de treinamento e teste.
É possível que, se usarmos um conjunto diferente de observações para o conjunto de treinamento e o conjunto de teste, nosso MSE de teste possa ser muito maior ou menor.
Uma maneira de evitar esse problema é ajustar um modelo várias vezes usando um conjunto de treinamento e teste diferente a cada vez e, em seguida, calcular o MSE de teste como a média de todos os MSEs de teste.
Este método geral é conhecido como validação cruzada e uma forma específica dele é conhecida como validação cruzada Leave-One-Out .
Validação cruzada Leave-One-Out
A validação cruzada deixar um de fora usa a seguinte abordagem para avaliar um modelo:
1. Divida um conjunto de dados em um conjunto de treinamento e um conjunto de teste, usando todas as observações, exceto uma, como parte do conjunto de treinamento:
Observe que deixamos apenas uma observação “fora” do conjunto de treinamento. É aqui que o método recebe o nome de validação cruzada “deixar um de fora”.
2. Crie o modelo usando apenas os dados do conjunto de treinamento.
3. Utilize o modelo para prever o valor de resposta da observação única excluída do modelo e calcule o MSE.
4. Repita o processo n vezes.
Finalmente, repetimos este processo n vezes (onde n é o número total de observações no conjunto de dados), deixando de fora uma observação diferente do conjunto de treinamento a cada vez.
Em seguida, calculamos o MSE de teste como a média de todos os MSEs de teste:
Teste MSE = (1/n)*ΣMSE i
Ouro:
- n: o número total de observações no conjunto de dados
- MSEi: o teste MSE durante o i- ésimo período de ajuste do modelo.
Vantagens e desvantagens do LOOCV
A validação cruzada deixe um de fora oferece os seguintes benefícios :
- Ele fornece uma medida muito menos tendenciosa do teste MSE em comparação ao uso de um único conjunto de testes, porque ajustamos repetidamente um modelo a um conjunto de dados contendo n-1 observações.
- Tende a não superestimar o MSE do teste em comparação ao uso de um único conjunto de testes.
No entanto, a validação cruzada automática tem as seguintes desvantagens:
- Usar esse processo pode levar muito tempo quando n é grande.
- Também pode ser demorado se um modelo for particularmente complexo e demorar muito para ajustar um conjunto de dados.
- Isso pode ser computacionalmente caro.
Felizmente, a computação moderna tornou-se tão eficiente na maioria das áreas que o LOOCV é um método muito mais razoável de usar do que era há muitos anos.
Observe que LOOCV também pode ser usado em contextos de regressão e classificação . Para problemas de regressão, calcula o teste MSE como a raiz da diferença quadrática média entre previsões e observações, enquanto em problemas de classificação calcula o teste MSE como a porcentagem de observações classificadas corretamente ao longo dos n ajustes repetidos do modelo.
Como executar LOOCV em R e Python
Os tutoriais a seguir fornecem exemplos passo a passo sobre como executar LOOCV para um determinado modelo em R e Python:
Validação cruzada Leave-One-Out em R
Validação cruzada Leave-One-Out em Python