overfittet
Overfittet beskriver en situation hvor en model lærer træningsdataene for godt, inklusive støj og tilfældigheder, og derfor klarer sig dårligt på nye data.
Kort fortalt
Når en model husker i stedet for at forstå, og derfor fejler på nye data.
- Kategori
- begreb
- Niveau
- begynder
Betydninger
1- 1
En situation inden for maskinlæring hvor en statistisk model beskriver tilfældig støj eller fejl i stedet for den underliggende sammenhæng. Modellen har for høj varians og generaliserer dårligt til nye data.
- En polynomial regression af grad 100 på 10 datapunkter vil typisk være overfittet.
- Overfittet kan opdages ved at sammenligne trænings- og testfejl: lav træningsfejl men høj testfejl.
Hvornår bruges det
Overfittet er et centralt problem i maskinlæring. Det opstår når en model er for kompleks i forhold til mængden af træningsdata. Det kan undgås ved regularisering, korsvalidering og early stopping.
Kodeeksempel
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.metrics import mean_squared_error
import numpy as np
# Generate data
np.random.seed(0)
X = np.linspace(0, 1, 10).reshape(-1, 1)
y = np.sin(2 * np.pi * X).ravel() + np.random.normal(0, 0.1, 10)
# Overfit with high-degree polynomial
poly = PolynomialFeatures(degree=15)
X_poly = poly.fit_transform(X)
model = LinearRegression()
model.fit(X_poly, y)
predictions = model.predict(X_poly)
train_error = mean_squared_error(y, predictions)
print(f'Training MSE: {train_error:.3f}')Dette eksempel viser overfittet ved at tilpasse et polynomium af 15. grad til 10 støjende datapunkter. Træningsfejlen er meget lav, men modellen vil klare sig dårligt på nye data.
Oprindelse
Udtrykket 'overfitting' kommer fra engelsk, hvor 'over' betyder 'for meget' og 'fit' betyder 'tilpasse'.