Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Overfitting | Scelta del Modello Migliore
Regressione Lineare con Python
course content

Contenuti del Corso

Regressione Lineare con Python

Regressione Lineare con Python

1. Regressione Lineare Semplice
2. Regressione Lineare Multipla
3. Regressione Polinomiale
4. Scelta del Modello Migliore

book
Overfitting

Overfitting

Considera le due linee di regressione qui sotto. Quale delle due è migliore?

Secondo le metriche, la seconda è migliore. Quindi la useremo per prevedere nuovi valori! Abbiamo bisogno delle previsioni per X_new = [0.2,0.5,2.7]. Tuttavia, quando abbiamo ottenuto i valori target reali per gli X_new appena previsti, si è scoperto che il primo modello aveva una previsione molto migliore.

Questo accade perché il secondo modello overfitta il set di addestramento. Overfitting si verifica quando il modello costruito è troppo complesso e si adatta perfettamente ai dati di addestramento, ma non riesce a prevedere altre istanze non viste altrettanto bene.

Underfitting

Esiste anche un altro concetto, underfitting. Si verifica quando il modello costruito è troppo semplice e non riesce nemmeno ad adattarsi bene ai dati di addestramento. In questi casi, anche le previsioni delle istanze non viste risultano errate.

È possibile cercare di capire se il modello presenta underfitting o overfitting anche visivamente.

Sappiamo già che non è possibile visualizzare la Regressione Lineare Multipla con molte variabili. Esiste un altro modo per capire se il modello presenta overfitting o underfitting? In effetti, esiste.

Suddivisione Train-Test

Vogliamo sapere come il modello si comporterà su istanze mai viste. Per questo, abbiamo bisogno di istanze non viste con i veri valori target. E abbiamo i veri valori target solo nel set di addestramento. Il metodo corretto consiste nel suddividere il set di addestramento in due insiemi: un set di addestramento e un set di test.

Ora possiamo costruire il modello utilizzando il set di addestramento, calcolare le metriche sul set di addestramento (istanze viste) e poi calcolare le metriche sul set di test (istanze non viste).

È fondamentale suddividere il set di addestramento in modo casuale. Solitamente, si utilizza circa il 20-30% del set di addestramento come set di test, mentre il restante 70-80% viene lasciato come set di addestramento. Scikit-learn fornisce una funzione semplice per suddividere casualmente il set:

Ad esempio, per suddividere il set di addestramento in 70% addestramento/30% test, puoi utilizzare il seguente codice:

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

In base ai punteggi MSE dei modelli, determina se sovradattano o sottodattano il set di addestramento (il dataset è lo stesso).

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

Click or drag`n`drop items and fill in the blanks

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

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

course content

Contenuti del Corso

Regressione Lineare con Python

Regressione Lineare con Python

1. Regressione Lineare Semplice
2. Regressione Lineare Multipla
3. Regressione Polinomiale
4. Scelta del Modello Migliore

book
Overfitting

Overfitting

Considera le due linee di regressione qui sotto. Quale delle due è migliore?

Secondo le metriche, la seconda è migliore. Quindi la useremo per prevedere nuovi valori! Abbiamo bisogno delle previsioni per X_new = [0.2,0.5,2.7]. Tuttavia, quando abbiamo ottenuto i valori target reali per gli X_new appena previsti, si è scoperto che il primo modello aveva una previsione molto migliore.

Questo accade perché il secondo modello overfitta il set di addestramento. Overfitting si verifica quando il modello costruito è troppo complesso e si adatta perfettamente ai dati di addestramento, ma non riesce a prevedere altre istanze non viste altrettanto bene.

Underfitting

Esiste anche un altro concetto, underfitting. Si verifica quando il modello costruito è troppo semplice e non riesce nemmeno ad adattarsi bene ai dati di addestramento. In questi casi, anche le previsioni delle istanze non viste risultano errate.

È possibile cercare di capire se il modello presenta underfitting o overfitting anche visivamente.

Sappiamo già che non è possibile visualizzare la Regressione Lineare Multipla con molte variabili. Esiste un altro modo per capire se il modello presenta overfitting o underfitting? In effetti, esiste.

Suddivisione Train-Test

Vogliamo sapere come il modello si comporterà su istanze mai viste. Per questo, abbiamo bisogno di istanze non viste con i veri valori target. E abbiamo i veri valori target solo nel set di addestramento. Il metodo corretto consiste nel suddividere il set di addestramento in due insiemi: un set di addestramento e un set di test.

Ora possiamo costruire il modello utilizzando il set di addestramento, calcolare le metriche sul set di addestramento (istanze viste) e poi calcolare le metriche sul set di test (istanze non viste).

È fondamentale suddividere il set di addestramento in modo casuale. Solitamente, si utilizza circa il 20-30% del set di addestramento come set di test, mentre il restante 70-80% viene lasciato come set di addestramento. Scikit-learn fornisce una funzione semplice per suddividere casualmente il set:

Ad esempio, per suddividere il set di addestramento in 70% addestramento/30% test, puoi utilizzare il seguente codice:

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

In base ai punteggi MSE dei modelli, determina se sovradattano o sottodattano il set di addestramento (il dataset è lo stesso).

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

Click or drag`n`drop items and fill in the blanks

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 2
some-alt