Menu
CoddyTech

Prédire des nombres

Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 11 sur 58.

Les modèles de ce chapitre prédisent des nombres. À la fin, un graphique des erreurs d’un modèle révélera ce qu’il n’a pas remarqué :

Graphique des erreurs d’un modèle en fonction de la température : les points forment un arc de -280 à +140 puis redescendent, autour d’une ligne pointillée à 0, légendée : le modèle n’a pas remarqué une courbe

Commence avec une droite que tu connais. LinearRegression l’apprend à partir d’un tableau X, avec une ligne par échantillon et une colonne par caractéristique :

from sklearn.linear_model import LinearRegression

area = np.array([60, 75, 90, 110, 130, 150])  # maisons, en m²
price = np.array([215, 248, 290, 335, 385, 428])  # milliers de dollars
X = area.reshape(-1, 1)  # 6 lignes, 1 colonne
model = LinearRegression()
model.fit(X, price)
print(np.round(model.coef_, 2), np.round(model.intercept_, 2))
print(np.round(np.polyfit(area, price, 1), 2))

Cela affiche la même ligne deux fois :

[2.39] 71.59
[ 2.39 71.59]

Six maisons représentées par des points, le prix en fonction de la superficie, avec la droite LinearRegression orange épaisse et la droite np.polyfit noire en pointillés exactement superposées : prix = 2.39 * superficie + 71.59

coef_ contient une pente par caractéristique : chaque m² supplémentaire ajoute 2.39 milliers de dollars. intercept_ correspond au point de départ de la droite, à 0 m². Ensuite, model.predict([[100]]) estime le prix de 100 m² à environ 310.85 milliers.

challenge icon

Défi

Moyen

Une imprimerie ne publiait jamais ses tarifs, mais tu disposes de 10 travaux précédents : pages et price en dollars. Le programme lit le nombre de pages d’un nouveau travail.

  1. Ajuste une LinearRegression au nombre de pages, sous la forme d’un tableau à une colonne.
  2. Affiche le prix par page (3 décimales) et les frais de mise en service, l’ordonnée à l’origine (2 décimales).
  3. Affiche le prix prédit du nouveau travail (2 décimales).

Pour une autre imprimerie et 120 :

Per page: 0.095 dollars
Setup fee: 4.1 dollars
120 pages: 15.5 dollars

Essayez vous-même

import numpy as np
from sklearn.linear_model import LinearRegression

# 10 travaux d'impression précédents : nombre de pages imprimées et prix payé, en dollars
pages = np.array([40, 75, 120, 160, 210, 260, 300, 380, 450, 520])
price = np.array([7.38, 12.6, 17.65, 20.69, 26.63, 32.18, 37.76, 46.4, 55.17, 60.89])
new_pages = int(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 Apprentissage supervisé

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