Validação cruzada aninhada - como é diferente da seleção de modelo via kfold CV no conjunto de treinamento?

10

Costumo ver pessoas falando sobre validação cruzada 5x2 como um caso especial de validação cruzada aninhada .

Suponho que o primeiro número (aqui: 5) se refira ao número de dobras no loop interno e o segundo número (aqui: 2) se refira ao número de dobras no loop externo? Então, como isso difere de uma abordagem "tradicional" de seleção e avaliação de modelos? Por "tradicional", quero dizer

  • divida o conjunto de dados em um treinamento separado (por exemplo, 80%) e um conjunto de testes
  • use a validação cruzada de dobras k (por exemplo, k = 10) para ajuste de hiperparâmetro e seleção de modelo no conjunto de treinamento
  • avaliar o desempenho da generalização do modelo selecionado usando o conjunto de testes

5x2 não é exatamente o mesmo, exceto que o conjunto de teste e treinamento tem o mesmo tamanho se k = 2?


fonte
11
Você está correto, neste caso é o mesmo, exceto que ele usa uma divisão 50/50 no loop externo em vez de um 80/20. Geralmente, ele fornece uma estimativa melhor do desempenho da generalização e deve ser preferido, especialmente com tamanhos de amostra relativamente pequenos. Pela minha experiência, mesmo para CV aninhado, a estimativa de desempenho varia muito. Geralmente, é melhor executar o CV aninhado várias vezes para obter uma boa estimativa do desempenho da generalização.
George
Obrigado, faz sentido! No entanto, para pequenos conjuntos de treinamento, eu provavelmente aumentaria o número de dobras nos circuitos interno e externo; pode diminuir a variância, mas também aumentar o viés embora
Em geral, em vez de fazer um CV aninhado 5x2, geralmente realizo um (k-1) xk, com k = 5 ou 10. No caso de poucas amostras, em vez de aumentar o número de dobras, eu usaria valores menores de k .
George
11
Acho que você entendeu o contrário, em vez de estar completamente errado, mas a resposta aceita pode discordar da fonte com a qual estou prestes a me referir. No Python Machine Learning de Raschka, ele se refere a um "tipo específico de validação cruzada aninhada também é conhecido como validação cruzada 5x2". Há um gráfico incluído no qual ele mostra que o 2 se refere ao loop interno para ajuste de hiperparâmetros e o 5 se refere ao loop externo para uma estimativa imparcial do desempenho do modelo. Uma cópia colorida do gráfico pode ser encontrada no Cenário 3 aqui: sebastianraschka.com/faq/docs/evaluate-a-model.html
Austin

Respostas:

12

5x2cv, tanto quanto eu vi na literatura, sempre se refere a uma repetição de 5 vezes duas vezes. Não há aninhamento. faça duas vezes (50/50 dividido entre trem e teste), repita-o mais 4 vezes. O 5x2cv foi popularizado pelo artigo Testes estatísticos aproximados para comparar algoritmos de aprendizado de classificação supervisionada por Dietterich como forma de obter não apenas uma boa estimativa do erro de generalização, mas também uma boa estimativa da variação desse erro (para realizar testes estatísticos )

Jacques Wainer
fonte
Obrigado! Você sabe o que as pessoas costumam fazer se os loops internos selecionam modelos diferentes, por exemplo, se o parâmetro "ótimo" de regularização for lambda = 100 durante uma seleção de modelo e lambda = 1000 para o outro? Nesse caso, calcular o desempenho médio do modelo seria um pouco estranho, certo !? Você descartaria os modelos como sendo "instáveis"?
3
O loop interno provavelmente resultará em uma seleção diferente de hiperparâmetros. Você não usa a validação cruzada aninhada para selecionar os hiperparâmetros, apenas para obter uma boa estimativa do erro de generalização (com os melhores hiperparâmetros possíveis). O cv aninhado é usado para decidir entre um ou outro algoritmo. Consulte stats.stackexchange.com/questions/136296/… ou stats.stackexchange.com/questions/65128/… (entre outros)
Jacques Wainer
Oh, entendo, isso faz todo sentido! Eu pensei que as pessoas estavam usando de maneira diferente. Acho que podemos encerrar a questão então.
2

2 repetições no loop externo significam que você repete seu CV 5 vezes mais duas vezes em todo o conjunto de trens. Cada vez que a subdivisão em dobras for diferente.

Isso é usado principalmente para melhores estimativas do desempenho do modelo, como executar testes estatísticos sobre se um modelo tem desempenho estatisticamente significante melhor que outro.

O CV aninhado não é extremamente importante se o seu conjunto de dados for grande e sem discrepâncias. Se os seus dados tiverem valores discrepantes, o desempenho da validação cruzada poderá ser drasticamente diferente, dependendo de em que dobras / dobras esses discípulos estão. Portanto, você repete o CV várias vezes.

lanenok
fonte
Bom ponto. Na abordagem tradicional (teste / divisão do trem e, em seguida, k-fold CV no conjunto de treinamento), você só tem 1 dobra para avaliar o modelo, enquanto no 5x2 CV o desempenho médio pode ser calculado a partir das 2 dobras diferentes.