Moyennes carrées ordinaires en Python

PythonBeginner
Pratiquer maintenant

Introduction

Dans ce projet, vous allez apprendre à implémenter la méthode des moindres carrés ordinaires (OLS en anglais) en Python. L'OLS est une technique fondamentale d'optimisation mathématique utilisée en apprentissage automatique, en particulier dans les problèmes de régression linéaire.

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment implémenter la fonction OLS pour calculer la pente (w1) et l'intercept (w0) d'une équation linéaire sur la base de données d'échantillons.
  • Comment tester la fonction OLS avec des données d'échantillons et vérifier la correction des résultats.

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Découvrir les formules OLS pour calculer la pente et l'intercept d'une équation linéaire.
  • Implémenter la fonction OLS en Python sans utiliser de bibliothèques externes.
  • Tester et valider la fonction OLS avec des données d'échantillons.
  • Comprendre l'importance de la méthode OLS en apprentissage automatique et dans les problèmes de régression linéaire.

Implémentez la fonction des moindres carrés

Dans cette étape, vous allez implémenter la fonction des moindres carrés ordinaires (OLS en anglais) en Python. Suivez les étapes ci-dessous pour terminer cette étape :

  1. Ouvrez le fichier least_squares.py dans votre éditeur de texte.

  2. Implémentez la fonction least_squares_function selon les spécifications fournies :

    • La fonction devrait prendre deux paramètres d'entrée : x (une liste de valeurs d'échantillons x) et y (une liste de valeurs d'échantillons y).
    • La fonction devrait calculer la pente (w1) et l'intercept (w0) de l'équation linéaire à l'aide des formules OLS fournies dans la description du défi.
    • La fonction devrait arrondir les valeurs calculées de w0 et w1 à deux décimales avant de les retourner.
    • La fonction devrait retourner les valeurs de w0 et w1 dans cet ordre.

Voici l'implémentation complète de la fonction least_squares_function :

def least_squares_function(x, y):
    """
    Paramètres :
    x -- liste de valeurs d'échantillons x
    y -- liste de valeurs d'échantillons y

    Retourne :
    w0 -- paramètre de l'équation linéaire, arrondi à deux décimales
    w1 -- paramètre de l'équation linéaire, arrondi à deux décimales
    """

    n = len(x)

    ## Calcule les sommes nécessaires pour la pente (w1) et l'intercept (w0)
    sum_x = sum(x)
    sum_y = sum(y)
    sum_xy = sum(x_i * y_i for x_i, y_i in zip(x, y))
    sum_x_squared = sum(x_i**2 for x_i in x)

    ## Calcule la pente (w1) et l'intercept (w0) à l'aide des formules OLS
    w1 = (n * sum_xy - sum_x * sum_y) / (n * sum_x_squared - sum_x**2)
    w0 = (sum_y - w1 * sum_x) / n

    ## Arrondi à deux décimales
    w0 = round(w0, 2)
    w1 = round(w1, 2)

    return w0, w1
  1. Enregistrez le fichier least_squares.py.

Testez la fonction des moindres carrés

Dans cette étape, vous allez tester la fonction least_squares_function que vous avez implémentée dans l'étape précédente.

  1. Vous pouvez voir le code suivant à la fin du fichier pour tester la fonction least_squares_function :
## Utilisation exemple
if __name__ == "__main__":
    x_example = [1, 2, 3, 4]
    y_example = [4, 5, 6, 7]

    result = least_squares_function(x_example, y_example)
    print("w0:", result[0])
    print("w1:", result[1])
  1. Exécutez le script least_squares.py dans votre terminal :
python3 least_squares.py

Vous devriez voir la sortie suivante :

w0: 3.0
w1: 1.0

Cette sortie confirme que la fonction least_squares_function fonctionne comme prévu.

Félicitations ! Vous avez réussi à implémenter la fonction des moindres carrés ordinaires en Python. Dans les étapes suivantes, vous pouvez explorer comment utiliser cette fonction dans un problème d'apprentissage automatique du monde réel.

Résumé

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer