VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNCuando usamos el método de la columna de validación para la validación cruzada, dividimos el conjunto de datos en conjuntos de entrenamiento, validación y prueba. Esta relación de división la especifica el usuario. ¿Hay alguna pauta/referencia para decidir sobre la relación de división (como 60:20:20/70:15:15/50:25:25/80:10:10)? ¿Se elige también en función del número total de observaciones -N?
Fusión y limpieza de datosModelado predictivo y aprendizaje automáticoRe: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNA su pregunta original, no, no hay reglas específicas sobre la cantidad de datos que se deben omitir. En los cursos de análisis de JMP Education, le recomendamos que mantenga la mayor cantidad de datos con los que se sienta cómodo, con al menos un 20 % reservado. Si cree que el conjunto de entrenamiento es demasiado pequeño para retener tantas filas, considere la validación cruzada de k-fold. ¿Cuántas filas está dispuesto a sacrificar para la validación? Use k = n / esa cantidad de filas. Si k < 5 usando esa fórmula, considere la validación cruzada dejando uno fuera.
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNDe nada @sreekumarp .
Si considera una o varias de estas respuestas como solución(es), no dude en marcarlas como solución(es), para ayudar a los visitantes de la Comunidad JMP a encontrar más fácilmente las respuestas que buscan.
Si tienes más dudas o algún caso concreto sobre el que te gustaría algún consejo, no dudes en responder sobre este tema o crear uno nuevo.
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNGracias por su entrada en la columna de validación cruzada.
Sreekumar Punnappilly
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNGracias por proporcionar una entrada detallada sobre la división de los conjuntos de datos en el aprendizaje automático. Estoy seguro de que esto ayudará en mi investigación.
Sreekumar Punnappilly
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNHola @Victor_G ,
Sí, creo que puede haber algún tipo de malentendido. Tal vez debería decir que hay un conjunto de datos reservados en lugar de un conjunto de datos de prueba. El conjunto de datos reservados son datos que nunca se usaron en el entrenamiento, la validación o la selección de un modelo de un algoritmo dado (conjunto de prueba). Utilizo este conjunto de espera para comparar los diferentes algoritmos entre sí para ver qué algoritmo funciona mejor. La plataforma de comparación de modelos de JMP es muy útil para comparar los diferentes algoritmos entre sí mediante un conjunto de exclusión. Esto permite una comparación imparcial y sin fugas de los diferentes algoritmos. Por lo tanto, se convierte en una especie de conjunto de datos de "prueba" en el sentido de que el conjunto de datos de reserva se utiliza para ver cuál de los diferentes algoritmos funciona mejor en este conjunto de datos "puro".
Esta es la única forma que conozco de comparar diferentes algoritmos entre sí en JMP. Lo que quiero decir es que esta es la única forma en que JMP puede comparar un algoritmo de red neuronal con un algoritmo XGBoost, por ejemplo. Nunca usaría ni recomendaría usar el conjunto de datos de reserva para comparar diferentes modelos dentro de una plataforma. No compararía los 20 modelos sintonizados diferentes dentro de la plataforma de bosque de arranque entre sí utilizando el conjunto de retención, ese sería el propósito del conjunto de datos de prueba.
Entonces, lo siento si hubo algún malentendido/confusión. Intentaré referirme a él como el conjunto reservado de ahora en adelante para evitar confusiones con el conjunto de prueba.
¡Gracias por la discusión!,
SD
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNBuen punto sobre el muestreo estratificado @SDF1 !
Lo siento, no usamos el mismo nombre o hay un malentendido.
Si trae varios modelos en el conjunto de prueba para compararlos (y selecciona uno), ese es un problema y no el propósito de este conjunto, sin importar las plataformas o modelos utilizados. La comparación de modelos debe realizarse en el conjunto de validación (para mantener un conjunto de prueba claro y "puro" sin fugas de información ni sesgos), de ahí mi respuesta anterior con algunos recursos sobre este tema.
Consulte la Ayuda de JMP que también hace hincapié en las diferencias entre conjuntos: "El conjunto de prueba verifica la capacidad predictiva del modelo después se ha elegido un modelo". : https://www.jmp.com/support/help/en/17.1/index.shtml#page/jmp/overview-of-the-make-validation-column-platform.shtml#ww269465
Esta es también una razón de la importancia de definir bien los diferentes conjuntos y fijarlos o el método, para evaluar correctamente diferentes modelos en el mismo conjunto de validación (o mismo método).
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNHola @Victor_G ,
Lo siento si no quedó claro, pero en realidad nos referimos a lo mismo. Cuando mencioné modelos antes, me refiero a generar modelos utilizando la misma configuración de prueba/validación, pero también en diferentes plataformas en JMP. Nunca construyo modelos con una sola plataforma en mente, sino que genero y afino modelos usando las diferentes plataformas (p. ej., NN, BT, Bootstrap Forest, SVM, KNN y XGBoost) y la validación cruzada con los conjuntos de entrenamiento y validación. Luego, después de generar los diferentes modelos, comparo su capacidad de predicción en el conjunto de datos de reserva (prueba), un conjunto de datos que ninguno de los modelos ha visto durante sus pasos de entrenamiento y validación. A veces, NN funciona mejor y, a veces, es XGBoost o alguna otra plataforma.
Por último @sreekumarp , una cosa que olvidé mencionar en mi publicación anterior es que realmente ayuda a estratificar su columna de validación cruzada usando su columna de salida, la columna que está tratando de predecir. Esto mantiene una estructura de distribución similar para sus conjuntos de datos de entrenamiento, validación y prueba. A veces esto no se puede hacer, especialmente con conjuntos de datos muy desequilibrados, pero si es posible, lo recomiendo encarecidamente. De lo contrario, los datos se colocan aleatoriamente en cada tipo de conjunto de datos, y esto podría conducir a una columna de validación mal dividida, lo que a menudo puede conducir a modelos deficientes.
SD
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNHola @SDF1 ,
Una corrección menor a la gran adición que proporcionó: el conjunto de validación es el conjunto utilizado para la comparación y selección de modelos, no el conjunto de prueba (pero a veces los nombres de prueba y validación se usan de manera alternativa o confusa).
Estos dos conjuntos tienen propósitos muy diferentes:
- El conjunto de prueba es la parte reservada de los datos, no se usa antes haber seleccionado un modelo, para proporcionar una estimación imparcial de la generalización del modelo y el rendimiento predictivo.
- El conjunto de validación es una parte de los datos utilizados para el ajuste fino del modelo y la comparación de modelos, con el fin de seleccionar el mejor modelo candidato.
Aquí se da una explicación: aprendizaje automático: ¿puedo usar el conjunto de datos de prueba para seleccionar un modelo? - Intercambio de pila de ciencia de datos
Dos explicaciones a esta diferencia de uso:
- Práctico: en las competencias de ciencia de datos, no tiene acceso al conjunto de datos de prueba, por lo que para crear y seleccionar el algoritmo de mejor rendimiento, debe dividir sus datos en el conjunto de entrenamiento y validación, y "esperar" tener un buen rendimiento ( y generalización) en el conjunto de prueba invisible.
- Uno teórico: si está utilizando un conjunto de prueba para comparar modelos, en realidad está haciendo una fuga de datos/información, ya que puede mejorar sus resultados en el conjunto de prueba con el tiempo seleccionando el algoritmo de mejor rendimiento en el conjunto de prueba (y luego, tal vez continúe ajustándolo en función del rendimiento de los datos de prueba o pruebe con otros modelos...). Por lo tanto, su conjunto de prueba ya no es imparcial, ya que la elección del algoritmo (y quizás otras acciones realizadas después de la selección) se realizará sobre esto.
El conjunto de prueba suele ser el último paso entre la creación/desarrollo del modelo y su implementación en producción o publicación, por lo que la evaluación final debe ser lo más justa e imparcial posible.
Algunos recursos en los conjuntos: Conjuntos de capacitación, prueba y validación (mlu-explain.github.io)
MFML 071 - ¿Cuál es la diferencia entre prueba y validación? - YouTube
Espero que esto pueda evitar cualquier confusión en el nombre y el uso de los conjuntos,
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNHola @sreekumarp ,
Además de lo que @Victor_G escribió, también recomendaría encarecidamente que divida su conjunto de datos de prueba y cree una nueva tabla de datos con él. De esa manera, cuando entrena y valida sus modelos, puede compararlos en la tabla de datos de retención de prueba para ver qué modelo funciona mejor. Esto reduce cualquier posibilidad de que el conjunto de datos de prueba pueda usarse accidentalmente en los conjuntos de entrenamiento o validación.
También hay otras formas en que puede usar datos simulados para entrenar sus modelos y luego probar los modelos en los datos reales. A veces utilizo este enfoque cuando el conjunto de datos original es pequeño y necesito mantener la estructura de correlación de las entradas.
¡Buena suerte!,
SD
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNHola @sreekumarp ,
Pregunta interesante, y me temo que no tendré una respuesta definitiva con respecto a su pregunta, ya que depende del conjunto de datos, los tipos de modelo a considerar y las prácticas/hábitos del analista (o la persona que realiza el análisis).
Primero, es importante saber cuál es el uso y las necesidades entre cada conjunto:
- Conjunto de entrenamiento : Utilizado para el entrenamiento real de los modelos,
- Conjunto de validación: se utiliza para la optimización del modelo (ajuste fino de hiperparámetros, selección de características/umbral,... por ejemplo) y selección de modelo,
- Conjunto de prueba: se utiliza para la generalización y la evaluación predictiva del rendimiento del modelo seleccionado en datos nuevos/no vistos.
Hay varias opciones/métodos para dividir sus datos según sus objetivos y el tamaño de su conjunto de datos:
- Conjuntos de entrenamiento/validación/prueba : conjuntos fijos para entrenar, optimizar y evaluar el rendimiento del modelo. Recomendado para conjuntos de datos más grandes.
- Validación cruzada de pliegues K : Dividir el conjunto de datos en K pliegues. El modelo se entrena K veces, y cada pliegue se usa K-1 veces para el entrenamiento y 1 vez para la validación. Permite evaluar la solidez del modelo, ya que el rendimiento debe ser equivalente en todos los pliegues.
- Validación cruzada Leave-One-Out : Caso extremo de la validación cruzada K-fold, donde K = N (número de observaciones). Se usa cuando tiene un conjunto de datos pequeño y desea evaluar si su modelo es robusto.
- Modelo de conjunto de autovalidación/autovalidación: en lugar de separar algunas observaciones en diferentes conjuntos, usted asocia cada observación con un peso para el entrenamiento y la validación (un mayor peso en el entrenamiento induce un menor peso en la validación, lo que significa que esta observación se utilizará principalmente para el entrenamiento). y menos para la validación), y luego repita este procedimiento variando el peso. Se usa para conjuntos de datos muy pequeños y/o conjuntos de datos en los que no se pueden dividir de forma independiente algunas observaciones entre diferentes conjuntos: por ejemplo, en Diseño de experimentos, el conjunto de experimentos a realizar puede basarse en un modelo y, de ser así, debe no se pueden dividir de forma independiente algunas ejecuciones entre entrenamiento y validación, ya que sesgará el modelo de manera negativa; las ejecuciones necesarias para estimar los parámetros no estarán disponibles, lo que reducirá drásticamente el rendimiento del modelo.
Todos estos enfoques son compatibles con JMP: Inicie la plataforma de columna de validación Make (jmp.com)
Como regla general, a menudo se usa una proporción de 70/20/10.Puedes leer el periódico " Proporción óptima para la división de datos " aquí para tener más detalles.En general, cuanto mayor sea la cantidad de parámetros en el modelo, mayor será su conjunto de datos de entrenamiento, ya que necesitará más datos para estimar con precisión cada uno de los parámetros en el modelo, por lo que la complejidad/tipo de modelo también es algo a considerar. al crear conjuntos de entrenamiento/validación/prueba.
Si tiene un caso de uso más preciso, tal vez esto podría ser más útil y menos general para brindarle alguna orientación.
También recomiendo encarecidamente la lista de reproducción "Making Friends with Machine Learning" de Cassie Kozyrkov para obtener más información sobre el entrenamiento, la validación y las pruebas de modelos: Haciendo amigos con el aprendizaje automático - YouTube
Espero que esta primera respuesta te ayude,
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNGracias.
En realidad, hay dos puntos que deben aclararse para la validación cruzada K-fold (CV) y la validación de dejar uno fuera (LOO) utilizando regresión rutinaria en JMP Pro.
Ambos métodos están disponibles directamente en la sección PLSR (regresión de mínimos cuadrados parciales), pero existe cierta ambigüedad sobre qué hacer y cómo visualizar las métricas si se aplican validación cruzada (CV) o validación cruzada de exclusión de orden (LOO) para una regresión simple. Por ejemplo, estoy analizando espectros y la PCR y la PLSR se utilizan habitualmente en este proceso quimiométrico.

