Optimizar los hiperparámetros del modelo
Importante
El soporte técnico de Machine Learning Studio (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning antes de esa fecha.
A partir del 1 de diciembre de 2021 no se podrán crear recursos de Machine Learning Studio (clásico). Hasta el 31 de agosto de 2024, puede seguir usando los recursos de Machine Learning Studio (clásico) existentes.
- Consulte la información acerca de traslado de proyectos de aprendizaje automático de ML Studio (clásico) a Azure Machine Learning.
- Más información sobre Azure Machine Learning.
La documentación de ML Studio (clásico) se está retirando y es posible que no se actualice en el futuro.
Realiza un barrido de parámetros en un modelo para determinar la configuración óptima de parámetros
Categoría: Machine Learning/Entrenar
Nota:
Solo se aplica a: Machine Learning Studio (clásico)
Hay módulos para arrastrar y colocar similares en el diseñador de Azure Machine Learning.
Información general sobre el módulo
En este artículo se describe cómo usar el módulo Optimizar hiperparámetros del modelo en Machine Learning Studio (clásico) para determinar los hiperparámetros óptimos para un modelo de aprendizaje automático determinado. El módulo compila y prueba varios modelos, con diferentes combinaciones de valores de configuración, y compara las métricas de todos los modelos para obtener la combinación de los valores de configuración.
Los términos parámetro e hiperparámetro pueden ser confusos. Los parámetros de modelo son los que se establecen en el panel de propiedades. Básicamente, este módulo realiza un barrido de parámetros sobre la configuración de parámetros especificada, y aprende un conjunto óptimo de hiperparámetros, que pueden ser diferentes para cada árbol de decisión, conjunto de datos o método de regresión específicos. El proceso de búsqueda de la configuración óptima a veces se denomina de optimización.
El módulo admite dos métodos para buscar la configuración óptima de un modelo:
Entrenamiento y ajuste integrados: configure un conjunto de parámetros que se usarán y, a continuación, deje que el módulo itera en varias combinaciones, midiendo la precisión hasta que encuentre un modelo "mejor". Con la mayoría de los módulos de aprendizaje, se puede elegir qué parámetros se deben cambiar durante el proceso de entrenamiento y cuáles deben permanecer fijos.
Dependiendo del tiempo que quiera que se ejecute el proceso de optimización, puede decidir probar exhaustivamente todas las combinaciones, o bien puede acortar el proceso estableciendo una cuadrícula de combinaciones de parámetros y probando un subconjunto aleatorio de la cuadrícula de parámetros.
Validación cruzada con ajuste: con esta opción, los datos se dividen en un número de plegados y, a continuación, se compilan y prueban modelos en cada plegado. Este método proporciona la mejor precisión y puede ayudar a encontrar problemas con el conjunto de datos. sin embargo, el entrenamiento tarda más tiempo.
Ambos métodos generan un modelo entrenado que puede guardar para volver a usarlo.
Tareas relacionadas
Si va a crear un modelo de agrupación en clústeres, use La agrupación en clústeres de barrido para determinar automáticamente el número óptimo de clústeres y otros parámetros.
Antes de la optimización, aplique la selección de características para determinar las columnas o variables que tienen el valor más alto de la información. Para más información, consulte Feature Selection.
Cómo configurar la optimización de los hiperparámetros del modelo
Por lo general, el aprendizaje de los hiperparámetros óptimos para un modelo de aprendizaje automático determinado requiere una experimentación considerable. Este módulo admite el proceso de ajuste inicial y la validación cruzada para probar la precisión del modelo:
Búsqueda de parámetros de modelo óptimos mediante un barrido de parámetros
Realización de la validación cruzada durante un barrido de parámetros
Entrenar un modelo con un barrido de parámetros
En esta sección se describe cómo realizar un barrido de parámetros básico, que entrena un modelo mediante el módulo Optimizar hiperparámetros del modelo.
Agregue el módulo Optimizar hiperparámetros del modelo al experimento en Studio (clásico).
Conectar un modelo sin entrenar (un modelo en el formato iLearner) en la entrada situada más a la izquierda.
Establezca la opción Crear modo de entrenador en el Intervalo de parámetros y use el Generador de intervalos para especificar un intervalo de valores que se va a usar en el barrido de parámetros.
Casi todos los módulos de clasificación y regresión admiten un barrido de parámetros integrado. En el caso de los aprendizajes que no admiten la configuración de un rango de parámetros, solo se pueden probar los valores de los parámetros disponibles.
Puede ajustar manualmente el valor de uno o más parámetros y, luego realizar el barrido de los parámetros restantes. Esto puede ahorrar tiempo.
Agregue el conjunto de datos que desea usar para el entrenamiento y conéctelo a la entrada de Optimizar los hiperparámetros del modelo.
Opcionalmente, si tiene un conjunto de datos etiquetado, puede conectarlo al puerto de entrada situado más a la derecha (Conjunto de datos de validación opcional). Esto le permite medir la precisión durante el entrenamiento y la optimización.
En el panel Propiedades de Optimizar hiperparámetros del modelo, elija un valor para Modo de barrido de parámetros. Esta opción controla la manera en la que se seleccionan los parámetros.
- Cuadrícula completa: Al seleccionar esta opción, el módulo recorre en bucle una cuadrícula predefinida por el sistema para probar diferentes combinaciones e identificar el mejor aprendizaje. Esta opción es útil para los casos en los que no sabe cuál podría ser la mejor configuración de parámetros y desea probar todas las combinaciones posibles de valores.
También puede reducir el tamaño de la cuadrícula y ejecutar un barrido de cuadrícula aleatorio. La investigación ha demostrado que este método produce los mismos resultados, pero es más eficaz a nivel computacional.
- Barrido aleatorio: Cuando seleccione esta opción, el módulo elegirá aleatoriamente los valores de parámetro en un intervalo definido por el sistema. Debe especificar el número máximo de ejecuciones que desea que realice el módulo. Esta opción es útil para los casos en los que desea aumentar el rendimiento del modelo con las métricas de su elección pero conservando los recursos informáticos.
En Columna de etiqueta, inicie el selector de columnas para elegir una sola columna de etiqueta.
Elija una sola métrica para usarla en la clasificación de los modelos.
Al ejecutar un barrido de parámetros, se calculan todas las métricas aplicables para el tipo de modelo y se devuelven en el informe de resultados de barrido. Se usan métricas independientes para los modelos de clasificación y regresión.
Sin embargo, la métrica que elija determina la clasificación de los modelos. Solo el modelo superior, clasificado por la métrica elegida, se genera como un modelo entrenado que se usará para la puntuación.
En la Inicialización aleatoria, escriba un número para que se use al inicializar el barrido de parámetros.
Si está entrenando un modelo que admite un barrido de parámetros integrado, también puede establecer un intervalo de valores de valor para usar e iterar también en las valoradas aleatorias. Esto puede ser útil para evitar el sesgo introducido por la selección de la ed.
Ejecute el experimento.
Resultados de la optimización de hiperparámetros
Cuando se complete el entrenamiento:
Para ver un conjunto de métricas de precisión del mejor modelo, haga clic con el botón derecho en el módulo, seleccione Resultados del barrido y, luego seleccione Visualizar.
Todas las métricas de precisión aplicables al tipo de modelo son salidas, pero la métrica seleccionada para clasificación determina qué modelo se considera "mejor". Las métricas solo se generan para el modelo de clasificación superior.
Para ver la configuración derivada del modelo "mejor", haga clic con el botón derecho en el módulo, seleccione Trained best model (Entrenar mejor modelo) y, a continuación, haga clic en Visualize (Visualizar). El informe incluye valores de parámetros y pesos de características para las columnas de entrada.
Para usar el modelo para puntuar en otros experimentos, sin tener que repetir el proceso de optimización, haga clic con el botón derecho en la salida del modelo y seleccione Guardar como modelo entrenado.
Realización de la validación cruzada con un barrido de parámetros
En esta sección se describe cómo combinar un barrido de parámetros con validación cruzada. Este proceso tarda más, pero puede especificar el número de plegamientos y obtener la cantidad máxima de información sobre el conjunto de datos y los posibles modelos.
Agregue el módulo Partición y ejemplo al experimento y conecte los datos de entrenamiento.
Elija la opción Asignar a plegados y especifique algún número de plegados en los que dividir los datos. Si no especifica un número, se usan de forma predeterminada 10 plegados. Las filas se ordenen aleatoriamente en estos plegamientos, sin reemplazo.
Para equilibrar el muestreo en alguna columna, establezca la división estratificada en TRUE y, a continuación, seleccione la columna de capa. Por ejemplo, si tiene un conjunto de datos desequilibrado, puede dividir el conjunto de datos de forma que cada plegado tenga el mismo número de casos minoritarios.
Agregue el módulo Optimizar hiperparámetros del modelo al experimento.
Conectar uno de los módulos de aprendizaje automático de esta categoría a la entrada izquierda de Optimizar hiperparámetros del modelo.
En el panel Propiedades del aprendiz, establezca la opción Create trainer mode (Crear modo instructor) en Parameter Range (Intervalo de parámetros) y use el Generador de intervalos para especificar un intervalo de valores que se usará en el barrido de parámetros.
No es necesario especificar un intervalo para todos los valores. Puede establecer manualmente el valor de algunos parámetros y, a continuación, barrido sobre los parámetros restantes. Esto puede ahorrar tiempo.
Para obtener una lista de aprendices que no admiten esta opción, consulte la sección Notas técnicas.
Conectar salida de Partition y Sample en la entrada training dataset etiquetada de Tune Model Hyperparameters (Optimizar hiperparámetros del modelo).
Opcionalmente, puede conectar un conjunto de datos de validación a la entrada situada más a la derecha de Optimizar hiperparámetros del modelo. Para la validación cruzada, solo necesita un conjunto de datos de entrenamiento.
En el panel Propiedades de Optimizar hiperparámetros del modelo, indique si desea realizar un barrido aleatorio o un barrido de cuadrícula. Un barrido de cuadrícula es exhaustivo, pero más lento. Una búsqueda de parámetros aleatorios puede obtener buenos resultados sin tomar tanto tiempo.
Número máximo de ejecuciones en barrido aleatorio: si elige un barrido aleatorio, puede especificar cuántas veces se debe entrenar el modelo, mediante una combinación aleatoria de valores de parámetro.
Número máximo de ejecuciones en una cuadrícula aleatoria: esta opción también controla el número de iteraciones en un muestreo aleatorio de valores de parámetro, pero los valores no se generan aleatoriamente a partir del intervalo especificado; en su lugar, se crea una matriz de todas las combinaciones posibles de valores de parámetro y se toma un muestreo aleatorio sobre la matriz. Este método es más eficaz y menos propenso al sobremuestreo o al submuestreo regional.
Sugerencia
Para obtener una explicación más detallada de estas opciones, consulte la sección Notas técnicas .
Elija una sola columna de etiqueta.
Elija una sola métrica para usarla en la clasificación del modelo. Se calculan muchas métricas, por lo que debe seleccionar la más importante que se usará para ordenar los resultados.
En la Inicialización aleatoria, escriba un número para que se use al inicializar el barrido de parámetros.
Si está entrenando un modelo que admite un barrido de parámetros integrado, también puede establecer un intervalo de valores de valor de edíto que se van a usar e iterar también sobre las valoradas aleatorias. Esto es opcional, pero puede ser útil para evitar el sesgo introducido por la selección de valor de ed.
Agregue el módulo Validar modelo de forma cruzada. Conectar la salida de Partition y Sample a la entrada Dataset y conecte la salida de Tune Model Hyperparameters (Optimizar hiperparámetros del modelo) a la entrada untrained model (Modelo sin entrenar).
Ejecute el experimento.
Resultados de la validación cruzada
Una vez completada la validación cruzada:
Para ver los resultados de la evaluación, haga clic con el botón derecho en el módulo, seleccione Resultados de evaluación por plegada y, a continuación, seleccione Visualizar.
Las métricas de precisión se calculan a partir del paso de validación cruzada y pueden variar ligeramente en función de cuántos plegaciones haya seleccionado.
Para ver cómo se dividió el conjunto de datos y cómo el modelo "mejor" puntuaría cada fila del conjunto de datos, haga clic con el botón derecho en el módulo, seleccione Resultados puntuados y, a continuación, seleccione Visualizar.
Si guarda este conjunto de datos para su posterior uso, se conservan las asignaciones de plegado. Por ejemplo, el datsaet guardado podría tener este aspecto:
Asignaciones de plegadas Clase Edad(1.ª columna de características) 2 0 35 1 1 17 3 0 62 Para obtener la configuración de parámetros para el modelo "mejor", haga clic con el botón derecho en Optimizar hiperparámetros del modelo.
Ejemplos
Para obtener ejemplos de cómo se usa este módulo, consulte el Azure AI Gallery:
Predicción del rendimiento de los alumnos: usa el algoritmo árbol de decisión potenciado de dos clases con parámetros diferentes para generar un modelo con el mejor error cuadráneo medio (RMSE) raíz posible.
Learning con recuentos: clasificación binaria: genera un conjunto compacto de características mediante el aprendizaje basado en recuento y, a continuación, aplica un barrido de parámetros para encontrar los mejores parámetros de modelo.
Clasificación binaria: detección de intrusiones de red: usa Optimizar hiperparámetros del modelo en modo de validación cruzada, con una división personalizada en cinco plegamientos, para encontrar los mejores hiperparámetros para un modelo de regresión logística de dos clases.
Notas técnicas
Esta sección contiene detalles de implementación, sugerencias y respuestas a las preguntas más frecuentes.
Funcionamiento de un barrido de parámetros
En esta sección se describe cómo funciona el barrido de parámetros en general y cómo interactúan las opciones de este módulo.
Cuando se configura un barrido de parámetros, se define el ámbito de la búsqueda, para usar un número finito de parámetros seleccionados de forma aleatoria, o una búsqueda exhaustiva en un espacio de parámetros definido por el usuario.
Barrido aleatorio: esta opción entrena un modelo mediante un número establecido de iteraciones.
Especifique un intervalo de valores para recorrer en iteración y el módulo usa un subconjunto elegido aleatoriamente de esos valores. Los valores se eligen con el reemplazo, lo que significa que los números elegidos previamente de forma aleatoria no se quitan del grupo de números disponibles. Por lo tanto, la posibilidad de que cualquier valor que se seleccione permanece igual en todos los pasos.
Barrido de cuadrícula: esta opción crea una matriz, o cuadrícula, que incluye todas las combinaciones de los parámetros del intervalo de valores que especifique. Al empezar a optimizar con este módulo, se entrenan varios modelos mediante combinaciones de estos parámetros.
Cuadrícula completa: la opción de usar toda la cuadrícula significa simplemente eso: se prueban todas y cada una de las combinaciones. Esta opción se puede considerar la más completa, pero requiere la mayor parte del tiempo.
Cuadrícula aleatoria: si selecciona esta opción, se calcula la matriz de todas las combinaciones y los valores se muestrea de la matriz, sobre el número de iteraciones que especificó.
Investigaciones recientes han demostrado que los barridos aleatorios pueden tener un mejor rendimiento que los barridos de cuadrícula.
Controlar la longitud y la complejidad del entrenamiento
La iteración en muchas combinaciones de configuración puede tomar mucho tiempo, por lo que el módulo proporciona varias maneras de restringir el proceso:
- Limitar el número de iteraciones usadas para probar un modelo
- Limitar el espacio de parámetros
- Limitar el número de iteraciones y el espacio de parámetros
Se recomienda experimentar con la configuración para determinar el método de entrenamiento más eficaz en un conjunto de datos y modelo determinados.
Elección de una métrica de evaluación
Al final, se presenta un informe que contiene la precisión de cada modelo para que pueda revisar los resultados de la métrica. Se usa un conjunto uniforme de métricas para todos los modelos de clasificación y se usa un conjunto diferente de métricas para los modelos de regresión. Sin embargo, durante el entrenamiento, debe elegir una sola métrica para que se use en la clasificación de los modelos que se generan durante el proceso de optimización. Es posible que la mejor métrica varíe, según el problema empresarial, y el costo de falsos positivos y falsos negativos.
Para obtener más información, vea Cómo evaluar el rendimiento del modelo en Machine Learning
Métricas usadas para la clasificación
Exactitud La proporción de resultados verdaderos en casos totales.
Precisión la proporción de resultados verdaderos en resultados positivos.
Recuperación La fracción de todos los resultados correctos en general.
La puntuación F Una medida que equilibra la precisión y la recuperación.
AUC Un valor que representa el área bajo la curva cuando se trazan falsos positivos en el eje x y los positivos verdaderos se representan en el eje y.
Pérdida de registro promedio La diferencia entre dos distribuciones de probabilidad: la verdadera y la del modelo.
Entrenamiento de la pérdida de registro Mejora proporcionada por el modelo en lugar de una predicción aleatoria.
Métricas usadas para la regresión
Error absoluto medio Promedia todo el error en el modelo, donde error significa la distancia del valor de predicción desde el valor verdadero. A menudo se abrevia como MAE.
Raíz del error al cuadrado medio Mide el promedio de los cuadrados de los errores y, a continuación, toma la raíz de ese valor. A menudo se abrevia como RMSE
Error absoluto relativo Representa el error como un porcentaje del valor true.
Error cuadrado relativo Normaliza el error al cuadrado total dividiendo por el error al cuadrado total de los valores predichos.
Coeficiente de determinación Un único número que indica cómo se ajustan los datos en un modelo. Un valor de 1 significa que el modelo coincide exactamente con los datos; Un valor de 0 significa que los datos son aleatorios o no se pueden ajustar al modelo. A menudo se le conoce como r2, R2o de r cuadrado.
Módulos que no admiten un barrido de parámetros
Casi todos los aprendices Machine Learning admiten la validación cruzada con un barrido de parámetros integrado, que le permite elegir los parámetros con los que experimentar. Si el usuario no admite la configuración de un intervalo de valores, puede usarlo en la validación cruzada. En este caso, se selecciona un intervalo de valores permitidos para el barrido.
Los siguientes aprendices no admiten la configuración de un intervalo de valores para usarlos en un barrido de parámetros:
Entradas esperadas
Nombre | Tipo | Descripción |
---|---|---|
Modelo no entrenado | Interfaz ILearner | Modelo no entrenado para barrido de parámetros |
Conjunto de datos de entrenamiento | Tabla de datos | Conjunto de datos de entrada para entrenamiento |
Conjunto de datos de validación | Tabla de datos | Conjunto de datos de entrada para validación (para el modo de validación Entrenar/Probar). Esta entrada es opcional. |
Parámetros del módulo
Nombre | Intervalo | Tipo | Valor predeterminado | Descripción |
---|---|---|---|---|
Especificar el modo de barrido de parámetros | Lista | Métodos de barrido | Barrido aleatorio | Barrer la cuadrícula completa en el espacio de parámetros o barrer usando un número limitado de ejecuciones de ejemplo |
Número máximo de ejecuciones en barrido aleatorio | [1;10000] | Entero | 5 | Ejecutar el número máximo de ejecuciones usando barrido aleatorio |
Inicialización aleatoria | cualquiera | Entero | 0 | Proporcionar un valor para inicializar el generador de números aleatorios |
Columna de etiqueta | cualquiera | ColumnSelection | Columna de etiqueta | |
Métrica para medir el rendimiento para clasificación | Lista | Tipo de métrica de clasificación binaria | Precisión | Seleccionar la métrica utilizada para evaluar modelos de clasificación |
Métrica para medir el rendimiento para regresión | Lista | RegressionMetric Type | Desviación media | Seleccionar la métrica utilizada para evaluar modelos de regresión |
Salidas
Nombre | Tipo | Descripción |
---|---|---|
Resultados de barrido | Tabla de datos | Métrica de resultados para ejecuciones de barrido de parámetros |
Modelo mejor entrenado | Interfaz ILearner | Modelo con el mejor rendimiento en el conjunto de datos de entrenamiento |