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

bookOverfitting

Overfitting

Considerare le due linee di regressione sottostanti. Quale delle due è migliore?

Le metriche suggeriscono che il secondo modello sia migliore, quindi lo utilizziamo per prevedere X_new = [0.2, 0.5, 2.7]. Tuttavia, dopo aver confrontato le previsioni con i valori reali, il primo modello ottiene risultati migliori.

Questo accade perché il secondo modello overfitta — è troppo complesso e si adatta eccessivamente ai dati di addestramento, non riuscendo a generalizzare su nuovi casi.

Underfitting

Underfitting si verifica quando un modello è troppo semplice per adattarsi anche ai dati di addestramento, il che porta anche a previsioni scadenti su dati non visti.

Possiamo quindi cercare di determinare visivamente se il modello è soggetto a underfitting o overfitting.

Poiché non possiamo visualizzare modelli ad alta dimensionalità, è necessario un altro metodo per rilevare overfitting o underfitting.

Suddivisione Train-Test

Per stimare le prestazioni su dati non visti, il dataset viene suddiviso in un set di addestramento e un set di test con target noti.

L'addestramento viene effettuato sul set di addestramento e le metriche vengono calcolate sia sul set di addestramento che su quello di test per confrontare le prestazioni.

La suddivisione deve essere casuale. Tipicamente, il 20–30% viene assegnato al set di test e il 70–80% viene utilizzato per l'addestramento. Scikit-learn offre un modo semplice per eseguire questa operazione.

Ad esempio, per suddividere il set di addestramento in 70% addestramento/30% test, è possibile 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, determinare se sovra-adattano/sotto-adattano 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

Suggested prompts:

Can you explain more about how overfitting and underfitting affect model performance?

What are some ways to prevent overfitting in machine learning models?

How do I choose the right train-test split ratio for my dataset?

Awesome!

Completion rate improved to 5.26

bookOverfitting

Scorri per mostrare il menu

Overfitting

Considerare le due linee di regressione sottostanti. Quale delle due è migliore?

Le metriche suggeriscono che il secondo modello sia migliore, quindi lo utilizziamo per prevedere X_new = [0.2, 0.5, 2.7]. Tuttavia, dopo aver confrontato le previsioni con i valori reali, il primo modello ottiene risultati migliori.

Questo accade perché il secondo modello overfitta — è troppo complesso e si adatta eccessivamente ai dati di addestramento, non riuscendo a generalizzare su nuovi casi.

Underfitting

Underfitting si verifica quando un modello è troppo semplice per adattarsi anche ai dati di addestramento, il che porta anche a previsioni scadenti su dati non visti.

Possiamo quindi cercare di determinare visivamente se il modello è soggetto a underfitting o overfitting.

Poiché non possiamo visualizzare modelli ad alta dimensionalità, è necessario un altro metodo per rilevare overfitting o underfitting.

Suddivisione Train-Test

Per stimare le prestazioni su dati non visti, il dataset viene suddiviso in un set di addestramento e un set di test con target noti.

L'addestramento viene effettuato sul set di addestramento e le metriche vengono calcolate sia sul set di addestramento che su quello di test per confrontare le prestazioni.

La suddivisione deve essere casuale. Tipicamente, il 20–30% viene assegnato al set di test e il 70–80% viene utilizzato per l'addestramento. Scikit-learn offre un modo semplice per eseguire questa operazione.

Ad esempio, per suddividere il set di addestramento in 70% addestramento/30% test, è possibile 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, determinare se sovra-adattano/sotto-adattano 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