Menu
CoddyTech

Prevedere numeri

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

I modelli di questo capitolo prevedono numeri. Alla fine, un grafico degli errori di un modello mostrerà ciò che non ha rilevato:

Un grafico degli errori di un modello rispetto alla temperatura: i punti formano un arco da -280 fino a +140 e poi di nuovo verso il basso, intorno a una linea tratteggiata a 0, con l’etichetta: il modello non ha rilevato una curva

Inizia con una retta che conosci. LinearRegression la apprende da una tabella X, con una riga per campione e una colonna per caratteristica:

from sklearn.linear_model import LinearRegression

area = np.array([60, 75, 90, 110, 130, 150])  # casas, en m²
price = np.array([215, 248, 290, 335, 385, 428])  # miles de dólares
X = area.reshape(-1, 1)  # 6 filas, 1 columna
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))

Questo stampa la stessa riga due volte:

[2.39] 71.59
[ 2.39 71.59]

Sei case rappresentate da punti, prezzo rispetto alla superficie, con la spessa retta arancione di LinearRegression e la retta nera tratteggiata di np.polyfit sovrapposte esattamente: prezzo = 2.39 * superficie + 71.59

coef_ contiene una pendenza per caratteristica: ogni m² in più aggiunge 2.39 mila dollari. intercept_ è il punto di partenza della retta, a 0 m². Poi model.predict([[100]]) stima il prezzo di 100 m² a circa 310.85 mila.

challenge icon

Sfida

Medio

Una tipografia non ha mai pubblicato i suoi prezzi, ma hai 10 lavori precedenti: pages e price in dollari. Il programma legge il numero di pagine di un nuovo lavoro.

  1. Adatta un modello LinearRegression alle pagine, come tabella a una colonna.
  2. Stampa il prezzo per pagina (3 decimali) e il costo di avvio, cioè l’intercetta (2 decimali).
  3. Stampa il prezzo previsto per il nuovo lavoro (2 decimali).

Per un’altra tipografia e 120:

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

Provalo tu

import numpy as np
from sklearn.linear_model import LinearRegression

# 10 lavori di stampa precedenti: pagine stampate e prezzo pagato, in dollari
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())

# 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