Modèles linéaires dans Scikit-Learn

Machine LearningMachine LearningBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons explorer les modèles linéaires dans scikit-learn. Les modèles linéaires sont un ensemble de méthodes utilisées pour les tâches de régression et de classification. Ils supposent que la variable cible est une combinaison linéaire des caractéristiques. Ces modèles sont largement utilisés en apprentissage automatique en raison de leur simplicité et de leur interprétabilité.

Nous aborderons les sujets suivants :

  • Moindres carrés ordinaires
  • Régression Ridge
  • Lasso
  • Régression logistique
  • Descente de gradient stochastique
  • Perceptron

Commencez avec Supervised Learning: Regression, si vous n'avez pas d'expérience antérieure en apprentissage automatique.

Conseils sur la VM

Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous résoudrons rapidement le problème pour vous.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/linear_model("Linear Models") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/linear_model -.-> lab-71093{{"Modèles linéaires dans Scikit-Learn"}} ml/sklearn -.-> lab-71093{{"Modèles linéaires dans Scikit-Learn"}} end

Moindres carrés ordinaires

Commencez avec Supervised Learning: Regression, si vous n'avez pas d'expérience antérieure en apprentissage automatique.

Les moindres carrés ordinaires (OLS) est une méthode de régression linéaire qui minimise la somme des carrés des différences entre les cibles observées et les cibles prédites. Mathématiquement, il résout un problème de la forme :

\min_{w} || X w - y||_2^2

Commenceons par ajuster un modèle de régression linéaire en utilisant les OLS.

from sklearn import linear_model

reg = linear_model.LinearRegression()
X = [[0, 0], [1, 1], [2, 2]]
y = [0, 1, 2]
reg.fit(X, y)

print(reg.coef_)
  • Nous importons le module linear_model de scikit-learn.
  • Nous créons une instance de LinearRegression.
  • Nous utilisons la méthode fit pour ajuster le modèle aux données d'entraînement.
  • Nous affichons les coefficients du modèle linéaire.

Régression Ridge

La régression Ridge est une méthode de régression linéaire qui ajoute un terme de pénalité à la fonction objectif des moindres carrés ordinaires. Ce terme de pénalité aide à réduire le surapprentissage en réduisant les coefficients vers zéro. La complexité du modèle peut être contrôlée par le paramètre de régularisation.

Ajustons un modèle de régression Ridge.

reg = linear_model.Ridge(alpha=0.5)
reg.fit([[0, 0], [0, 0], [1, 1]], [0, 0.1, 1])

print(reg.coef_)
  • Nous créons une instance de Ridge avec le paramètre de régularisation alpha défini sur 0,5.
  • Nous utilisons la méthode fit pour ajuster le modèle aux données d'entraînement.
  • Nous affichons les coefficients du modèle de régression Ridge.

Lasso

Le Lasso est une méthode de régression linéaire qui ajoute un terme de pénalité à la fonction objectif des moindres carrés ordinaires. Le terme de pénalité a pour effet de fixer certains coefficients à exactement zéro, effectuant ainsi une sélection de caractéristiques. Le Lasso peut être utilisé pour l'estimation de modèles creux.

Ajustons un modèle Lasso.

reg = linear_model.Lasso(alpha=0.1)
reg.fit([[0, 0], [1, 1]], [0, 1])

print(reg.coef_)
  • Nous créons une instance de Lasso avec le paramètre de régularisation alpha défini sur 0,1.
  • Nous utilisons la méthode fit pour ajuster le modèle aux données d'entraînement.
  • Nous affichons les coefficients du modèle Lasso.

Régression logistique

La régression logistique est une méthode de classification qui estime les probabilités des résultats possibles en utilisant une fonction logistique. Elle est couramment utilisée pour les tâches de classification binaire. La régression logistique peut également être étendue pour gérer les problèmes de classification multi-classe.

Ajustons un modèle de régression logistique.

clf = linear_model.LogisticRegression(random_state=0).fit(X, y)
print(clf.coef_)
  • Nous créons une instance de LogisticRegression avec le paramètre random_state défini sur 0.
  • Nous utilisons la méthode fit pour ajuster le modèle aux données d'entraînement.
  • Nous affichons les coefficients du modèle de régression logistique.

Gradient stochastique (SGD)

Le Gradient stochastique (SGD) est une approche simple mais efficace pour entraîner des modèles linéaires. Il est particulièrement utile lorsque le nombre d'échantillons et de caractéristiques est très grand. Le SGD met à jour les paramètres du modèle en utilisant un sous-ensemble réduit des données d'entraînement à chaque itération, ce qui le rend adapté à l'apprentissage en ligne et à l'apprentissage hors mémoire.

Ajustons un modèle de régression logistique en utilisant le SGD.

clf = linear_model.SGDClassifier(loss="log_loss", max_iter=1000)
clf.fit(X, y)

print(clf.coef_)
  • Nous créons une instance de SGDClassifier avec le paramètre loss défini sur "log_loss" pour effectuer une régression logistique.
  • Nous utilisons la méthode fit pour ajuster le modèle aux données d'entraînement.
  • Nous affichons les coefficients du modèle de régression logistique obtenu en utilisant le SGD.

Perceptron

Le Perceptron est un algorithme de classification linéaire simple adapté à l'apprentissage à grande échelle. Il met à jour son modèle uniquement sur les erreurs, ce qui le rend plus rapide à entraîner que le gradient stochastique (SGD) avec une perte hinge. Les modèles résultants sont également plus creux.

Ajustons un modèle de perceptron.

clf = linear_model.Perceptron(alpha=0.1)
clf.fit(X, y)

print(clf.coef_)
  • Nous créons une instance de Perceptron avec le paramètre de régularisation alpha défini sur 0,1.
  • Nous utilisons la méthode fit pour ajuster le modèle aux données d'entraînement.
  • Nous affichons les coefficients du modèle de perceptron.

Sommaire

Dans ce laboratoire, nous avons exploré les modèles linéaires dans scikit - learn. Nous avons appris sur les moindres carrés ordinaires, la régression ridge, le lasso, la régression logistique, le gradient stochastique et le perceptron. Ces modèles peuvent être utilisés pour les tâches de régression et de classification. Nous avons également vu comment ajuster ces modèles en utilisant diverses algorithmes et techniques telles que l'apprentissage en ligne et la sélection de caractéristiques.