He tenido una experiencia un tanto extraña. Sin embargo, después de crear una columna de validación de 4 pliegues (arriba, 4 pliegues en 72 observaciones) y ejecutar PCR (respuesta numérica y componentes principales como predictores), recibo el siguiente mensaje de error:
Por lo tanto, no se realiza ningún CV real, ¿verdad?
El segundo punto: ¿cómo construir una validación LOO (una columna?) para PCR?
En general, ¿podrían aconsejarme sobre cómo realizar una validación cruzada y una validación cruzada de exclusión de un elemento (leave-one-out) adecuadas para una regresión típica y obtener métricas de ajuste correctas? Es muy importante, pero aún no me resulta obvio.
¡Muchas gracias, compañeros!
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNHola @Nazarkovsky ,
Probablemente hubiera sido más fácil iniciar una nueva publicación en lugar de responder a esta publicación antigua, ya que habría proporcionado mayor visibilidad y habría permitido que otros usuarios de JMP se unieran a la discusión sobre su pregunta.
Sí, a veces se producen errores en las plataformas de modelado JMP al usar la columna de validación cruzada K-Folds fija, ya que JMP suele reconocer 2 niveles (entrenamiento y validación o prueba) o 3 niveles (entrenamiento, validación y prueba) de la columna de validación. En el mensaje de error que recibes, no se realiza ninguna validación cruzada; se ajusta un modelo lineal a todos tus datos.
Dado que está utilizando un modelo lineal muy simple, tal vez pueda intentar utilizar la plataforma Selección de modelos (que también incluye PLS si desea comparar los resultados de los diferentes modelos), especificando sus X, su respuesta Y, su columna de validación de 4 pliegues (o realizando la validación cruzada directamente desde la plataforma) y el tipo de modelo que desea ajustar (opciones de modelos de regresión lineal + opciones de modelado):

