Nous avons illustré le phénomène de surajustement (overfitting en anglais) dans le contexte d’une régression par les knn. Dans cette partie, nous allons étudier le phénomène dit de “overfitting” dans le contexte de sélection de modèle. Nous avons un jeu de données qui semble issu d’une fonction polynomiale et nous allons sélectionner le degré du polynôme pour la régression.

Échantillon apprentissage-test

# Examples of training data
# 150 standard-Gaussian X's
ntr <- 150
x = rnorm(ntr)
# Quadratic Y's
y = 2.5*x^2 - 0.5*x + rnorm(ntr)
# Initial plot of training data plus true regression curve
plot(x,y,  pch=16, col=8)
curve(2.5*x^2-0.5*x,add=TRUE)

plot(x,y,  pch=16, col=8)
curve(2.5*x^2-0.5*x,add=TRUE)
y.0 = lm(y ~ 1)
abline(h=y.0$coefficients[1])
d = seq(min(x),max(x),length.out=200)
degree = 1
fm = lm(y ~ poly(x,degree))
assign(paste("y",degree,sep="."), fm)
# Plot them, with different line types
lines(d, predict(fm,data.frame(x=d)),lty=(degree+1))

Validation croisée \(5\) folds