Cómo modificar hiperparámetros en la plataforma Model ScreeningHola expertos de JMP,
La plataforma Model Screening me parece muy útil. Descubrí los hiperparámetros a través de la tabla de diseño de ajuste, por lo que me pregunto si hay una manera de modificar los hiperparámetros en la plataforma Model Screening, como JSL.
Si la plataforma no puede modificar los hiperparámetros, ¿puedo usar los parámetros predeterminados en el artículo?
Esperamos su respuesta
Modelado estadístico avanzadoRe: Cómo modificar hiperparámetros en la plataforma Model ScreeningHola @Wang123 ,
¡Bienvenidos a la Comunidad!
¿Has leído la documentación sobre Model Screening ? Para responder a su pregunta directamente, aquí está la respuesta en la Ayuda de JMP: " Las plataformas de modelado utilizan opciones predeterminadas y parámetros de ajuste en el ajuste del modelo. Puede intentar mejorar el ajuste más allá de lo que produce el valor predeterminado llamando a las plataformas directamente y eligiendo diferentes opciones. "
Entonces, de forma predeterminada, no puede ajustar los hiperparámetros en la plataforma Model Screening (quizás mediante JSL), y no es el uso de esta plataforma. Model Screening es AutoML, donde el objetivo es ajustar rápidamente una gran cantidad de tipos muy diferentes de modelos de aprendizaje automático, para comprender mejor qué tipo(s) de modelos parecen ajustarse correctamente a los datos. Una vez finalizada esta fase de exploración, puede utilizar las plataformas del modelo correspondiente para ajustar los hiperparámetros con tablas de diseño de ajuste y posiblemente mejorar aún más el rendimiento de su modelo.
Tenga en cuenta que los algoritmos de aprendizaje automático tienen distinta sensibilidad/robustez con respecto a las configuraciones de hiperparámetros: por ejemplo, los bosques aleatorios son uno de los algoritmos de aprendizaje automático más robustos, donde los hiperparámetros tienen poca influencia en su rendimiento. Consulte [1802.09596] Capacidad de ajuste: importancia de los hiperparámetros de los algoritmos de aprendizaje automático (arxiv.org)
Es posible que técnicamente puedas hacer lo que pretendes hacer, pero debes tener en cuenta varias advertencias:
- Es posible que deba usar validación cruzada anidada (si ya usa validación cruzada) o validación cruzada en su conjunto de entrenamiento (y usar el conjunto de validación para comparar el rendimiento de los modelos) si desea ajustar varios modelos y ajustarlos. La división de datos agregada está aquí para garantizar que no se esté sobreajustando con la optimización de hiperparámetros y que una parte de sus datos aún pueda usarse para comparar y seleccionar algoritmos de una manera justa y "lo más imparcial posible".
- Un posible problema con esta plataforma de selección de modelos es que la opción de validación cruzada es aleatoria por defecto. Dependiendo de su conjunto de datos y las distribuciones de sus características/entradas, esta puede no ser una opción sensata y no proporcionaría una evaluación y representatividad justas de su conjunto de datos. Una solución alternativa podría ser crear una columna de validación de fórmula estratificada (K-folds) y usarla en el panel de validación de la selección del modelo: Inicie la plataforma Make Validation Column (jmp.com)
- Si realmente desea probar y ajustar varios modelos con esta plataforma o cualquier plataforma AutoML, piense en la cantidad de modelos que deben instalarse y en el tiempo y los cálculos necesarios: deberá ajustar cada tipo de modelo seleccionado KxK' veces. (validación cruzada anidada con K = número de pliegues externos para la validación del modelo, K' = número de pliegues internos para el ajuste de hiperparámetros). Dependiendo de su conjunto de datos, su dimensionalidad y complejidad, este enfoque de "fuerza bruta" puede no ser razonable ni alcanzable.

