APPRENTISSAGE AVEC PYTHON ET SICKIT LEARN

Ce TP poursuit l'étude de la régression linéaire avec Python et la bibliothèque Scikit-learn. Il permet d'apprendre à évaluer un modèle de régression, à résoudre analytiquement l'équation du modèle pour minimiser la fonction de coût, et à mesurer ses performances sur un ensemble de test.

D'après le document APPRENTISSAGE AVEC PYTHON ET SICKIT LEARN

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

APPRENTISSAGE AVEC PYTHON ET SICKIT LEARN

Document source

APPRENTISSAGE AVEC PYTHON ET SICKIT LEARN

Business Analytics, Data Science, Programming, Statistics · PDF · 4 pages

Afficher l'aperçu du document

Consulter le document original →

Ce TP poursuit l'étude de la régression linéaire avec Python et la bibliothèque Scikit-learn. Il permet d'apprendre à évaluer un modèle de régression, à résoudre analytiquement l'équation du modèle pour minimiser la fonction de coût, et à mesurer ses performances sur un ensemble de test. Pour réaliser ce TP, il est nécessaire d'avoir déjà effectué une régression linéaire simple avec Scikit-learn et de disposer d'un environnement Python avec numpy et sklearn installés.

Objectifs

  • Utiliser la somme résiduelle des carrés (RSS) pour évaluer l’apprentissage d’un modèle de régression.
  • Résoudre analytiquement l’équation du modèle linéaire y = αx + β pour minimiser la fonction de coût.
  • Mesurer les performances du modèle sur un ensemble de test indépendant.

Prérequis et installation

  • Connaissances de base en Python et en régression linéaire.
  • Python installé avec les bibliothèques numpy et scikit-learn.
  • Un éditeur de code ou un notebook Jupyter pour exécuter les scripts Python.
  • Les données d'exemple sur les tailles et prix de pizzas utilisées dans le TP précédent.

Évaluation du modèle avec la somme résiduelle des carrés (RSS)

Pour évaluer la qualité de notre modèle de régression, il faut définir une fonction de perte appelée fonction de coût. La différence entre le prix réel des pizzas (valeurs observées) et le prix prédit par le modèle est appelée erreur résiduelle. En évaluant le modèle sur un ensemble de test indépendant, cette erreur devient l’erreur de prédiction.

La somme résiduelle des carrés (RSS) est la somme des carrés des erreurs résiduelles. Elle est représentée par :

RSS = Σ (yᵢ - f(xᵢ))²

où yᵢ est la valeur observée et f(xᵢ) la valeur prédite par le modèle.

En Python, calculez cette erreur avec les données de test et les prédictions du modèle. Un RSS faible indique un bon ajustement. Par exemple, un RSS obtenu de 1.75 est un résultat attendu.

Étude théorique : calcul analytique des paramètres α et β

Le modèle linéaire est défini par l’équation :

y = αx + β

Nous cherchons à déterminer les paramètres α et β qui minimisent la fonction de coût (RSS).

Pour calculer α, il faut d’abord calculer la variance de x et la covariance entre x et y.

Calcul de la variance

La variance mesure la dispersion des valeurs x autour de leur moyenne x̄ :

variance = (1 / (n - 1)) * Σ (xᵢ - x̄)²

où n est le nombre d’exemples, xᵢ un exemple, et x̄ la moyenne des x.

En Python, utilisez la fonction numpy :

np.var(x, ddof=1)

Calcul de la covariance

La covariance mesure comment x et y varient ensemble :

covariance = (1 / (n - 1)) * Σ (xᵢ - x̄)(yᵢ - ȳ)

où ȳ est la moyenne des y.

En Python, utilisez :

np.cov(x.transpose(), y)[0][1]

Calcul du paramètre α

Une fois variance et covariance calculées, α est donné par :

α = covariance / variance

Calculez cette valeur en Python pour obtenir le coefficient directeur de la droite de régression.

Calcul du paramètre β

Le paramètre β est calculé pour que la droite passe par le centroïde (x̄, ȳ) :

β = ȳ - α * x̄

Calculez β en utilisant les moyennes de x et y ainsi que le α précédemment calculé.

Évaluation du modèle sur un ensemble de test indépendant

Pour éviter le surapprentissage, il est important d’évaluer le modèle sur un ensemble de test distinct. Voici un exemple d’ensemble de test :

Exemple 1 2 3 4 5
Taille 8 9 11 16 12
Prix 11 8.5 15 18 11

Une mesure classique pour évaluer la qualité du modèle est le coefficient de détermination R-squared (R²), qui compare la RSS à la somme totale des carrés (TSS) :

TSS = Σ (yᵢ - ȳ)²
R² = 1 - (RSS / TSS)

où yᵢ sont les valeurs observées et ȳ leur moyenne.

En Python, vous pouvez calculer R² directement avec la fonction score de sklearn :

model.score(X_test, y_test)

Un R² de 0.66 indique que 66% de la variance des données est expliquée par le modèle.

Résultats attendus

  • Une somme résiduelle des carrés (RSS) proche de 1.75 sur l’ensemble d’apprentissage.
  • Calcul correct des paramètres α et β à partir des formules analytiques et des fonctions numpy.
  • Un coefficient de détermination R² d’environ 0.66 sur l’ensemble de test.

Pièges courants

  • Confondre l’erreur résiduelle (sur l’ensemble d’apprentissage) avec l’erreur de prédiction (sur l’ensemble de test).
  • Oublier de centrer les données (calculer les moyennes x̄ et ȳ) avant de calculer la covariance et la variance.
  • Utiliser np.var sans le paramètre ddof=1, ce qui donne une variance biaisée.
  • Ne pas vérifier que le modèle passe bien par le centroïde (x̄, ȳ) après calcul de α et β.
  • Évaluer le modèle sur les mêmes données utilisées pour l’entraînement, ce qui fausse la mesure de performance.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions