Como a validação cruzada k-fold se encaixa no contexto dos conjuntos de treinamento / validação / teste?

14

Minha principal pergunta é com relação à tentativa de entender como a validação cruzada k-fold se encaixa no contexto de ter conjuntos de treinamento / validação / teste (se é que se encaixa nesse contexto).

Geralmente, as pessoas falam em dividir os dados em um conjunto de treinamento, validação e teste - digamos na proporção de 60/20/20 por curso de Andrew Ng - pelo qual o conjunto de validação é usado para identificar parâmetros ideais para o treinamento do modelo.

No entanto, se alguém quiser usar a validação cruzada com dobras k na esperança de obter uma medida de precisão mais representativa quando a quantidade de dados for relativamente pequena, o que fazer a validação cruzada com dobras k implica exatamente nessa divisão 60/20/20 cenário?

Por exemplo, isso significaria que realmente combinaríamos os conjuntos de treinamento e teste (80% dos dados) e realizaríamos a validação cruzada com dobras k para obter nossa medida de precisão (descartando efetivamente com um "conjunto de testes" explícito? Em caso afirmativo, qual modelo treinado usamos a) na produção eb) para usar contra o conjunto de validação e identificar os parâmetros ideais de treinamento? Por exemplo, uma resposta possível para aeb é talvez usar o modelo da melhor dobra.

azul
fonte

Respostas:

12

A validação cruzada geralmente ajuda a evitar a necessidade de um conjunto de validação.

A ideia básica dos conjuntos de dados de treinamento / validação / teste é a seguinte:

  1. Treinamento: você experimenta diferentes tipos de modelos com diferentes opções de hiperparâmetros nos dados de treinamento (por exemplo, modelo linear com diferentes opções de recursos, rede neural com diferentes opções de camadas, floresta aleatória com diferentes valores de mtry).

  2. Validação: você compara o desempenho dos modelos na Etapa 1 com base no conjunto de validação e seleciona o vencedor. Isso ajuda a evitar decisões erradas, superando o conjunto de dados de treinamento.

  3. Teste: você experimenta o modelo vencedor nos dados de teste apenas para ter uma ideia do desempenho da realidade. Isso desvenda o sobreajuste introduzido na Etapa 2. Aqui, você não tomaria nenhuma decisão adicional. É apenas uma informação simples.

Agora, no caso de você substituir a etapa de validação pela validação cruzada, o ataque aos dados é feito quase de forma idêntica, mas você só tem um conjunto de dados de treinamento e teste. Não há necessidade de um conjunto de dados de validação.

  1. Treinamento: Veja acima.

  2. Validação: você faz a validação cruzada dos dados de treinamento para escolher o melhor modelo da Etapa 1 em relação ao desempenho da validação cruzada (aqui, os dados originais do treinamento são repetidamente divididos em um conjunto temporário de treinamento e validação). Os modelos calculados na validação cruzada são usados ​​apenas para escolher o melhor modelo da Etapa 1, todos computados no conjunto de treinamento completo.

  3. Teste: Veja acima.

Michael M
fonte
1
Obrigado! Para confirmar, no contexto do CV, pode-se ter 80% de treinamento versus 20% de teste. Então, pode-se construir um modelo com 80% dos dados e testar com os 20% para obter a precisão. Para experimentar diferentes variações de modelo, é possível fazer um CV de 10 vezes no conjunto de dados de treinamento (80% dos dados) - treinando efetivamente 8% do total de dados e testando contra 72% do total de dados em cada dobra. Com base nos resultados do CV, é possível identificar os valores ideais dos hiperparâmetros e usá-los para criar um novo modelo treinado em todos os dados de treinamento (80% do conjunto de dados completo) e testar contra os 20% restantes. Corrigir?
blu
3
Sim, exceto que, em cada execução de currículo, você usaria 72% para treinamento e 8% para validação ;-) #
Michael M Michael
Resposta impressionante @MichaelM. Eu estava lendo sobre validação cruzada aninhada (NCV) e estou tendo dificuldade para decidir se devo usá-lo ou apenas fazer o que você descreveu para o currículo. E só para que eu entenda, o NCV seria aplicado ao step3. Em vez de obter uma pontuação de 1 vencedor, você obtém K score de vitórias (multiplicando o total de corridas por K, passo 1-2 vezes K repetidas com 80% de dados de trem), que você pode calcular em média. Então, perguntas: 1) meu entendimento está correto? 2) é recomendado o uso de NCV?
precisa
Você está exatamente certo. O CV aninhado ajudará a obter estimativas mais confiáveis ​​do que a abordagem "simples" descrita acima. Se o tempo permitir, é definitivamente uma opção. Você sabe em qual conjunto de dados o modelo final é calculado no CV aninhado? Na íntegra?
Michael M
3

K validação cruzada fold é uma estratégia de (re) amostragem como muitas outras.

Dividir em treinamento / validação / teste também é uma estratégia de amostragem.

Você pode substituir o treinamento / validação por outra estratégia de amostragem. Em seguida, você executaria o fold CV em 80% dos dados e testaria nos 20% restantes.K

Você também pode aplicá-lo à parte de teste (isto é o que as pessoas chamam de validação cruzada aninhada), onde dobras são usadas para treinamento / validação e a outra para testar, e você as itera sobre as dobras.K1

Firebug
fonte