Entraîner un modèle Machine Learning
L’entraînement d’un modèle Machine Learning implique l’ajustement d’un algorithme Machine Learning à vos données d’apprentissage afin de déterminer une fonction acceptablement précise qui peut être appliquée à ses caractéristiques et de calculer les étiquettes correspondantes. Cela peut sembler une idée simple sur le plan conceptuel. 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 les données avec lesquelles il a été entraîné, peut être difficile et implique une approche itérative de l’entraînement et de l’évaluation 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 Machine Learning consiste à fractionner de manière aléatoire les données en sous-ensembles à des fins d’entraînement et de 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 l’intégrité du modèle avec les données de validation que vous avez mises de côté. Cela permet de s’assurer que le modèle se généralise correctement ; en d’autres termes, qu’il génère des prédictions précises pour des données sur lesquelles il n’a pas été entraîné.
Notes
Les modèles qui prédisent bien les données sur lesquelles ils ont été entraînés, mais qui ne fonctionnent pas correctement 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 en conserver environ 30 % pour la validation.
Algorithmes de machine learning
Il existe de nombreux algorithmes de Machine Learning, regroupés en différents types d’algorithmes en fonction du type de problème de Machine Learning que vous devez résoudre. La plupart des frameworks de Machine Learning incluent plusieurs algorithmes pour la régression et la classification, ainsi que des algorithmes pour les problèmes de Machine Learning non supervisés, comme le clustering.
Après avoir identifié le type de problème à résoudre pour lequel vous souhaitez créer 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 d’algorithmes pour la classification, il existe des algorithmes du type suivant :
- Les 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é pour chaque classe possible, et optimiser les coefficients de la fonction selon les différences entre la classe prédite et la valeur d’étiquette connue réelle.
- Fonctions basées sur une arborescence 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.
- Les 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 de progresser par essais et erreurs pour le déterminer.
Hyperparamètres
Les paramètres d’un algorithme Machine Learning sont les caractéristiques de données (et les étiquettes) sur lesquelles il est formé. En outre, la plupart des algorithmes de Machine Learning 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 comme le niveau de caractère aléatoire que vous souhaitez autoriser dans le modèle (pour qu’il généralise bien, mais produise toujours des prédictions acceptables, 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’arborescence, et d’autres facteurs spécifiques à l’algorithme.
Ajustement d’un modèle
Pour entraîner un modèle, vous devez adapter l’algorithme aux données. La syntaxe et les formats de données spécifiques utilisés pour cela peuvent varier d’une infrastructure de Machine Learning à l’autre, mais le principe est toujours le même. Pour le Machine Learning supervisé, vous ajustez l’algorithme aux caractéristiques en fonction des étiquettes connues. Pour le Machine Learning non supervisé, vous fournissez les caractéristiques, 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 Spark MLlib. Les données d’apprentissage sont fournies sous la forme d’un dataframe dans lequel 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)