Menu
CoddyTech

Résidus

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

Ce chapitre trace une droite de tendance à travers les données, fait des prédictions avec elle et l’évalue. Voici où cela mène :

Cinq travaux de tonte de pelouse représentés par des points, les minutes en fonction de la superficie de la pelouse, avec une droite de tendance orange qui les traverse et une grande étoile verte sur la droite indiquant une prédiction de 50 minutes pour une nouvelle pelouse de 10

Quelle est la qualité d’une droite ? Un service d’entretien des pelouses estime qu’il faut 4.5 * area + 5 minutes par tâche. Chaque écart rouge est un résidu : valeur réelle moins valeur prédite.

Les cinq tâches d’entretien des pelouses et la droite estimée, avec un écart vertical rouge entre chaque point et la droite, indiqué +6, -5, +3.5, -7 et +3.5

Élevez-les au carré et additionnez-les pour évaluer la droite :

area = np.array([4, 6, 9, 12, 15])
minutes = np.array([29, 27, 49, 52, 76])
residuals = minutes - (4.5 * area + 5)
print(residuals)
print((residuals ** 2).sum())

Cela affiche :

[ 6.  -5.   3.5 -7.   3.5]
134.5

Les carrés empêchent +6 et -6 de s’annuler. Plus cette somme des carrés des résidus est petite, meilleure est la droite. Un modèle apprend en la réduisant.

challenge icon

Défi

Moyen

Une entreprise de déménagement estime la durée d’un déménagement en fonction du nombre de cartons. boxes et hours contiennent les données de huit déménagements passés, et le programme lit deux droites estimées : slope1, intercept1, puis slope2, intercept2.

  1. Évalue chaque droite en calculant la somme des carrés des résidus.
  2. Affiche les deux sommes, arrondies à 2 décimales, ainsi que la meilleure droite, comme ci-dessous.

Pour les droites 0.16 * boxes + 0.8 et 0.12 * boxes + 2.5 :

Line 1 SSR: 0.57
Line 2 SSR: 4.1
Better: line 1

Essayez vous-même

import numpy as np

boxes = np.array([10, 18, 25, 32, 40, 47, 55, 60])
hours = np.array([2.5, 3.5, 5.0, 5.5, 7.0, 8.0, 9.5, 10.0])
slope1 = float(input())
intercept1 = float(input())
slope2 = float(input())
intercept2 = float(input())

# É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