Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Överanpassning | Välja Den Bästa Modellen
Linjär Regression med Python

Överanpassning

Svep för att visa menyn

Överanpassning

Titta på de två regressionslinjerna nedan. Vilken är bättre?

OverfittingExample

Mätvärdena antyder att den andra modellen är bättre, så vi använder den för att förutsäga X_new = [0.2, 0.5, 2.7]. Men efter att ha jämfört förutsägelserna med de faktiska värdena presterar den första modellen bättre.

Överanpassningsprognos

Detta sker eftersom den andra modellen överanpassar — den är för komplex och anpassar sig för mycket till träningsdatan, vilket gör att den misslyckas med att generalisera till nya exempel.

Underanpassning

Underanpassning uppstår när en modell är för enkel för att passa även träningsdatan, vilket också leder till dåliga förutsägelser på osedd data.

UnderfittingExample

Vi kan alltså försöka avgöra om modellen underanpassar eller överanpassar visuellt.

UnderGoodOver

Eftersom vi inte kan visualisera högdimensionella modeller behöver vi ett annat sätt att upptäcka överanpassning eller underanpassning.

Tränings- och testuppdelning

För att uppskatta prestanda på osedda data delar vi upp datasettet i en träningsuppsättning och en testuppsättning med kända målvariabler.

hus tränings test

Vi tränar på träningsuppsättningen och beräknar mätvärden på både tränings- och testuppsättningen för att jämföra prestanda.

traintestresults
TrainTestVideo

Uppdelningen måste vara slumpmässig. Vanligtvis går 20–30 % till testuppsättningen och 70–80 % används för träning. Scikit-learn erbjuder ett enkelt sätt att göra detta.

TrainTestFunc

Till exempel, för att dela upp träningsuppsättningen i 70 % träning/30 % test, kan du använda följande kod:

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

Baserat på MSE-värdena för modellerna, avgör om de överanpassar/underanpassar träningsuppsättningen (datasetet är detsamma).

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
.

Klicka eller dra`n`släpp objekt och fyll i luckorna

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Överanpassning

Överanpassning

Titta på de två regressionslinjerna nedan. Vilken är bättre?

OverfittingExample

Mätvärdena antyder att den andra modellen är bättre, så vi använder den för att förutsäga X_new = [0.2, 0.5, 2.7]. Men efter att ha jämfört förutsägelserna med de faktiska värdena presterar den första modellen bättre.

Överanpassningsprognos

Detta sker eftersom den andra modellen överanpassar — den är för komplex och anpassar sig för mycket till träningsdatan, vilket gör att den misslyckas med att generalisera till nya exempel.

Underanpassning

Underanpassning uppstår när en modell är för enkel för att passa även träningsdatan, vilket också leder till dåliga förutsägelser på osedd data.

UnderfittingExample

Vi kan alltså försöka avgöra om modellen underanpassar eller överanpassar visuellt.

UnderGoodOver

Eftersom vi inte kan visualisera högdimensionella modeller behöver vi ett annat sätt att upptäcka överanpassning eller underanpassning.

Tränings- och testuppdelning

För att uppskatta prestanda på osedda data delar vi upp datasettet i en träningsuppsättning och en testuppsättning med kända målvariabler.

hus tränings test

Vi tränar på träningsuppsättningen och beräknar mätvärden på både tränings- och testuppsättningen för att jämföra prestanda.

traintestresults
TrainTestVideo

Uppdelningen måste vara slumpmässig. Vanligtvis går 20–30 % till testuppsättningen och 70–80 % används för träning. Scikit-learn erbjuder ett enkelt sätt att göra detta.

TrainTestFunc

Till exempel, för att dela upp träningsuppsättningen i 70 % träning/30 % test, kan du använda följande kod:

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)
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 2
some-alt