Quantas vezes devemos repetir um CV K-fold?

18

Me deparei com este tópico, olhando para as diferenças entre inicialização e validação cruzada - ótimas respostas e referências a propósito. O que estou me perguntando agora é: se eu deveria executar um CV repetido de 10 vezes, para calcular a precisão de um classificador, quantas vezes n devo repeti-lo?

Será que n dependem do número de dobras? No tamanho da amostra? Existe alguma regra para isso?

(No meu caso, tenho amostras de até 5000 e, se escolher algo maior que n = 20, meu computador demora muito para executar o cálculo.)

Neodyme
fonte

Respostas:

10

O fator que influencia é a estabilidade do modelo - ou, mais precisamente: as previsões dos substitutos.

Se os modelos forem completamente estáveis, todos os modelos substitutos produzirão a mesma previsão para o mesmo caso de teste. Nesse caso, as iterações / repetições não são necessárias e não produzem nenhuma melhoria.

Como você pode medir a estabilidade das previsões, eis o que eu faria:

  • Configure todo o procedimento de maneira a salvar os resultados de cada repetição / iteração da validação cruzada, por exemplo, no disco rígido
  • Comece com um grande número de iterações
  • Após algumas iterações, busque os resultados preliminares e verifique a estabilidade / variação nos resultados de cada execução.
  • Em seguida, decida quantas iterações adicionais você deseja refinar os resultados.

  • É claro que você pode decidir executar, digamos, 5 iterações e depois decidir o número final de iterações que deseja fazer.

(Observação: normalmente eu uso> cerca de 1000 modelos substitutos, portanto, normalmente, nenhuma repetição / iteração seria em torno de 100 - 125).

cbeleites suporta Monica
fonte
13

Faça uma pergunta ao estatístico e a resposta será alguma forma de "depende".

Depende . Além do tipo de modelo (cbeleites de bom ponto!), O número de pontos de ajuste de treinamento e o número de preditores? Se o modelo é para classificação, um grande desequilíbrio de classe me faria aumentar o número de repetições. Além disso, se estiver realizando uma nova amostragem de um procedimento de seleção de recurso, eu me inclino para mais reamostragens.

Para qualquer método de reamostragem usado nesse contexto, lembre-se de que (ao contrário do bootstrapping clássico), você só precisa de iterações suficientes para obter uma estimativa "precisa o suficiente" da média da distribuição. Isso é subjetivo, mas qualquer resposta será.

Seguindo a classificação com duas classes por um segundo, suponha que você espere / espere que a precisão do modelo seja de cerca de 0,80. Como o processo de reamostragem está amostrando a estimativa de precisão (digamos p), o erro padrão seria sqrt[p*(1-p)]/sqrt(B)onde Bestá o número de reamostragens. Pois B = 10, o erro padrão da precisão é de cerca de 0,13 e com B = 100ela é de cerca de 0,04. Você pode usar essa fórmula como um guia geral para esse caso em particular.

Considere também que, neste exemplo, a variação da precisão é maximizada quanto mais próximo você chega de 0,50, para que um modelo preciso precise de menos repetições, pois o erro padrão deve ser menor do que os modelos que são alunos fracos.

HTH,

Máx.

topepo
fonte
2
Eu seria extremamente cauteloso aqui para aplicar qualquer tipo de cálculo de erro padrão nesse contexto, porque existem 2 fontes de variação aqui (instabilidade do modelo + conjunto finito de casos de teste) e acho que a validação de reamostragem não contornará o teste finito definir variação: considere a validação cruzada. Em cada execução, todos os casos de teste são testados exatamente uma vez. Portanto, a variação entre as execuções do CV iterado deve-se à instabilidade. Você não observará (nem reduzirá!) A variação devido ao teste finito definido dessa maneira, mas é claro que o resultado ainda está sujeito a ela.
cbeleites suporta Monica