Entraîner un modèle Machine Learning

Effectué

L’entraînement d’un modèle d’apprentissage automatique consiste à ajuster un algorithme d’apprentissage automatique à vos données d’entraînement afin de déterminer une fonction suffisamment précise qui peut être appliquée à ses caractéristiques et de calculer les étiquettes correspondantes. Cela peut sembler une idée conceptuellement simple ; Mais le processus réel d’entraînement d’un modèle qui produit des prédictions précises sur de nouvelles données, et pas seulement sur les données avec lesquelles il a été formé, peut être difficile et implique une approche itérative d’entraînement et d’évaluation répétés des modèles à l’aide de plusieurs algorithmes et paramètres.

Données de formation et de validation

Une approche courante lors de l’entraînement d’un modèle de machine learning consiste à diviser de manière aléatoire les données en sous-ensembles pour l’entraînement et la validation. Vous pouvez ensuite utiliser le jeu de données d’entraînement pour ajuster un algorithme et entraîner un modèle, puis tester les performances du modèle avec les données de validation que vous avez conservées. Cela permet de s’assurer que le modèle se généralise bien, c’est-à-dire qu’il génère des prédictions précises pour l’entraînement sur lequel il n’a pas été formé.

Remarque

Les modèles qui prédisent bien les données sur lesquelles ils ont été formés, mais qui ne fonctionnent pas bien avec les nouvelles données, sont décrits comme surajustés aux données d’entraînement.

En règle générale, vous devez entraîner le modèle avec environ 70% des données et retenir environ 30% pour validation.

Algorithmes de Machine Learning

Il existe de nombreux algorithmes d’apprentissage automatique, regroupés en différents types d’algorithmes en fonction du type de problème d’apprentissage automatique que vous devez résoudre. La plupart des frameworks d’apprentissage automatique incluent plusieurs algorithmes de régression et de classification, ainsi que des algorithmes pour les problèmes d’apprentissage automatique non supervisés tels que le clustering.

Après avoir identifié le type de problème que vous souhaitez résoudre dans un modèle, vous pouvez choisir parmi plusieurs algorithmes de ce type. Dans chaque type, il peut y avoir plusieurs algorithmes parmi lesquels choisir, souvent basés sur différents types d’opérations mathématiques. Par exemple, dans l’ensemble des algorithmes de classification, il existe des algorithmes du type suivant :

  • Algorithmes de régression logistique qui appliquent de manière itérative des fonctions logistiques pour calculer une valeur comprise entre 0 et 1 qui représente la probabilité de chaque classe possible, et optimisent les coefficients de la fonction en fonction des différences entre la classe prédite et la valeur d’étiquette réelle connue.
  • Fonctions arborescentes qui définissent un arbre de décision dans lequel une caractéristique individuelle est prise en compte ; Et en fonction de sa valeur, une autre caractéristique est prise en compte, et ainsi de suite, jusqu’à ce qu’une étiquette de classe appropriée soit déterminée.
  • Algorithmes d’ensemble qui combinent plusieurs techniques pour trouver la fonction prédictive globale optimale.

Le « meilleur » algorithme dépend de vos données et nécessite généralement des essais et des erreurs itératifs pour être déterminé.

Hyperparamètres

Les paramètres d’un algorithme d’apprentissage automatique sont les caractéristiques de données (et les étiquettes) sur lesquelles il est formé. De plus, la plupart des algorithmes d’apprentissage automatique fournissent des hyperparamètres que vous pouvez utiliser pour influencer le fonctionnement de l’algorithme. Les hyperparamètres vous permettent de contrôler des éléments tels que le niveau d’aléatoire que vous souhaitez autoriser dans le modèle (afin qu’il généralise bien tout en produisant des prédictions suffisamment précises), le nombre d’itérations effectuées pour trouver un modèle optimal (ce qui vous permet d’éviter le surajustement et d’optimiser le temps d’entraînement), le nombre de branches prises en compte dans un modèle d’arbre, et d’autres facteurs spécifiques aux algorithmes.

Montage d’un modèle

Pour entraîner un modèle, vous devez ajuster l’algorithme aux données. La syntaxe et les formats de données spécifiques utilisés pour ce faire peuvent varier d’un framework d’apprentissage automatique à l’autre, mais le principe est toujours le même. Pour l’apprentissage automatique supervisé, vous ajustez l’algorithme aux fonctionnalités en fonction des étiquettes connues. Pour l’apprentissage automatique non supervisé, vous fournissez les fonctionnalités et l’algorithme tente de les séparer en clusters discrets.

L’exemple suivant montre le code utilisé pour lancer l’entraînement d’un modèle de régression logistique à l’aide de l’infrastructure MLlib Spark. Les données d’entraînement sont fournies sous la forme d’une trame de données dans laquelle les étiquettes se trouvent dans une colonne de valeurs entières et les caractéristiques correspondantes sont représentées sous la forme d’un vecteur unique (tableau) de valeurs. Dans cet exemple, deux hyperparamètres (maxIter et regParam) ont également été spécifiés.

from pyspark.ml.classification import LogisticRegression

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