Más recursos sobre validación cruzada anidada:
https://inria.github.io/scikit-learn-mooc/python_scripts/cross_validation_nested.html
https://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html
https://medium.com/@cd_24/a-guide-to-nested-cross-validation-with-code-step-by-step-6a8ad06d5af2#:~:text=Nested%20cross%2Dvalidation%20is%20a, interior%20bucle%20para%20hiperparámetro%20sintonización.
Mi consejo sería proceder de forma secuencial y utilizar la plataforma para lo que mejor hace, comparando algoritmos muy diversos y seleccionando los más prometedores. Luego, puede optimizar los hiperparámetros en los (pocos) modelos que parecen tener mejor rendimiento para mejorar un poco el rendimiento. Tenga cuidado en este proceso para evitar la fuga de datos, así que nunca use su conjunto de prueba hasta que se elija y optimice un modelo final, por ejemplo (o puede esperar resultados optimistas en su conjunto de prueba y malas sorpresas cuando el algoritmo se use en nuevos datos). .
Este proceso tiene más sentido para mí que utilizar un enfoque de fuerza bruta, ya que la optimización de los hiperparámetros no hará "mágicamente" que un algoritmo aprenda mucho mejor que un algoritmo/método más adecuado.
Espero que esta respuesta (aunque no sea directamente lo que esperarías) te ayude.
Re: Cómo modificar hiperparámetros en la plataforma Model ScreeningHola Víctor_G,
Gracias por tu respuesta que es muy inspiradora para mí. También puedo probar este enfoque, primero con la plataforma Model Screening y luego con el algoritmo apropiado.
Para evitar el sobreajuste, la validación cruzada K-fold es una buena forma para datos pequeños.Sin embargo, algunas plataformas de algoritmos (no Model Screening) no admiten la validación cruzada K-fold, como Bootstrap Forest, Boosted Tree y Baive Bayes. Por supuesto,La columna de validación de fórmula estratificada (K-folds) no encaja. Por lo tanto, unaDespués de seleccionar el algoritmo más prometedor en la plataforma Model Screening y la optimización de hiperparámetros, ¿puede compartir alguna experiencia sobre cómo entrenar mejor un modelo cuando se trata de datos pequeños?
Por último, después de hacer clic en el botón "Ejecutar seleccionado", descubrí que cada algoritmo en la plataforma Model Screening con validación cruzada K-fold puedegenerar automáticamente unPlegado de validación. Entonces, ¿puedo usar este Validation Fold en el mismo algoritmo con el mejor hiperparámetro para evitar el sobreajuste?
A la espera de saber de ti.
Re: Cómo modificar hiperparámetros en la plataforma Model ScreeningHola @Wang123 ,
Me alegra saber que mi respuesta fue útil.
Para utilizar con éxito el aprendizaje automático, debe configurar una estrategia y un marco para su proyecto de aprendizaje automático antes de comenzar cualquier análisis. La mayoría de las veces, los proyectos de Machine Learning pueden fallar porque el punto de partida (consideraciones de recopilación de datos) o la fase final (condiciones de prueba y monitoreo) no están bien considerados y definidos:
- Punto de partida : Piense en cómo recopiló sus datos: ¿Qué tan representativo es su conjunto de datos para la tarea que desea realizar? ¿En qué contexto se han recopilado los datos: en estudios observacionales o en experimentos controlados como el DoE? ¿El muestreo de datos y las distribuciones de características/variables son similares a lo que sucederá en el entorno del modelo (por ejemplo, rangos/niveles de variables, desequilibrio o equilibrio entre clases o valores, distribuciones de respuesta(s), rendimientos similares de los equipos de medición, incertidumbre en las mediciones, ...)?
Estas preguntas son solo algunos ejemplos de lo que debe considerar y definir al utilizar datos para el aprendizaje automático y pueden ayudarlo a gestionar sus expectativas.
- Fase final : necesitas saber cómo probarás tu modelo final. ¿Ya puede dividir su conjunto de datos y conservar una pequeña parte para fines de prueba, o planea adquirir nuevos datos para probar y monitorear el rendimiento de su modelo?
Aquí hay algunas otras recomendaciones y orientación relacionadas con sus preguntas, así como comentarios adicionales:
- Para evitar malentendidos, es importante saber cuáles son los usos y 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 de hiperparámetros, selección de características/umbrales, ... por ejemplo) y la selección del modelo.
- Conjunto de prueba : se utiliza para la generalización y evaluación del rendimiento predictivo del modelo seleccionado en datos nuevos o no vistos. En esta etapa no deberías tener varios modelos en competencia.
- En el caso de conjuntos de datos pequeños, existen varias opciones para realizar la validación de los modelos (comparación y selección de modelos):
- Si trabaja con conjuntos de datos pequeños, elija algoritmos simples. Generalmente, cuanto mayor sea el número de (hiper)parámetros en el modelo, mayor deberá ser su conjunto de datos de entrenamiento, ya que necesitará más datos para estimar con precisión cada uno de los (hiper)parámetros del modelo. Prefiero elegir algoritmos robustos cuando trato con conjuntos de datos pequeños, como bosques aleatorios, máquinas de vectores de soporte y regresión/clasificación generalizada.
Algunos artículos de LinkedIn que creé al respecto para obtener más explicaciones:- Bosques aleatorios
- SVM
Ambos algoritmos tienen pocos hiperparámetros para ajustar, rendimientos sólidos para el ajuste de hiperparámetros (consulte: https://arxiv.org/abs/1802.09596 mencionado anteriormente) o tienen especificidades de entrenamiento que los ayudan a evitar el sobreajuste y reducir la varianza de predicción (las muestras de arranque parte en Random Forest, por ejemplo).
No usaría árboles potenciados ni algoritmos potenciados, ya que su objetivo es reducir el sesgo (error sistemático) tanto como sea posible corrigiendo secuencialmente errores anteriores. Esto los convierte en algoritmos de predicción muy eficaces, pero son muy sensibles y están influenciados por el conjunto de entrenamiento, con posibles rendimientos de generalización deficientes y una alta varianza.
De manera más general, hay dos formas de abordar los algoritmos de ML:
- O el tamaño de su conjunto de datos, las restricciones y muchos otros criterios de selección reducen la cantidad de modelos y posibilidades, y usted simplemente prueba algunos modelos para seleccionar el más prometedor. Aquí hay una grabación de una presentación que di este año, con una mezcla de DoE que llena el espacio y el uso de aprendizaje automático: sinergia entre el diseño de experimentos y el aprendizaje automático para un dominio mejorado E... - Comunidad de usuarios de JMP Si miras el modelo elección, es posible que tenga algunas ideas sobre los criterios de selección para su propio proyecto.
- No tiene idea de qué modelo puede funcionar mejor y le gustaría tener una primera prueba/competencia de modelado exploratorio entre algoritmos. En este caso, puede intentar utilizar un subconjunto de sus datos (60-80 %) para entrenar los modelos y compararlos o, si su conjunto de datos es muy pequeño, utilizarlo en su totalidad con validación cruzada para realizar esta primera parte exploratoria. Una vez que identifique algoritmos prometedores, intente utilizar plataformas de modelos individuales con una estrategia de validación clara (validación cruzada estratificada de pliegues K con semilla fija para reproducibilidad, por ejemplo).
Como observación final sobre la validación cruzada y la forma en que se muestran los resultados, puede haber varias advertencias:
- Los resultados se mostrarán para cada pliegue. No ejecute un modelo entrenado y validado en un pliegue específico, eso se consideraría "hacer trampa", ya que está seleccionando la mejor división de datos para mejorar el rendimiento del modelo, lo que está sesgando el rendimiento general que espera tener en nuevos datos/pruebas. colocar.
- La validación cruzada de K-folds tiene un nombre engañoso, ya que no es propiamente un método de validación, sino más bien una "prueba de robustez" para ver cómo se comporta un modelo con diferentes particiones de datos. Ver: MFML 065 - Comprensión de la validación cruzada k-fold (youtube.com)
Entonces, la información importante en este paso no es el desempeño individual del modelo en cada pliegue, sino qué tan regulares y similares son los desempeños (rendimiento promedio y desempeño de desviación estándar en todos los pliegues). Si ve una discrepancia/alta variación en el resultado, eso puede indicar que el modelo puede no ser adecuado para su tarea y/o que sus datos tienen puntos individuales singulares (a verificar) que confunden el modelo y le impiden generalizar/encontrar patrones.
- Finalmente, una vez realizada la validación cruzada, no hay consenso sobre qué hacer con los resultados. Algunos vuelven a entrenar el modelo seleccionado en todo el conjunto de datos, otros ensamblan los modelos individuales entrenados en cada pliegue o apilan las predicciones... Aquí hay un enlace sobre esta fase de implementación Cómo pasar de la evaluación al modelo final (substack.com)
Elija la opción que tenga más sentido para usted.
También puede encontrar discusiones y respuestas complementarias en esta publicación: VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓN
Perdón por la extensión, espero que haya algo para ti en esta gran respuesta.:)
Re: Cómo modificar hiperparámetros en la plataforma Model ScreeningHola Víctor_G,
Gracias por tu ayuda. Cualquiera de las plataformas Model Screening con función de ajuste de hiperparámetros o todas las plataformas de modelos individuales con función K-fold pueden resolver fácilmente mi problema. Es una pena que a las dos plataformas les falten algunas funciones.
Después de pensarlo un poco, también me gustaría preguntar si los siguientes pasos son apropiados:
(1) muestreo estratificado con 80% de entrenamiento y 20% de conjunto de pruebas.
(2) En el conjunto de entrenamiento (80%), entrené múltiples algoritmos de aprendizaje automático con validación cruzada K-folden la plataforma Model Screening. Por supuesto, este paso utiliza los hiperparámetros predeterminados. Después de comparar, encontré que parte del algoritmo era óptimo, como Bootstrap Forest.
(3) Luego, aclaré los hiperparámetros óptimos de Bootstrap Forest a través de la tabla de diseño de ajuste.
(4) En el conjunto de entrenamiento (80%), reajusté el algoritmo Bootstrap Forest con hiperparámetros óptimos. Por supuesto, también puedo adaptarme a otros algoritmos.
(5) En el conjunto de pruebas (20%), evalué más a fondo el rendimiento del modelo de Bootstrap Forest y otros algoritmos.
¿Los pasos anteriores son apropiados en JMP?
En el paso 2, ¿puedo simplemente informar los resultados de las comparaciones de modelos (resultados de la validación cruzada K-fold) con los hiperparámetros predeterminados en el artículo? Por supuesto, sabemos que muchos artículos comienzan con el paso 3 y luego con el paso 2, por lo queinformar los resultados de las comparaciones de modelos con hiperparámetros óptimos.
En el paso 4, no configuré ningún método de validación cruzada, ¿es correcto? ¿O hay otra manera?
A la espera de saber de ti.
Re: Cómo modificar hiperparámetros en la plataforma Model ScreeningHola Víctor_G,
Tu respuesta es muy significativa. Sé cómo hacer una columna de validación de K-Folds. Hasta donde yo sé, algunas plataformas de algoritmos no admiten la validación cruzada K-fold, como Bootstrap Forest, Boosted Tree y Baive Bayes. Esto está disponible en la Ayuda de JMP en https://www.jmp.com/support/help/en/18.0/index.shtml#page/jmp/kfold-and-holdback-validation.shtml . En este caso, tengo que dividir nuestros pequeños datos en un conjunto de entrenamiento, validación y prueba. ¿Existe alguna forma de utilizar la validación cruzada de K-folds en estas plataformas de algoritmos (Bootstrap Forest, Boosted Tree y Baive Bayes)?
Como dijiste "Los resultados se mostrarán para cada pliegue. No ejecutes un modelo entrenado y validado en un pliegue específico, eso se consideraría trampa...", y otro dijo "Finalmente, una vez realizada la validación cruzada, hay "No hay consenso sobre qué hacer con los resultados. Algunos reentrenan el modelo seleccionado en todo el conjunto de datos, otros ensamblan los modelos individuales entrenados en cada pliegue". No sé qué forma es más apropiada, ¿entrenar en un pliegue específico o en un conjunto de entrenamiento completo?
A la espera de saber de ti.
Re: Cómo modificar hiperparámetros en la plataforma Model ScreeningHola @Wang123 ,
Lo sentimos, tienes razón sobre el uso restringido de la columna de validación cruzada K-folds en algunas plataformas de modelado.
Una posible solución es crear una fórmula de columna de validación común (muestreo estratificado con 80 % de entrenamiento y 20 % de validación), usarla en la plataforma del modelo y usar la función "Simular" para generar muchas muestras y resultados de validación cruzada para evaluar la solidez. He descrito la metodología en otra publicación: Resuelto: Re: ¿Cómo puedo automatizar y resumir muchas validaciones repetidas en una pestaña de salida? - Comunidad de usuarios de JMP
Con respecto a su segunda pregunta, mi opinión personal sería acumular predicciones de modelos individuales, de modo que cada modelo individual tenga la misma contribución a la predicción final. Este parece ser el enfoque más neutral y permitiría reducir el sesgo y (principalmente) la varianza (enfoque de " sabiduría de la multitud "), así como la prevención del sobreajuste. También podría ser una buena oportunidad para estimar intervalos de predicción de incertidumbre gracias a las contribuciones de los modelos individuales.
El conjunto sería demasiado complejo para conjuntos de datos pequeños, ya que la combinación de los modelos individuales necesitaría una validación adicional para garantizar que el modelo de conjunto final no se sobreajuste y sea capaz de generalizarse.
Dependiendo de su conocimiento profundo sobre los algoritmos de ML, también se podría usar la opción de usar todo el conjunto de datos y entrenar el modelo final en él, y comparar los resultados del modelo con validación cruzada con el modelo "no validado" para detectar cualquier signo. de sobreajuste.
Nuevamente, el uso de modelos simples y técnicas de regularización/restricción ayudan enormemente a prevenir el sobreajuste.
Espero que esta respuesta te ayude,
Re: Cómo modificar hiperparámetros en la plataforma Model ScreeningHola @Wang123 ,
Los pasos 1) y 2) me parecen apropiados.
Los pasos 3) y 4) podrían combinarse para encontrar hiperparámetros óptimos de varios modelos, evaluarlos, compararlos y seleccionar un modelo final. También necesita una estrategia de validación para este paso, ya que la optimización de los hiperparámetros sin ninguna validación conduciría a un sobreajuste. Dependiendo de los resultados de esta optimización de hiperparámetros en los conjuntos de validación (¿K-folds?), se selecciona un algoritmo que parece ser el más apropiado.
Dependiendo de su estrategia de validación, puede mantener el algoritmo entrenado tal como está (si ha usado un conjunto de validación para comparar y seleccionar un modelo), o puede apilar modelos si ha usado validación cruzada K-folds (para obtener el promedio). predicción a partir de los modelos individuales).
En el paso 5, evalúa el rendimiento de su modelo final con datos nuevos e invisibles. En esta etapa, solo debería haber 1 algoritmo/modelo. La validación se utiliza para comparar y seleccionar un modelo, no la fase de prueba.
Respecto a sus preguntas:
"En el paso 2, ¿puedo simplemente informar los resultados de las comparaciones de modelos (resultados de la validación cruzada K-fold) con los hiperparámetros predeterminados en el artículo?" : Depende de lo que quieras mostrar/demostrar. Si desea explicar por qué ha elegido algunos modelos específicos, puede utilizar los resultados del paso 2. Tiene más sentido comparar los resultados de los pasos 2 y 3 en los algoritmos seleccionados si desea resaltar la importancia y el beneficio del ajuste de hiperparámetros. (lo cual no siempre es importante para algunos modelos robustos como Random Forests).
"En el paso 4, no configuré ningún método de validación cruzada, ¿es correcto? ¿O hay otra manera?" No recomendaría reajustar todo el conjunto de entrenamiento, a menos que utilice algoritmos sólidos y tenga métricas para garantizar que no esté sobreajustando. Los bosques aleatorios suelen ser buenos ejemplos de algoritmos robustos y tienen validación interna (para una respuesta continua) a través de muestras listas para usar: https://www.jmp.com/support/help/en/17.2/#page/jmp/overview -de-la-plataforma-bosque-bootstrap.shtml#
La comparación de métricas de las muestras dentro y fuera de la bolsa puede ayudarle a evaluar si su Random Forest puede tener un sobreajuste.
Si está utilizando un algoritmo diferente y/o no está seguro de su solidez, simplemente mantenga su modelo optimizado (¡y validado!) del paso anterior (o los modelos apilados si estaba usando la validación cruzada de K-folds).
Espero que esta última respuesta te ayude,
PD: No olvide "Aceptar como solución" las respuestas si le resultaron útiles; es una buena manera para que otros usuarios de JMP lleguen rápidamente a la solución sin tener que leerlo todo.
Re: Cómo modificar hiperparámetros en la plataforma Model ScreeningHola Víctor_G,
¡Gracias por tu preciosa perspectiva! Estos son muy útiles para mí.