Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Costruzione della Regressione Lineare | Sezione
Practice
Projects
Quizzes & Challenges
Quiz
Challenges
/
Fondamenti di Apprendimento Supervisionato

bookCostruzione della Regressione Lineare

Hai già appreso cos'è la regressione lineare semplice e come trovare la retta che meglio si adatta ai dati. Ora seguirai tutti i passaggi per costruire una regressione lineare su un dataset reale.

Caricamento dei dati

Abbiamo un file, simple_height_data.csv, con i dati dei nostri esempi. Caricheremo il file e lo esamineremo:

123456
import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file print(df.head()) # Print the first 5 instances from a dataset
copy

Il dataset presenta due colonne: la prima è 'Father', che rappresenta la caratteristica di input, e la seconda è 'Height', che costituisce la nostra variabile target.

Assegneremo i valori target alla variabile y e i valori della caratteristica a X, quindi costruiremo uno scatterplot.

123456
import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Ricerca dei Parametri

Per implementare la regressione lineare in Scikit-learn, si utilizza la classe LinearRegression.

LinearRegression(fit_intercept=True, copy_X=True, n_jobs=None, positive=False)

Parametri

La classe LinearRegression dispone di diversi parametri che controllano il modo in cui il modello viene adattato.

  • fit_intercept (default=True): Determina se calcolare l'intercetta (bias) per questo modello. Se impostato su False, nessuna intercetta verrà utilizzata nei calcoli (ovvero, i dati si presumono centrati).
  • copy_X (default=True): Se True, X verrà copiato; altrimenti, potrebbe essere sovrascritto.
  • n_jobs (default=None): Numero di processi da utilizzare per il calcolo. Questo fornisce un'accelerazione solo per n_targets > 1 e problemi sufficientemente grandi. None significa 1 a meno che non si sia in un contesto joblib.parallel_backend. -1 indica l'utilizzo di tutti i processori.
  • positive (default=False): Se impostato su True, forza i coefficienti ad essere positivi. Questa opzione è supportata solo per array densi.

Metodi Comuni

  • fit(X, y): Adatta il modello lineare.
  • predict(X): Predice utilizzando il modello lineare.
  • score(X, y): Restituisce il coefficiente di determinazione della previsione.

Attributi

  • coef_: Coefficienti stimati per il problema di regressione lineare.
  • intercept_: Termine indipendente nel modello lineare.

In Scikit-learn, utilizziamo la classe LinearRegression dal modulo linear_model. A differenza di NumPy, qui non definiamo il grado; questa classe è specificamente progettata per modelli lineari. Usiamo il metodo .fit() per calcolare i parametri.

Ecco un esempio:

1234567891011121314
from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Nota

Se non si ha familiarità con la sintassi model.intercept_ e model.coef_, si tratta di una convenzione di Scikit-learn. Gli attributi che vengono calcolati (appresi) durante il processo di addestramento terminano sempre con un trattino basso _ (ad esempio, intercept_, coef_). L'attributo intercept_ è un singolo valore, mentre coef_ è un array che contiene i coefficienti per ciascuna caratteristica (nella regressione lineare semplice, contiene solo un elemento).

Effettuare le Previsioni

Ora possiamo tracciare la retta e prevedere nuove variabili utilizzando il modello addestrato.

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Ora che abbiamo il modello addestrato, possiamo utilizzare il metodo .predict() per prevedere nuovi valori.

123
X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(X_new) # Predict the target print('Predicted y: ', y_pred)
copy

Quindi è abbastanza semplice ottenere i parametri della regressione lineare. Tuttavia, alcune librerie possono anche fornire informazioni aggiuntive.

question mark

Quale classe viene utilizzata per implementare la regressione lineare in Scikit-learn?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

bookCostruzione della Regressione Lineare

Scorri per mostrare il menu

Hai già appreso cos'è la regressione lineare semplice e come trovare la retta che meglio si adatta ai dati. Ora seguirai tutti i passaggi per costruire una regressione lineare su un dataset reale.

Caricamento dei dati

Abbiamo un file, simple_height_data.csv, con i dati dei nostri esempi. Caricheremo il file e lo esamineremo:

123456
import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file print(df.head()) # Print the first 5 instances from a dataset
copy

Il dataset presenta due colonne: la prima è 'Father', che rappresenta la caratteristica di input, e la seconda è 'Height', che costituisce la nostra variabile target.

Assegneremo i valori target alla variabile y e i valori della caratteristica a X, quindi costruiremo uno scatterplot.

123456
import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Ricerca dei Parametri

Per implementare la regressione lineare in Scikit-learn, si utilizza la classe LinearRegression.

LinearRegression(fit_intercept=True, copy_X=True, n_jobs=None, positive=False)

Parametri

La classe LinearRegression dispone di diversi parametri che controllano il modo in cui il modello viene adattato.

  • fit_intercept (default=True): Determina se calcolare l'intercetta (bias) per questo modello. Se impostato su False, nessuna intercetta verrà utilizzata nei calcoli (ovvero, i dati si presumono centrati).
  • copy_X (default=True): Se True, X verrà copiato; altrimenti, potrebbe essere sovrascritto.
  • n_jobs (default=None): Numero di processi da utilizzare per il calcolo. Questo fornisce un'accelerazione solo per n_targets > 1 e problemi sufficientemente grandi. None significa 1 a meno che non si sia in un contesto joblib.parallel_backend. -1 indica l'utilizzo di tutti i processori.
  • positive (default=False): Se impostato su True, forza i coefficienti ad essere positivi. Questa opzione è supportata solo per array densi.

Metodi Comuni

  • fit(X, y): Adatta il modello lineare.
  • predict(X): Predice utilizzando il modello lineare.
  • score(X, y): Restituisce il coefficiente di determinazione della previsione.

Attributi

  • coef_: Coefficienti stimati per il problema di regressione lineare.
  • intercept_: Termine indipendente nel modello lineare.

In Scikit-learn, utilizziamo la classe LinearRegression dal modulo linear_model. A differenza di NumPy, qui non definiamo il grado; questa classe è specificamente progettata per modelli lineari. Usiamo il metodo .fit() per calcolare i parametri.

Ecco un esempio:

1234567891011121314
from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Nota

Se non si ha familiarità con la sintassi model.intercept_ e model.coef_, si tratta di una convenzione di Scikit-learn. Gli attributi che vengono calcolati (appresi) durante il processo di addestramento terminano sempre con un trattino basso _ (ad esempio, intercept_, coef_). L'attributo intercept_ è un singolo valore, mentre coef_ è un array che contiene i coefficienti per ciascuna caratteristica (nella regressione lineare semplice, contiene solo un elemento).

Effettuare le Previsioni

Ora possiamo tracciare la retta e prevedere nuove variabili utilizzando il modello addestrato.

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Ora che abbiamo il modello addestrato, possiamo utilizzare il metodo .predict() per prevedere nuovi valori.

123
X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(X_new) # Predict the target print('Predicted y: ', y_pred)
copy

Quindi è abbastanza semplice ottenere i parametri della regressione lineare. Tuttavia, alcune librerie possono anche fornire informazioni aggiuntive.

question mark

Quale classe viene utilizzata per implementare la regressione lineare in Scikit-learn?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 3
some-alt