Entrenar un modelo de Machine Learning

Completado

El entrenamiento de un modelo de Machine Learning implica ajustar un algoritmo de aprendizaje automático a los datos de entrenamiento para determinar una función aceptablemente precisa que pueda aplicarse a sus características y calcular las etiquetas correspondientes. Esta puede parecer una idea conceptualmente sencilla, pero el proceso real de entrenamiento de un modelo que genere predicciones precisas no solo sobre los datos con los que se haya entrenado, sino también sobre datos nuevos, puede ser difícil e implica un enfoque iterativo consistente en entrenar y evaluar modelos repetidamente con múltiples algoritmos y parámetros.

Datos de entrenamiento y validación

Un enfoque común al entrenar un modelo de Machine Learning consiste en dividir los datos en subconjuntos aleatoriamente para el entrenamiento y la validación. Después, puede usar el conjunto de datos de entrenamiento para ajustar un algoritmo y entrenar un modelo para, a continuación, probar el rendimiento del modelo con los datos de validación que ha conservado. Esto ayuda a garantizar que el modelo generalice correctamente; es decir, que genere predicciones precisas para el entrenamiento de aspectos en los que no se ha entrenado.

Nota

Los modelos que predicen bien los datos sobre los que se han entrenado, pero que no funcionan bien con los datos nuevos se describen como sobreajustados a los datos de entrenamiento.

Normalmente, debe entrenar el modelo con alrededor del 70 % de los datos y conservar alrededor del 30 % para la validación.

Algoritmos de aprendizaje automático

Hay muchos algoritmos de aprendizaje automático agrupados en distintos tipos de algoritmos en función del tipo de problema de aprendizaje automático que se necesita resolver. La mayoría de los marcos de aprendizaje automático incluyen varios algoritmos para la regresión y la clasificación, así como algoritmos para problemas de aprendizaje automático no supervisado, como la agrupación en clústeres.

Después de identificar el tipo de problema para cuya resolución quiere crear un modelo, puede elegir entre varios algoritmos de ese tipo. Dentro de cada tipo, puede haber varios algoritmos entre los que elegir, a menudo basados en distintos tipos de operaciones matemáticas. Por ejemplo, dentro del conjunto de algoritmos para la clasificación, hay algoritmos del tipo siguiente:

  • Algoritmos de regresión logística, que aplican funciones logísticas de forma iterativa para calcular un valor entre 0 y 1 que representa la probabilidad de cada clase posible y optimizar los coeficientes de la función según las diferencias entre la clase prevista y el valor de etiqueta conocido real.
  • Funciones basadas en árbol, que definen un árbol de decisión en el que se tiene en cuenta una característica individual y, en función de su valor, se tiene en cuenta otra característica y así sucesivamente, hasta que se determine una etiqueta de clase adecuada.
  • Algoritmos de conjunto, que combinan varias técnicas para encontrar una función predictiva general óptima.

El "mejor" algoritmo depende de los datos y, normalmente, requiere pruebas iterativas y un error por determinar.

Hiperparámetros

Los parámetros para un algoritmo de aprendizaje automático son las características (y las etiquetas) de datos para las que se ha entrenado. Además, la mayoría de los algoritmos de aprendizaje automático proporcionan hiperparámetros que se pueden usar para influir en la forma en que funciona el algoritmo. Los hiperparámetros permiten controlar aspectos como el nivel de aleatoriedad que se quiere permitir en el modelo (para que generalice bien, pero que también genere predicciones aceptablemente precisas), el número de iteraciones realizadas para encontrar un modelo óptimo (lo que permite evitar sobreajuste y optimizar el tiempo de entrenamiento), el número de ramas que se tienen en cuenta en un modelo de árbol y otros factores específicos del algoritmo.

Ajuste de un modelo

Para entrenar realmente un modelo, debe ajustar el algoritmo a los datos. La sintaxis y los formatos de datos específicos que se usan para ello pueden variar en los distintos marcos de aprendizaje automático, pero el principio siempre es el mismo. Para el aprendizaje automático supervisado, el algoritmo se ajusta a las características en función de las etiquetas conocidas. Para el aprendizaje automático no supervisado, las características se proporcionan y el algoritmo intenta separarlas en clústeres discretos.

En el ejemplo siguiente, se muestra el código utilizado para iniciar el entrenamiento de un modelo de regresión logística con el marco MLlib de Spark. Los datos del entrenamiento se proporcionan como un marco de datos en el que las etiquetas están en una columna de valores enteros y las características correspondientes se representan como un único vector (matriz) de valores. En este ejemplo, también se han especificado dos hiperparámetros (maxIter y regParam).

from pyspark.ml.classification import LogisticRegression

lr = LogisticRegression(labelCol="label", featuresCol="features", maxIter=10, regParam=0.3)
model = lr.fit(training_df)