Validação cruzada k -Foldk
Suponha que você tenha 100 pontos de dados. Para validação cruzada fold, esses 100 pontos são divididos em k 'dobras' de tamanho igual e mutuamente exclusivas. Para k = 10, você pode atribuir os pontos 1 a 10 para dobrar # 1, 11-20 para dobrar # 2 e assim por diante, terminando atribuindo os pontos 91-100 para dobrar # 10. Em seguida, selecionamos uma dobra para atuar como o conjunto de testes e usamos as dobras k - 1 restantes para formar os dados do treinamento. Na primeira execução, você pode usar os pontos 1 a 10 como o conjunto de testes e 11 a 100 como o conjunto de treinamento. A próxima execução usaria os pontos 11 a 20 como o conjunto de teste e treinaria nos pontos 1 a 10 mais 21 a 100 e assim por diante, até que cada dobra seja usada uma vez como conjunto de teste.kkkk−1
Validação Cruzada de Monte-Carlo
Monte Carlo funciona de maneira um pouco diferente. Você seleciona aleatoriamente (sem substituição) uma fração de seus dados para formar o conjunto de treinamento e depois atribui o restante dos pontos ao conjunto de teste. Esse processo é repetido várias vezes, gerando (aleatoriamente) novos treinamentos e partições de teste a cada vez. Por exemplo, suponha que você optou por usar 10% dos seus dados como dados de teste. Em seguida, seu conjunto de testes no representante nº 1 pode ser os pontos 64, 90 , 63, 42 , 65, 49, 10, 64, 96 e 48. Na próxima execução, seu conjunto de testes pode ser 90 , 60, 23, 67, 16, 78, 42 , 17, 73 e 26. Como as partições são feitas independentemente para cada execução, o mesmo ponto pode aparecer no conjunto de testes várias vezes,qual é a principal diferença entre Monte Carlo e validação cruzada .
Comparação
Cada método tem suas próprias vantagens e desvantagens. Sob validação cruzada, cada ponto é testado exatamente uma vez, o que parece justo. No entanto, a validação cruzada explora apenas algumas das maneiras possíveis de particionar seus dados. Monte Carlo permite explorar partições um pouco mais possíveis, embora seja improvável que você obtenha todas elas - existem (10050)≈1028 possible ways to 50/50 split a 100 data point set(!).
Se você estiver tentando fazer inferência (ou seja, comparar estatisticamente dois algoritmos), calcular a média dos resultados de uma execução de validação cruzada vezes fornece uma estimativa (quase) imparcial do desempenho do algoritmo, mas com alta variação (como você espera ter apenas 5 ou 10 pontos de dados). Como você pode, em princípio, executá-lo pelo tempo que desejar / puder pagar, a validação cruzada de Monte Carlo pode fornecer uma estimativa menos variável, porém mais tendenciosa.k
Algumas abordagens fundem as duas, como na validação cruzada 5x2 (veja Dietterich (1998) para a idéia, embora eu ache que houve algumas melhorias desde então) ou corrigindo o viés (por exemplo, Nadeau e Bengio, 2003 ) .