O bien, directamente con la opción de validación cruzada K-folds de la plataforma, puede obtener estos resultados:

Si desea ejecutar una validación cruzada de exclusión de un elemento (Leave-One-Out), especifique simplemente K=n (donde n es el número de ejecuciones en su tabla). Si desea acceder a los resultados de cada pliegue, puede adaptar la solución que proporcioné aquí a su plataforma de modelado: Acceso a métricas fuera del pliegue para la validación cruzada de K pliegues.
Finalmente, veo al menos un problema importante en tu flujo de trabajo de modelado que podría provocar fugas de datos: necesitas aplicar la validación cruzada o tu estrategia de división/validación también en tu análisis de componentes principales. Si no lo haces, el PCA verá todo el conjunto de datos y aprenderá las correlaciones entre los factores de todo el conjunto de datos, y el modelo lineal que estás ajustando después (y evaluando gracias a la validación cruzada) se beneficiará de toda la información del conjunto de datos, no de la información de 3 de los 4 pliegues. Dado que JMP aún no ha implementado un rol de validación para PCA, por eso he añadido esta lista de deseos, para evitar fugas de datos y posibles errores en flujos de trabajo de modelado como el tuyo: Añadir la opción de rol de validación en la plataforma de análisis de componentes principales. En resumen, deberías:
- Defina y aplique una estrategia de validación (CV, LOO o división estándar de entrenamiento/validación o entrenamiento/validación/prueba).
- Preprocese los datos solo en el conjunto de entrenamiento (o preprocese los datos varias veces dependiendo de las particiones utilizadas).
- Ajusta un modelo utilizando la misma estrategia de validación con los datos preprocesados del conjunto de entrenamiento (o de los pliegues de entrenamiento correspondientes).
Espero que esta respuesta te ayude.
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNEn cualquier caso, la sección de validación cruzada k-fold en JMP sigue siendo deficiente. Me pregunto por qué los desarrolladores no le prestan atención, ya que este método de validación es una herramienta fundamental para la evaluación preliminar de cualquier modelo, especialmente con pocos datos. Además, en la opción para crear una columna de validación cruzada k-fold, es imposible realizar una validación cruzada de 3 pliegues; el valor mínimo es 4.
Tampoco me gusta el informe de JMP sobre las métricas de CV, ya que no hay una opción/botón final para crear una columna "Predicho" después de todas las ejecuciones como resultado promedio y compararla con los valores predichos proporcionados por la Regresión Generalizada o PLSR.
En cuanto a la validación del PCA, esta opción se encuentra en Unscrambler, un software tradicional para quimiometría (análisis multivariante de datos químicos, como espectros). Sí, la validación se realiza comparando el número preestablecido de componentes con la varianza explicada. Para esta prueba de fugas, uso Unscrambler.
Aquí en la comunidad hay una serie de publicaciones de JMP dedicadas al análisis de espectros, pero aún falta una discusión exhaustiva sobre CV y PCR.
Sin embargo, en quimiometría, siempre se aplican SVR (regresión de vectores de soporte), PLSR y PCR, y se comparan sus métricas.
Gracias a LOO, funciona perfectamente.
Re: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓNEn cualquier caso, la validación cruzada k-fold en JMP sigue siendo deficiente. Me pregunto por qué los desarrolladores no le prestan atención, ya que este método de validación es una herramienta fundamental para la evaluación preliminar de cualquier modelo, especialmente con pocos datos. Además, en la opción adecuada para crear una columna de validación cruzada k-fold, es imposible realizar una validación cruzada de 3 pliegues; el valor mínimo es 4.
Tampoco me gusta el informe de JMP sobre las métricas de CV, ya que no hay una opción/botón final para crear una columna "Predicho" después de todas las ejecuciones como resultado promedio y compararla con los valores predichos proporcionados por la Regresión Generalizada o PLSR.
En cuanto a la validación del PCA, esta opción se encuentra en Unscrambler, un software tradicional para quimiometría (análisis multivariante de datos químicos, como espectros). Sí, la validación se realiza comparando el número de componentes con la varianza explicada. Para esta prueba de fugas, uso Unscrambler.
Aquí en la comunidad hay una serie de publicaciones de JMP dedicadas al análisis de espectros, pero aún falta una discusión exhaustiva sobre CV y PCR.
Sin embargo, en quimiometría, siempre se aplican SVR (regresión de vectores de soporte), PLSR y PCR, y se comparan sus métricas.
Gracias a LOO, funciona perfectamente.