Número ideal de dobras na validação cruzada de fold : o CV de exclusão única é sempre a melhor escolha?

47

Tirando as considerações sobre o poder da computação, existem razões para acreditar que o aumento do número de dobras na validação cruzada leva a uma melhor seleção / validação de modelo (ou seja, quanto maior o número de dobras, melhor)?

Levando o argumento ao extremo, a validação cruzada de exclusão única leva necessariamente a modelos melhores do que a validação cruzada de fold?K

Alguns antecedentes sobre esta questão: estou trabalhando em um problema com muito poucas instâncias (por exemplo, 10 pontos positivos e 10 negativos), e tenho medo de que meus modelos não sejam generalizados / super-adequados com tão poucos dados.

Amelio Vazquez-Reina
fonte
1
Um segmento relacionado mais velhos: Escolha de K no K-dobre validação cruzada .
Ameba diz Reinstate Monica
Esta pergunta não é uma duplicata porque se restringe a pequenos conjuntos de dados e "Considerações sobre o poder da computação de lado". Essa é uma limitação grave, tornando a pergunta inaplicável para aqueles com grandes conjuntos de dados e o algoritmo de treinamento com complexidade computacional pelo menos linear no número de instâncias (ou previsão pelo menos na raiz quadrada do número de instâncias).
Serge Rogatch

Respostas:

46

A validação cruzada de exclusão única geralmente não leva a um desempenho melhor que o K-fold e é mais provável que seja pior , pois apresenta uma variação relativamente alta (ou seja, seu valor muda mais para amostras diferentes de dados do que o valor para validação cruzada k-fold). Isso é ruim em um critério de seleção de modelo, pois significa que o critério de seleção de modelo pode ser otimizado de maneiras que apenas exploram a variação aleatória na amostra específica de dados, em vez de fazer melhorias genuínas no desempenho, ou seja, é mais provável que você ajuste demais o critério de seleção do modelo. A razão pela qual a validação cruzada de exclusão única é usada na prática é que, para muitos modelos, ela pode ser avaliada com muito baixo custo como um subproduto da adaptação do modelo.

Se a despesa computacional não for primariamente um problema, uma abordagem melhor é executar a validação cruzada repetida em dobras k, em que o procedimento de validação cruzada em dobras k é repetido com diferentes partições aleatórias em k subconjuntos disjuntos de cada vez. Isso reduz a variação.

Se você tiver apenas 20 padrões, é muito provável que você experimente exagerar no critério de seleção de modelos, que é uma armadilha muito negligenciada em estatística e aprendizado de máquina (plug descarado: veja meu artigo sobre o assunto). Pode ser melhor escolher um modelo relativamente simples e tentar não otimizá-lo de forma muito agressiva, ou adotar uma abordagem bayesiana e calcular a média de todas as opções de modelos, ponderada por sua plausibilidade. A otimização do IMHO é a raiz de todo mal nas estatísticas, por isso é melhor não otimizar se não for necessário e otimizar com cautela sempre que o fizer.

Observe também que, se você for executar a seleção de modelo, precisará usar algo como validação cruzada aninhada, se também precisar de uma estimativa de desempenho (ou seja, você deve considerar a seleção de modelo como parte integrante do procedimento de ajuste de modelo e validar cruzadamente) também).

Dikran Marsupial
fonte
8
+1. Eu gosto do seu "otimização é a raiz de todo mal nas estatísticas" mensagem ...
S. Kolassa - Reintegrar Monica
5
Obrigado @DikranMarsupial. Eu não entendo direito. Por que os modelos aprendidos com deixar um fora têm uma variação maior do que com a validação cruzada de dobras k regulares ? Minha intuição me diz que, como nas dobras estamos apenas alterando um ponto de dados, os conjuntos de treinamento entre as dobras se sobrepõem fortemente, então eu esperaria ver pouca variação entre os modelos. Ou indo na outra direção, na dobra K, se K for baixo, os conjuntos de treinamento para cada dobra seriam bem diferentes e os modelos resultantes terão maior probabilidade de serem diferentes. Estou errado?
Amelio Vazquez-Reina
Essa é uma pergunta muito boa por si só, por isso sugiro que você faça uma nova pergunta, e terei uma idéia de como respondê-la!
Dikran Marsupial
Obrigado @DikranMarsupial Segui seus conselhos e iniciei uma pergunta separada aqui .
Amelio Vazquez-Reina
1
@DikranMarsupial Pensei em mencionar aqui que iniciei mais um tópico inspirado no seu comentário "otimização nas estatísticas" nesta resposta. Seu comentário me fez olhar para o sobreajuste de uma perspectiva mais ampla com a qual estou acostumado.
Amelio Vazquez-Reina
8

