Entrenamiento y evaluación de modelos en Model Builder
En esta unidad, aprenderá a entrenar y a evaluar modelos de Machine Learning en Model Builder.
Durante el entrenamiento, Model Builder aplica algoritmos a los datos. El uso de las métricas de evaluación para el escenario concreto le permiten medir el rendimiento del modelo.
Entrenamiento en Model Builder
Ahora que ha seleccionado un escenario y un entorno de entrenamiento, y ha cargado los datos, es el momento de empezar a entrenar el modelo. El entrenamiento consiste en aplicar algoritmos para el escenario elegido al conjunto de datos con el fin de encontrar el mejor modelo. En el paso de evaluación, se explicará lo que significa que un modelo es el mejor.
En la mayoría de los casos, para entrenar modelos de Machine Learning en Model Builder, solo hay que indicar el tiempo que quiere que dure el entrenamiento.
¿Durante cuánto tiempo debe entrenarse?
Los períodos de entrenamiento más largos permiten que Model Builder explore más modelos con una mayor variedad de opciones de configuración.
En la tabla siguiente se resume el tiempo medio necesario para obtener un buen rendimiento en varios conjuntos de datos de ejemplo, en una máquina local, mediante una CPU:
Tamaño del conjunto de datos | Promedio de tiempo para entrenar |
---|---|
De 0 a 10 MB | 10 segundos |
De 10 a 100 MB | 10 minutos |
De 100 a 500 MB | 30 minutos |
De 500 a 1 GB | 60 minutos |
1 GB o más | 3 horas o más |
Estos números son solo una guía. La longitud exacta del entrenamiento depende de lo siguiente:
- El número de características (columnas) que se usan como entrada para el modelo.
- El tipo de columnas.
- La tarea de aprendizaje automático.
- El rendimiento de la CPU, la GPU, el disco y la memoria de la máquina que se usa para el entrenamiento.
Sugerencia
Use más de 100 filas como conjuntos de datos. Si emplea menos, podría no obtener ningún resultado.
¿Cómo encuentra Model Builder el mejor modelo?
Es probable que haya oído que el aprendizaje automático implica complejos cálculos matemáticos. Entonces, ¿de qué forma puede Model Builder entrenar un modelo de Machine Learning si solo ha especificado un escenario, un conjunto de datos y el tiempo que desee que dure el entrenamiento de Model Builder?
Model Builder usa el aprendizaje automático automatizado (AutoML) para identificar el conjunto de transformaciones necesarias para preparar los datos para el entrenamiento, seleccionar un algoritmo y ajustar los valores de configuración (también conocidos como hiperparámetros) del algoritmo. Las métricas de evaluación específicas de la tarea de aprendizaje automático seleccionada permiten a Model Builder determinar qué modelo funciona mejor para los datos.
Código de entrenamiento y consumo
Después de que el modelo haya finalizado su entrenamiento, Model Builder genera los siguientes archivos y los agrega al proyecto. Estos archivos están anidados en el archivo .mbconfig.
- <MODEL-NAME>.zip: artefacto del modelo de Machine Learning. Este archivo contiene una versión serializada del modelo.
- <MODEL-NAME>.training.cs: este archivo contiene la canalización de entrenamiento del modelo. La canalización de entrenamiento del modelo consta de las transformaciones de datos y el algoritmo que se usan para entrenar el modelo de Machine Learning. Para más información, consulte Transformaciones de datos y Elección de un algoritmo de ML.NET.
- <MODEL-NAME>.consumption.cs: este archivo contiene las clases que definen el esquema de la entrada y la salida del modelo. También contiene el método
Predict
, que usa el modelo para crear una APIPredictionEngine
y realizar predicciones.PredictionEngine
es una API de conveniencia que permite realizar una predicción en una sola instancia de datos.
Evaluación del modelo
Ahora que ha encontrado el mejor modelo para los datos, es el momento de probar lo bien que realiza las predicciones. Una manera de evaluar el rendimiento del modelo consiste en usar métricas.
Las métricas de evaluación son específicas del tipo de tarea de aprendizaje automático que realiza un modelo. Para cada tarea, puede examinar varias métricas para determinar el rendimiento del modelo.
En esta tabla se muestran las métricas de evaluación que Model Builder usa para elegir el mejor modelo en función del escenario:
Escenario | Métricas de evaluación | Buscar |
---|---|---|
Clasificación de datos | Binaria (precisión)/Multiclase (microprecisión) | Cuanto más cerca de 1,00, mejor. |
Predicción de valores | R cuadrado | Cuanto más cerca de 1,00, mejor. |
Clasificación de la imagen | Precisión | Cuanto más cerca de 1,00, mejor. |
Recomendación | R cuadrado | Cuanto más cerca de 1,00, mejor. |
Detección de objetos | Precisión | Cuanto más cerca de 1,00, mejor. |
Para más información sobre las métricas de evaluación de ML.NET, consulte Métricas de evaluación de modelos.
Selección del modelo con las métricas más altas
El modelo ha alcanzado métricas de evaluación perfectas. ¿Significa esto que tiene el modelo perfecto? No exactamente. De hecho, si termina con un modelo "perfecto" según lo que especifican las métricas de evaluación, debe tomárselo con escepticismo.
En el aprendizaje automático, debe tener en cuenta un concepto conocido como sobreajuste. El sobreajuste se produce cuando el modelo aprende demasiado bien los patrones del conjunto de datos de entrenamiento. Al intentar usar el modelo con datos nuevos, no proporciona resultados precisos.
Este es un escenario que ayuda a ilustrar el sobreajuste. Imagine que está estudiando para un examen. Por algún motivo, consigue con antelación las preguntas del examen con sus respuestas. A medida que estudia para el examen, se centra en memorizar las respuestas a las preguntas. Realiza el examen y, cuando le dan los resultados, ve que ha obtenido una nota alta. Una nota alta podría indicar que conoce bien la materia. Pero si alguien le hiciera alguna pregunta sobre uno de los temas que no se incluyera directamente en la prueba, es posible que se equivoque porque no ha aprendido el tema, solo ha memorizado las respuestas. El sobreajuste funciona de forma similar.
Mejora del modelo
Si no está satisfecho con las métricas de evaluación del modelo, puede probar a realizar estas acciones para mejorarlo:
- Proporcione observaciones de datos más representativas: la experiencia es el mejor profesor, y este concepto también se aplica al aprendizaje automático. Cuantas más observaciones de datos pueda proporcionar, más amplio será el conjunto de patrones que el modelo puede reconocer.
- Proporcione más contexto: si agrega columnas que aporten contexto a los datos, ayudará al modelo a identificar patrones. Por ejemplo, supongamos que está intentando predecir el precio de una casa y el único punto de datos que tiene es el número de habitaciones. Es posible que esto, por sí solo, no sea muy revelador. Pero ¿y si supiera que la casa se encuentra en un barrio a las afueras de una gran zona metropolitana en la que la media de ingresos familiares es de 80 000 USD y que los colegios se encuentran entre los 20 mejores? Ahora tiene más información que puede ayudarle a decidir el modelo.
- Use datos y características significativos: aunque el uso de más características y ejemplos de datos puede ayudar a mejorar la precisión del modelo, también pueden introducir ruido, ya que no todos los datos y características son significativos. Es importante saber qué características son las que más afectan a las decisiones del algoritmo.
- Explore más algoritmos: el hecho de proporcionar a Model Builder más tiempo para explorar más algoritmos e hiperparámetros puede ayudar a mejorar el modelo.
En la siguiente unidad, usará Model Builder para entrenar un modelo de Machine Learning.