Menu
CoddyTech

Più caratteristiche

Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 12 di 58.

Il prezzo di una casa dipende da più fattori delle sue dimensioni: una lunga passeggiata fino alla stazione lo abbassa. Imparando da entrambi i fattori, un modello traccia rette parallele:

Dieci case rappresentate come punti, prezzo rispetto alla superficie: le case vicine alla stazione in blu, quelle lontane come quadrati arancioni. Due rette parallele del modello, per una passeggiata di 5 e di 25 minuti; la retta dei 25 minuti si trova 102 mila dollari più in basso a ogni superficie

Nel codice, X ottiene entrambe le colonne e coef_ un peso per ogni caratteristica:

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

Questo stampa:

[ 2.6 -5.1]

I pesi seguono le colonne di X. Ogni m² in più aggiunge 2,6 mila dollari; ogni minuto in più di cammino ne toglie 5,1 mila, mantenendo invariata l'altra caratteristica.

L'unità di un peso è l'unità del target per unità della sua caratteristica: migliaia per m², per minuto.

challenge icon

Sfida

Medio

Un catering elabora preventivi per nuovi eventi basandosi su 40 eventi passati in events.csv: guests, courses, months_ahead (quanto tempo prima è stato prenotato) e cost in dollari. Il codice iniziale legge un nuovo evento in new_event.

  1. Addestra un modello LinearRegression del costo sulle features.
  2. Per ogni caratteristica, stampa quanto aggiunge o sottrae un'unità in più (2 decimali).
  3. Stampa il preventivo per il nuovo evento (2 decimali).

Per un altro catering:

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

Provalo tu

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

# Una riga per ogni evento passato: invitati, portate, mesi di anticipo della prenotazione, costo in dollari
events = pd.read_csv("events.csv")
features = ["guests", "courses", "months_ahead"]
units = ["guest", "course", "month booked ahead"]
# Il nuovo evento, come tabella con una sola riga
guests = int(input())
courses = int(input())
months = int(input())
new_event = pd.DataFrame({"guests": [guests], "courses": [courses], "months_ahead": [months]})

# Scrivi il tuo codice qui sotto
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Apprendimento supervisionato

Esercitati da solo: Compilatore Python online