From 3c181c2c781f3fafdb1db9b72edd855dd0fe2d50 Mon Sep 17 00:00:00 2001 From: Pierre-Edouard Portier Date: Tue, 30 Nov 2021 18:44:47 +0100 Subject: [PATCH] =?UTF-8?q?Introduction=20de=20la=20standardisation=20des?= =?UTF-8?q?=20variables=20explicatives=20dans=20l'inf=C3=A9rence=20des=20p?= =?UTF-8?q?aram=C3=A8tres=20de=20la=20r=C3=A9gression=20Ridge=20par=20cons?= =?UTF-8?q?truction=20explicite=20de=20la=20matrice=20de=20Gram.=20La=20ve?= =?UTF-8?q?rsion=20de=20l'inf=C3=A9rence=20qui=20utilise=20le=20SVD=20donn?= =?UTF-8?q?e=20bien=20les=20m=C3=AAmes=20param=C3=A8tres=20pour=20une=20m?= =?UTF-8?q?=C3=AAme=20valeur=20de=20l'hyperparam=C3=A8tre=20de=20r=C3=A9gu?= =?UTF-8?q?larisation.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 15_loocv.R | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/15_loocv.R b/15_loocv.R index 03b6635..f77884d 100644 --- a/15_loocv.R +++ b/15_loocv.R @@ -4,10 +4,16 @@ # 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.gram <- function(alpha, data, degre) { - A <- outer(c(data$X), 0:degre, "^") + A <- scale(outer(c(data$X), 1:degre, "^")) + Y <- data$Y + Ym <- mean(Y) + Y <- Y - Ym gram <- t(A) %*% A diag(gram) <- diag(gram) + alpha - solve(gram, as.vector(t(A) %*% data$Y)) + 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) } ridge.svd <- function(alpha, data, degre) {