Menu
CoddyTech

Plusieurs caractéristiques

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

Le prix d’une maison dépend de plus que de sa superficie : un long trajet à pied jusqu’à la gare le fait baisser. En apprenant à partir des deux facteurs, un modèle trace des droites parallèles :

Dix maisons représentées par des points, prix en fonction de la superficie : les maisons proches de la gare en bleu, celles qui en sont éloignées sous forme de carrés orange. Deux droites parallèles du modèle, pour un trajet à pied de 5 minutes et de 25 minutes ; la droite des 25 minutes se situe 102 000 dollars plus bas, quelle que soit la superficie

Dans le code, X récupère les deux colonnes et coef_ une pondération par caractéristique :

X = houses[["area_m2", "minutes_walk"]]
model = LinearRegression()
model.fit(X, houses["price"])
print(np.round(model.coef_, 1))

Cela affiche :

[ 2.6 -5.1]

Les poids suivent les colonnes de X. Chaque m² supplémentaire ajoute 2,6 milliers de dollars ; chaque minute de marche supplémentaire en retranche 5,1 milliers, l’autre caractéristique restant constante.

L’unité d’un poids est celle de la cible par unité de sa caractéristique : milliers par m², par minute.

challenge icon

Défi

Moyen

Un traiteur établit des devis pour de nouveaux événements à partir de 40 événements passés dans events.csv : guests, courses, months_ahead (combien de temps à l’avance la réservation a été faite) et cost en dollars. Le code de départ lit les données d’un nouvel événement dans new_event.

  1. Ajustez une LinearRegression du coût en fonction des features.
  2. Pour chaque caractéristique, affichez ce qu’une unité supplémentaire ajoute ou retranche (2 décimales).
  3. Affichez le devis pour le nouvel événement (2 décimales).

Pour un autre traiteur :

Each extra guest adds 41.5 dollars
Each extra course adds 198.25 dollars
Each extra month booked ahead takes off 22.8 dollars
Quote: 4312.6 dollars

Essayez vous-même

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression

# Une ligne par événement passé : nombre d'invités, nombre de plats, nombre de mois de réservation à l'avance, coût en dollars
events = pd.read_csv("events.csv")
features = ["guests", "courses", "months_ahead"]
units = ["guest", "course", "month booked ahead"]
# Le nouvel événement, sous forme de tableau à une ligne
guests = int(input())
courses = int(input())
months = int(input())
new_event = pd.DataFrame({"guests": [guests], "courses": [courses], "months_ahead": [months]})

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