En la validación cruzada k-fold, ¿la submuestra de entrenamiento incluye un conjunto de prueba?

9

En esta página de Wikipedia en la subsección para la validación cruzada de K-fold dice "En la validación cruzada de k-fold, la muestra original se divide aleatoriamente en k submuestras de igual tamaño. De las k submuestras, se retiene una sola submuestra como datos de validación para prueba del modelo, y las restantes submuestras k - 1 se utilizan como datos de entrenamiento ". Los datos de prueba no están en la imagen en absoluto.

Mientras que en un libro que leí, el autor indica claramente

  1. Los datos completos se dividen en tres conjuntos: conjunto de entrenamiento, conjunto de prueba y conjunto de validación (o submuestras en lenguaje Wikipedias).
  2. De las k submuestras, una submuestra se retiene como datos de validación, otra submuestra se retiene como datos de prueba y las k-2 submuestras se usan como datos de entrenamiento.

¿Cual es verdad?

ozi
fuente
Nota al margen: "validación" tiene diferentes significados en diferentes campos. Algunos autores lo usan para indicar un tipo de prueba que se usa para seleccionar modelos (sugeriría que el conjunto de pruebas de optimización sería más intuitivo), mientras que en otros campos la validación significa demostrar que el modelo final es adecuado para su propósito.
Cbeleites descontento con SX

Respuestas:

11

Ambos son correctos en su propio contexto. Describen dos formas diferentes de selección de modelos en diferentes situaciones.

En general, cuando realiza la selección y prueba del modelo, sus datos se dividen en tres partes: conjunto de capacitación, conjunto de validación y conjunto de prueba. Utiliza su conjunto de entrenamiento para entrenar diferentes modelos, estima el rendimiento en su conjunto de validación, luego selecciona el modelo con un rendimiento óptimo y lo prueba en su conjunto de prueba.

Por otro lado, si está utilizando la validación cruzada K-fold para estimar el rendimiento de un modelo, sus datos se dividen en K fold, recorre los K fold y cada vez usa un fold como prueba (o validación) establece y usa los pliegues del resto (K-1) como conjunto de entrenamiento. Luego, promedia en todos los pliegues para obtener el rendimiento de prueba estimado de su modelo. A esto se refiere la página de Wikipedia.

Pero tenga en cuenta que esto es para probar un modelo específico, si tiene varios modelos candidatos y desea hacer la selección del modelo también, debe seleccionar un modelo solo con su conjunto de entrenamiento para evitar esta sutil falacia de lógica circular. Entonces divide sus 'datos de entrenamiento' (K-1) en dos partes, una para entrenamiento y otra para validación. Esto significa que hace una 'validación cruzada' adicional primero para seleccionar el modelo óptimo dentro de los pliegues (K-1), y luego prueba este modelo óptimo en su pliegue de prueba. En otras palabras, está realizando una validación cruzada de dos niveles, una es la validación cruzada K-fold en general, y dentro de cada bucle de validación cruzada, hay una validación cruzada adicional (K-1) para Selección de modelo. Luego tiene lo que dijo en su pregunta: 'De las k submuestras, una submuestra se retiene como datos de validación, otra submuestra se retiene como datos de prueba y las k-2 submuestras se usan como datos de entrenamiento'.

Yuanning
fuente
1
La validación cruzada de dos niveles también se conoce como validación cruzada doble o anidada. Si bien el CV anidado y las estrategias de dividir en 3 conjuntos son similares en el sentido de que ambos usan un conjunto de prueba para la selección / optimización y el otro para evaluar el rendimiento del modelo optimizado, no son lo mismo: la validación cruzada de pliegue k anidado construye k * k '(generalmente = k - 1) * no. de los modelos sustitutos de combinación de hiperparámetros probados, la estrategia directa de 3 series es solo una para cada combinación de hiperparámetros.
Cbeleites descontento con SX
(La cita Wiki no habla sobre el propósito de la validación en absoluto que puede ser diferente de la selección.)
cbeleites descontentos con SX
¿Puedes confirmar mis pseudocódigos?
ozi
1

Aquí vuelvo a decir lo que obtuve de la respuesta de @Yuanning y los comentarios de @cbeleites en forma de pseudocódigo. Esto puede ser útil para personas como yo.

Para medir el rendimiento de un modelo determinado solo necesitamos entrenamiento y conjuntos de prueba:

function measure_performance(model, full_test_set, k_performance):
    subset_list <- divide full_test_set into k_performance subsets
    performances <- empty array
    for each sub_set in subset_list:
        test_set <- sub_set
        training_set <- the rest of the full_test_set
        model <- train model with training_set
        performance <- test model with test_set
        append performance to performances
    end for each
    return mean of the values in peformances
end function

Pero si necesitamos hacer una selección de modelo, deberíamos hacer esto:

function select_model(data, k_select, k_performance):
    subset_list <- divide data into k_select subsets
    performances <- empty array
    for each sub_set in subset_list:
        validation_set <- assume that this sub_set is validation set
        test_set <- one other random sub_set (Question: How to select test_set)
        training_set <- assume remaining as training set
        model <- get a model with the help of training_set and validation_set
        performance <- measure_performance(model,test_set, k_performance)
    end for each
    return model with the best performance (for this, performances will be scanned)
end function
ozi
fuente
¿Se k_performancepretende que sea la etiqueta para un pliegue específico entre el número total de k_selectpliegues de rendimiento? Supongo que esto va a su pregunta sobre "Cómo seleccionar test_set". También agradecería comentarios específicos sobre esto. He visto esta validación cruzada 'anidada' para la selección del modelo aludida, pero nunca descrita en detalle.
clarpaul
En el contexto de la validación cruzada, el problema de la selección del modelo basado solo en los datos de entrenamiento (incluso si se validan de manera cruzada dentro de esos datos) se articula específicamente aquí: en.wikipedia.org/wiki/… . La afirmación (basada en varias referencias) es que las estimaciones de rendimiento con validación cruzada basadas totalmente en los datos de entrenamiento están sujetas a una gran variación (es decir, con respecto a la elección de los datos de entrenamiento), a pesar del procedimiento de validación cruzada.
clarpaul