Escolhendo o número K dobra considerando a curva de aprendizado

Eu gostaria de argumentar que a escolha do número apropriado de dobras depende muito da forma e posição da curva de aprendizado, principalmente devido ao seu impacto no viés . Esse argumento, que se estende ao CV não incluído, é amplamente retirado do livro "Elements of Statistical Learning", capítulo 7.10, página 243.K

Para discussões sobre o impacto de na variação, veja aquiK

Resumindo, se a curva de aprendizado tem uma inclinação considerável no tamanho do conjunto de treinamento, a validação cruzada de cinco a dez vezes superestima o verdadeiro erro de previsão. Se esse viés é uma desvantagem na prática, depende do objetivo. Por outro lado, a validação cruzada de exclusão única apresenta viés baixo, mas pode ter alta variação.

Uma visualização intuitiva usando um exemplo de brinquedo

Para entender esse argumento visualmente, considere o seguinte exemplo de brinquedo em que estamos ajustando um polinômio de grau 4 a uma curva senoidal ruidosa:

insira a descrição da imagem aqui

Intuitivamente e visualmente, esperamos que este modelo seja mal para pequenos conjuntos de dados devido ao sobreajuste. Esse comportamento é refletido na curva de aprendizado em que plotamos Erro médio quadrático versus tamanho do treinamento, juntamente com o desvio padrão 1. Observe que eu escolhi plotar 1 - MSE aqui para reproduzir a ilustração usada na ESL página 243±1±

insira a descrição da imagem aqui

Discutindo o argumento

O desempenho do modelo melhora significativamente à medida que o tamanho do treinamento aumenta para 50 observações. Aumentar o número para 200, por exemplo, traz apenas pequenos benefícios. Considere os dois casos a seguir:

  1. Se nosso conjunto de treinamento tivesse 200 observações, a validação cruzada de vezes estimaria o desempenho em um tamanho de treinamento de 160 que é praticamente o mesmo que o desempenho para o tamanho de conjunto de treinamento 200. Portanto, a validação cruzada não sofrerá muito viés e aumentará para valores maiores não trarão muitos benefícios ( gráfico à esquerda )K5K

  2. No entanto, se o conjunto de treinamento tivesse observações, a validação cruzada de vezes estimaria o desempenho do modelo em relação aos conjuntos de treinamento do tamanho 40 e, a partir da curva de aprendizado, isso levaria a um resultado tendencioso. Portanto, aumentar neste caso tenderá a reduzir o viés. ( gráfico à direita ).5 K505K

insira a descrição da imagem aqui

[Update] - Comentários sobre a metodologia

Você pode encontrar o código para esta simulação aqui . A abordagem foi a seguinte:

  1. Gere 50.000 pontos a partir da distribuição onde a verdadeira variação de é conhecidaϵsin(x)+ϵϵ
  2. Iterar vezes (por exemplo, 100 ou 200 vezes). A cada iteração, altere o conjunto de dados reamostrando pontos da distribuição originalNiN
  3. Para cada conjunto de dados : i
    • Execute a validação cruzada da dobra K para um valor deK
    • Armazene o erro médio quadrado médio (MSE) nas dobras em K
  4. Quando o loop over estiver concluído, calcule a média e o desvio padrão do MSE nos conjuntos de dados para o mesmo valor dei KiiK
  5. Repita as etapas acima para todos os no intervalo até LOOCV{ 5 , . . . , N }K{5,...,N}

Uma abordagem alternativa é não reanalisar um novo conjunto de dados a cada iteração e, em vez disso, reorganizar o mesmo conjunto de dados a cada vez. Isso parece dar resultados semelhantes.

Xavier Bourret Sicotte
fonte
Vamos continuar esta discussão no chat .
Xavier Bourret Sicotte
@ Obrigado pelo código! Eu executei o código, mas não entendo como você conhece o real (o no seu código). Eu também acho que seu código será mais compacto se definir duas funções um para amostras de bootstrap (Shuffle = false), um para KFold (Shuffle = True) :)1 - 11MSE1112
meTchaikovsky
@me_Tchaikovsky Lembre-se de que o MSE do preditor pode ser decomposto como e assumindo que não há viés quando o modelo corresponde à verdadeira função subjacente, resta a variação do termo de erro . Variância de rv é uniforme assim neste caso ε ~ L ( - 0,5 , 0,5 ) 1 / 12 ( b - a ) 2 1 / 12MSE=Var+Bias2ϵU(.5,.5)1/12(ba)21/12
Xavier Bourret Sicotte