Um guia simples para validação cruzada k-fold
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 do teste.
Os testes MSE nos dão uma ideia do desempenho de um modelo em dados nunca vistos antes. 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.
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 k-fold .
Validação cruzada K-Fold
A validação cruzada K-fold usa a seguinte abordagem para avaliar um modelo:
Etapa 1: divida aleatoriamente um conjunto de dados em k grupos, ou “dobras”, de tamanho aproximadamente igual.
Passo 2: Escolha uma das dobras como conjunto de fixação. Ajuste o modelo às dobras k-1 restantes. Calcule o teste MSE nas observações da camada que foi tensionada.
Etapa 3: Repita esse processo k vezes, cada vez usando um conjunto diferente como conjunto de exclusão.
Etapa 4: Calcule o MSE geral do teste como a média dos k MSEs do teste.
Teste MSE = (1/k)*ΣMSE i
Ouro:
- k: Número de dobras
- MSE i : Teste MSE na i- ésima iteração
Como escolher K
Em geral, quanto mais dobras usarmos na validação cruzada k-fold, menor será o viés do teste MSE, mas maior será a variância. Por outro lado, quanto menos dobras usarmos, maior será o viés, mas menor será a variância. Este é um exemplo clássico da compensação entre polarização e variância no aprendizado de máquina.
Na prática, geralmente optamos por utilizar entre 5 e 10 folhas. Conforme observado em Uma introdução ao aprendizado estatístico , foi demonstrado que esse número de dobras fornece um equilíbrio ideal entre viés e variância e, portanto, fornece estimativas confiáveis do MSE do teste:
Para resumir, há uma compensação entre viés e variância associada à escolha de k na validação cruzada k-fold.
Normalmente, dadas essas considerações, realiza-se validação cruzada k-fold usando k = 5 ou k = 10, já que esses valores foram empiricamente demonstrados como produzindo estimativas de taxa de erro de teste que não sofrem nem viés excessivamente alto nem variância muito alta.
-Página 184, Uma introdução ao aprendizado estatístico
Benefícios da validação cruzada K-Fold
Quando dividimos um conjunto de dados em um único conjunto de treinamento e um único conjunto de teste, o MSE de teste calculado nas observações no conjunto de teste pode variar significativamente dependendo das observações usadas nos conjuntos de treinamento e teste.
Usando a validação cruzada k-fold, podemos calcular o teste MSE usando diversas variações diferentes de conjuntos de treinamento e teste. Isto nos dá uma chance muito maior de obter uma estimativa imparcial do MSE do teste.
A validação cruzada K-fold também fornece uma vantagem computacional sobre a validação cruzada Leave-One-Out (LOOCV) porque ela só precisa ajustar um modelo k vezes em vez de n vezes.
Para modelos que demoram muito para serem ajustados, a validação cruzada de k dobras pode calcular o MSE de teste muito mais rápido que o LOOCV e, em muitos casos, o MSE de teste calculado por cada abordagem será bastante semelhante se você usar um número suficiente de dobras.
Extensões de validação cruzada K-Fold
Existem várias extensões para validação cruzada k-fold, incluindo:
Validação cruzada k-fold repetida: é aqui que a validação cruzada k-fold é simplesmente repetida n vezes. Sempre que os conjuntos de treinamento e teste são misturados, isso reduz ainda mais o viés na estimativa do MSE do teste, embora demore mais para ser concluído do que a validação cruzada k-fold comum.
Validação cruzada Leave-One-Out: Este é um caso especial de validação cruzada k-fold em que k = n . Você pode aprender mais sobre esse método aqui .
Validação cruzada estratificada k-fold: Esta é uma versão da validação cruzada k-fold em que o conjunto de dados é reorganizado de tal forma que cada dobra seja representativa do todo. Conforme observado por Kohavi , este método tende a oferecer um melhor equilíbrio entre viés e variância em comparação com a validação cruzada k-fold comum.
Validação cruzada aninhada: é aqui que a validação cruzada k-fold é realizada em cada dobra de validação cruzada. Isso geralmente é usado para realizar o ajuste de hiperparâmetros durante a avaliação do modelo.