Régression linéaire
Important
Le support de Machine Learning Studio (classique) prend fin le 31 août 2024. Nous vous recommandons de passer à Azure Machine Learning avant cette date.
À partir du 1er décembre 2021, vous ne pourrez plus créer de nouvelles ressources Machine Learning Studio (classique). Jusqu’au 31 août 2024, vous pouvez continuer à utiliser les ressources Machine Learning Studio (classique) existantes.
- Consultez les informations sur le déplacement des projets de machine learning de ML Studio (classique) à Azure Machine Learning.
- En savoir plus sur Azure Machine Learning.
La documentation ML Studio (classique) est en cours de retrait et ne sera probablement plus mise à jour.
Crée un modèle de régression linéaire
catégorie : Machine Learning/initialiser le modèle/la régression
Notes
s’applique à: Machine Learning Studio (classic) uniquement
Des modules par glisser-déposer similaires sont disponibles dans Concepteur Azure Machine Learning.
Vue d’ensemble du module
cet article explique comment utiliser le module de régression linéaire dans Machine Learning Studio (classic) pour créer un modèle de régression linéaire à utiliser dans une expérience. Une régression linéaire tente d’établir une relation linéaire entre une ou plusieurs variables indépendantes et un résultat numérique ou une variable dépendante.
Ce module vous permet de définir une méthode de régression linéaire, puis d’effectuer l’apprentissage d’un modèle à l’aide d’un jeu de données étiqueté. Le modèle ainsi formé permet ensuite d’effectuer des prédictions. Le modèle non formé peut également être passé au modèle de validation croisée pour la validation croisée par rapport à un jeu de données étiqueté.
En savoir plus sur la régression linéaire
La régression linéaire est une méthode statistique courante qui a été largement adoptée dans le domaine de l’apprentissage automatique, puis améliorée avec de nombreuses nouvelles méthodes d’ajustement de ligne de régression et de mesure des erreurs. Au sens le plus simple, la régression fait référence à la prédiction d’une cible numérique. La régression linéaire est toujours un bon choix lorsque vous souhaitez un modèle très simple pour une tâche prédictive de base. La régression linéaire tend également à bien fonctionner avec des jeux de données éparses et de grande dimension peu complexes.
Machine Learning Studio (classic) prend en charge un large éventail de modèles de régression, en plus de la régression linéaire. Toutefois, le terme « régression » peut être interprété de façon faible, et certains types de régression fournis dans d’autres outils ne sont pas pris en charge dans Studio (Classic).
La régression classique implique une variable indépendante et une variable dépendante. C’est ce qu’on appelle une régression simple. Ce module prend en charge la régression simple.
Une régression linéaire multiple implique au moins deux variables indépendantes qui contribuent à déterminer une seule variable dépendante. Lorsque plusieurs entrées sont utilisées pour prédire un résultat numérique unique, on parle également de régression linéaire multivariée ou multidimensionnelle.
Le module de régression linéaire peut résoudre ces problèmes, comme c’est le cas pour la plupart des autres modules de régression de Studio (Classic).
Une régression à plusieurs étiquettes est la tâche de prédiction de plusieurs variables dépendantes à l’intérieur d’un modèle unique. Par exemple, dans une régression logistique à plusieurs étiquettes, un échantillon peut être attribué à plusieurs étiquettes différentes (ce qui diffère de la tâche de prédiction de plusieurs niveaux au sein d’une variable de classe unique).
Ce type de régression n’est pas pris en charge dans Machine Learning. Pour prédire plusieurs variables, créez un apprenant distinct pour chaque sortie que vous souhaitez prédire.
Pendant des années, les statisticiens ont développé des méthodes de régression de plus en plus sophistiquées. Cela vaut également pour la régression linéaire. Ce module prend en charge deux méthodes pour mesurer les erreurs et ajuster la ligne de régression : la méthode des moindres carrés ordinaires et la méthode de descente de gradient.
La méthode de descente de gradient minimise la quantité d’erreurs à chaque étape du processus d’apprentissage du modèle. Il existe de nombreuses variantes de la méthode de descente de gradient, et son optimisation pour diverses problématiques d’apprentissage a été largement étudiée. Si vous choisissez cette option comme méthode de solution, vous pouvez définir une série de paramètres pour contrôler la taille d’étape, le taux d’apprentissage et ainsi de suite. Cette option prend également en charge l’utilisation d’un balayage de paramètre intégré.
La méthode des moindres carrés ordinaires est l’une des techniques les plus couramment utilisées en matière de régression linéaire. Elle l’est, par exemple, dans les outils d’analyse pour Microsoft Excel.
La méthode des moindres carrés ordinaires fait référence à la fonction de perte, qui quantifie une erreur en calculant la somme du carré de l’écart entre la valeur réelle et la ligne prédite, puis ajuste le modèle en réduisant au minimum l’erreur quadratique. Cette méthode suppose une forte relation linéaire entre les entrées et la variable dépendante.
Comment configurer la régression linéaire
Ce module prend en charge deux méthodes pour l’ajustement d’un modèle de régression, avec des options très différentes :
Créer un modèle de régression utilisant la descente de gradient en ligne
La descente de gradient est une meilleure fonction de perte pour les modèles plus complexes, ou qui ont trop eu de données d’apprentissage compte tenu du nombre de variables.
Cette option prend également en charge un balayage de paramètre, si vous formez le modèle à l’aide des hyperparamètres de réglage du modèle pour optimiser automatiquement les paramètres du modèle.
Ajuster un modèle de régression utilisant les moindres carrés ordinaires
Pour les jeux de données de petite taille, il est préférable de sélectionner la méthode des moindres carrés ordinaires. Les résultats obtenus doivent être très similaires à Excel.
Créer un modèle de régression utilisant les moindres carrés ordinaires
Ajoutez le module de modèle de régression linéaire à votre expérience dans Studio (Classic).
Ce module figure dans la catégorie Machine Learning. Développez Initialize Model (Initialiser un modèle), développez Regression (Régression), puis faites glisser le module Linear Regression Model (Modèle de régression linéaire) vers votre expérience.
Dans le volet Properties (Propriétés), dans la liste déroulante Solution method (Méthode de la solution), sélectionnez Ordinary Least Squares (Moindres carrés ordinaires). Cette option spécifie la méthode de calcul utilisée pour déterminer la ligne de régression.
Dans L2 regularization weight (Pondération de régularisation L2), tapez la valeur à utiliser en tant que pondération pour la régularisation L2. Nous vous recommandons d’utiliser une valeur différente de zéro pour éviter tout surajustement.
Pour en savoir plus sur l’incidence de la régularisation sur l’ajustement du modèle, voir cet article : Régularisations L1 et L2 pour l’apprentissage automatique
Activez l’option Include intercept term (Inclure un terme d’interception) si vous souhaitez afficher le terme de l’interception.
Désactivez cette option si vous n’avez pas besoin de réviser la formule de régression.
Pour Random number seed (Valeur initiale aléatoire), vous pouvez taper une valeur pour amorcer le générateur de nombres aléatoires que le modèle utilise.
L’utilisation d’une valeur de départ est utile si vous souhaitez conserver les mêmes résultats entre les différentes exécutions de la même expérience. Autrement, par défaut, une valeur de l’horloge système est utilisée.
Désélectionnez l’option autoriser les niveaux de catégorie inconnussi vous souhaitez que les valeurs manquantes génèrent une erreur.
Si cette option est sélectionnée, un niveau supplémentaire est créé pour chaque colonne catégorique. Tous les niveaux du jeu de données de test qui n’étaient pas présents dans le jeu de données d’apprentissage sont mappés à ce niveau supplémentaire.
Ajoutez le module Train Model (Entraîner le modèle) à votre expérience, puis connectez un jeu de données étiqueté.
Exécutez l’expérience.
Résultats de modèle de moindres carrés ordinaires
Une fois l’apprentissage terminé :
Pour afficher les paramètres du modèle, cliquez avec le bouton droit sur la sortie du formateur, puis sélectionnez Visualize (Visualiser).
Pour effectuer des prédictions, connectez le modèle formé au module Score Model (Noter le modèle), ainsi qu’un jeu de données de nouvelles valeurs.
Pour effectuer une validation croisée par rapport à un jeu de données étiqueté, connectez le modèle non formé au modèle de validation croisée.
Créer un modèle de régression utilisant la descente de gradient en ligne
Ajoutez le module de modèle de régression linéaire à votre expérience dans Studio (Classic).
Ce module figure dans la catégorie Machine Learning. Développez Initialize Model (Initialiser un modèle), développez Regression (Régression), puis faites glisser le module Linear Regression Model (Modèle de régression linéaire) vers votre expérience
Dans le volet Properties (Propriétés), dans la liste déroulante Solution method (Méthode de la solution), sélectionnez Online Gradient Descent (Descente de gradient en ligne) comme méthode de calcul pour déterminer la ligne de régression.
Pour Create trainer mode (créer un mode d’apprentissage), indiquer si vous souhaitez effectuer l’apprentissage du modèle avec un ensemble prédéfini de paramètres, ou si vous souhaitez optimiser le modèle à l’aide d’un balayage de paramètre.
Single Parameter (Paramètre unique) : si vous savez comment vous voulez configurer le réseau de régression linéaire, vous pouvez fournir un ensemble spécifique de valeurs en tant qu’arguments.
Plage de paramètres: Si vous souhaitez que l’algorithme recherche les meilleurs paramètres pour vous, affectez à l’option créer le mode de l’instructeur la valeur plage de paramètres. Vous pouvez ensuite spécifier plusieurs valeurs à essayer par l’algorithme.
Pour Learning rate (Taux d’apprentissage), spécifiez le taux d’apprentissage initial pour l’optimiseur de descente de gradient stochastique.
Pour Number of training epochs (Nombre de cycles de formation), tapez une valeur indiquant le nombre d’itérations de l’algorithme sur les exemples. Pour les jeux de données comportant un petit nombre d’exemples, ce nombre doit être suffisamment important pour atteindre la convergence.
Normaliser les fonctionnalités : si vous avez déjà normalisé les données numériques utilisées pour l’apprentissage du modèle, vous pouvez désactiver cette option. Par défaut, le module normalise toutes les entrées numériques en les ramenant à une plage comprise entre 0 et 1.
Notes
N’oubliez pas d’appliquer la même méthode de normalisation aux nouvelles données utilisées pour la notation.
Dans L2 regularization weight (Pondération de régularisation L2), tapez la valeur à utiliser en tant que pondération pour la régularisation L2. Nous vous recommandons d’utiliser une valeur différente de zéro pour éviter tout surajustement.
Pour en savoir plus sur l’incidence de la régularisation sur l’ajustement du modèle, voir cet article : Régularisations L1 et L2 pour l’apprentissage automatique
Sélectionnez l’option, moyenne de l' hypothèse finale, pour la moyenne de l’hypothèse finale.
Dans les modèles de régression, les tests d’hypothèses impliquent l’utilisation de statistiques pour évaluer la probabilité de l’hypothèse null, qui indique qu’il n’existe aucune corrélation linéaire entre une variable dépendante et indépendante. Dans de nombreux problèmes de régression, vous devez tester une hypothèse impliquant plusieurs variables.
Cette option est activée par défaut, ce qui signifie que l’algorithme teste une combinaison des paramètres où deux ou plusieurs paramètres sont impliqués.
Sélectionnez l’option Decrease learning rate (Réduire le taux d’apprentissage) si vous voulez que le taux d’apprentissage décroisse à mesure que les itérations progressent.
Pour Random number seed (Valeur initiale aléatoire), vous pouvez taper une valeur pour amorcer le générateur de nombres aléatoires que le modèle utilise. L’utilisation d’une valeur de départ est utile si vous souhaitez conserver les mêmes résultats entre les différentes exécutions de la même expérience.
Désélectionnez l’option autoriser les niveaux de catégorie inconnussi vous souhaitez que les valeurs manquantes génèrent une erreur.
Lorsque cette option est sélectionnée, un niveau supplémentaire est créé pour chaque colonne catégorique. Tous les niveaux du jeu de données de test qui ne sont pas présents dans le jeu de données d’apprentissage sont mappés à ce niveau supplémentaire.
Ajoutez un jeu de données étiqueté et l’un des modules de formation.
Si vous n’utilisez pas de balayage de paramètre, utilisez le module Train Model (Entraîner le modèle).
Pour que l’algorithme recherche les meilleurs paramètres pour vous, formez le modèle à l’aide des hyperparamètres de réglage du modèle.
Notes
Si vous configurez le modèle avec des valeurs spécifiques à l’aide de l’option de paramètre unique et que vous passez ensuite à l’option plage de paramètres , le modèle est formé à l’aide de la valeur minimale de la plage pour chaque paramètre.
À l’inverse, si vous configurez des paramètres spécifiques lorsque vous créez le modèle, mais que vous sélectionnez l’option plage de paramètres , le modèle est formé à l’aide des valeurs par défaut de l’apprenant comme plage de valeurs à balayer.
Exécutez l’expérience.
Résultats pour la descente de gradient en ligne
Une fois l’apprentissage terminé :
- Pour effectuer des prédictions, connectez le modèle formé au module Score Model (Noter le modèle), ainsi que de nouvelles données d’entrée.
- Pour effectuer une validation croisée par rapport à un jeu de données étiqueté, connectez le modèle non formé au modèle de validation croisée.
Exemples
Pour obtenir des exemples de modèles de régression, consultez les exemples d’expériences suivants dans le Azure ai Gallery:
Comparer les régressions : compareplusieurs types différents de modèles de régression.
Validation croisée pour la régression: illustre la régression linéaire à l’aide des moindres carrés ordinaires.
Analyse de sentiments Twitter: utilise plusieurs modèles de régression différents pour générer des évaluations prédites.
Notes techniques
Cette section contient des détails, des conseils et des réponses aux questions fréquentes concernant l’implémentation.
Conseils d’utilisation
De nombreux outils prennent en charge la création d'une régression linéaire, de la plus simple à la plus complexe. par exemple, vous pouvez facilement effectuer une régression linéaire dans Excel à l’aide de l’utilitaire solver, ou vous pouvez coder votre propre algorithme de régression à l’aide de R, Python ou C#.
Toutefois, étant donné que la régression linéaire est une technique bien établie qui est prise en charge par de nombreux outils différents, il existe de nombreuses interprétations et implémentations différentes. Tous les types de modèles ne sont pas pris en charge de manière égale par tous les outils. Il existe également quelques différences de nomenclature à observer.
Les méthodes de régression sont souvent classées en fonction du nombre de variables de réponse. Par exemple, une régression linéaire multiple signifie un modèle ayant plusieurs variables à prédire.
Dans Matlab, la régression à plusieurs variables fait référence à un modèle qui a plusieurs variables de réponse.
dans Machine Learning, les modèles de régression prennent en charge une variable de réponse unique.
Dans le langage R, les fonctionnalités fournies pour la régression linéaire dépendent du package que vous utilisez. Par exemple, le package GLM vous donne la possibilité de créer un modèle de régression logistique avec plusieurs variables indépendantes. en général, Machine Learning Studio (classic) fournit les mêmes fonctionnalités que le package glm R.
Nous vous recommandons d’utiliser ce module, régression linéaire, pour les problèmes de régression classiques.
En revanche, si vous utilisez plusieurs variables pour prédire une valeur de classe, nous vous recommandons d’utiliser la régression logistique à deux classes ou les modules de régression logistique multiclasse .
si vous souhaitez utiliser d’autres packages de régression linéaire disponibles pour le langage R, nous vous recommandons d’utiliser le module exécuter le Script r et d’appeler les packages lm ou glm , qui sont inclus dans l’environnement d’exécution de Machine Learning Studio (classic).
Paramètres du module
Nom | Plage | Type | Default | Description |
---|---|---|---|---|
Normaliser les fonctionnalités | n'importe laquelle | Boolean | true | Indiquez si les instances doivent être normalisées. |
Hypothèse finale moyenne | n'importe laquelle | Boolean | true | Indiquez si la moyenne de l'hypothèse finale doit être calculée. |
Taux d’apprentissage | >=double.Epsilon | Float | 0.1 | Spécifiez le taux d'apprentissage initial pour l'optimiseur de descente de gradient stochastique. |
Nombre d'époques d'apprentissage | >=0 | Integer | 10 | Spécifiez le nombre de fois où l'algorithme doit effectuer une itération à travers des exemples. Pour les jeux de données comportant un petit nombre d’exemples, ce nombre doit être suffisamment important pour atteindre la convergence. |
Diminuer le taux d'apprentissage | Quelconque | Boolean | true | Indiquez si le taux d'apprentissage doit diminuer au fur et à mesure de la progression des itérations. |
Poids de régularisation L2 | >= 0,0 | Float | 0.001 | Spécifiez la pondération de la régularisation L2. Utilisez une valeur différente de zéro pour éviter le surajustement. |
Valeur initiale de nombre aléatoire | n'importe laquelle | Entier | Spécifiez une valeur pour amorcer le générateur de nombres aléatoires utilisé par le modèle. Laissez vide par défaut. | |
Autoriser les niveaux catégoriels inconnus | n'importe laquelle | Boolean | true | Indiquez si un niveau supplémentaire doit être créé pour chaque colonne catégorielle. Tous les niveaux du jeu de données de test qui ne sont pas disponibles dans le jeu de données d'apprentissage sont mappés à ce niveau supplémentaire. |
Inclure le terme d'interception | Quelconque | Boolean | True | Indiquez si un terme supplémentaire doit être ajouté pour l'interception. |
Sorties
Nom | Type | Description |
---|---|---|
Untrained model (Modèle non entraîné) | Interface ILearner | Modèle de régression non formé |