Menu
CoddyTech

Ajustement par les moindres carrés

Fait partie de la section Statistiques pour le ML du Journey Machine Learning de Coddy. Leçon 36 sur 64.

Deviner des droites pourrait prendre une éternité. np.polyfit(x, y, 1) trouve la meilleure d’un seul coup : la droite dont la somme des résidus au carré est la plus petite. Voici la profondeur de neige lors d’une tempête :

hours = np.array([1, 2, 3, 5, 6])
depth = np.array([14, 22, 35, 52, 61])
slope, intercept = np.polyfit(hours, depth, 1)
print(np.round(slope, 2), np.round(intercept, 2))

Cela affiche 9.5 4.5 : environ 9,5 cm de neige en plus par heure, et 4,5 cm à l’heure 0. Aucune autre droite ne présente une erreur moindre :

Épaisseur de neige en fonction des heures sous forme de cinq points, avec trois droites : deux estimations en pointillés dont les sommes des résidus au carré sont 159 et 18, et la droite polyfit épaisse avec 6.5

Le 1 demande une ligne droite, et x vient en premier. Il s’agit de la régression linéaire, le premier modèle que tu entraînes dans la section 3.

challenge icon

Défi

Moyen

Un fabricant de drones veut savoir quelle mesure prédit le mieux la durée de vol. drones.csv contient 15 vols : payload_g, wind_kmh et flight_min. Le code de départ charge le fichier et définit ssr(x, y, slope, intercept).

  1. Pour chaque colonne de columns, ajuste la droite qui prédit flight_min à partir de cette colonne.
  2. Affiche son équation et le SSR comme ci-dessous : pente avec 3 décimales, intercept et SSR avec 2.
  3. Affiche la colonne dont le SSR est le plus petit.

Pour un autre drone :

payload_g: flight_min = -0.001 * payload_g + 21.55, SSR 164.94
wind_kmh: flight_min = -0.481 * wind_kmh + 28.13, SSR 9.1
Better predictor: wind_kmh

Essayez vous-même

import numpy as np
import pandas as pd


# Renvoie la somme des carrés des résidus de la droite slope * x + intercept (leçon 35)
def ssr(x, y, slope, intercept):
    return ((y - (slope * x + intercept)) ** 2).sum()


drones = pd.read_csv("drones.csv")
columns = ["payload_g", "wind_kmh"]

# Écrivez votre code ci-dessous
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Statistiques pour le ML

Entraînez-vous par vous-même : Compilateur Python en ligne