2021-10-16 16:45:21 -04:00
|
|
|
# Résolution d'un système linéaire correspondant à la matrice de Gram pour
|
|
|
|
# un polynôme de degré fixé et avec l'ajout d'un facteur de régularisation en
|
|
|
|
# norme L2 dont l'importance est contrôlée par l'hyperparamètre alpha.
|
|
|
|
ridge <- function(alpha, data, degre) {
|
2021-11-30 12:40:04 -05:00
|
|
|
A <- scale(outer(c(data$X), 1:degre, "^"))
|
|
|
|
Y <- data$Y
|
|
|
|
Ym <- mean(Y)
|
|
|
|
Y <- Y - Ym
|
2021-10-16 16:45:21 -04:00
|
|
|
gram <- t(A) %*% A
|
|
|
|
diag(gram) <- diag(gram) + alpha
|
2021-11-30 12:40:04 -05:00
|
|
|
coef <- solve(gram, as.vector(t(A) %*% Y))
|
|
|
|
coef <- coef / attr(A,"scaled:scale")
|
|
|
|
inter <- Ym - coef %*% attr(A,"scaled:center")
|
|
|
|
coef <- c(inter, coef)
|
2021-10-16 16:45:21 -04:00
|
|
|
}
|