Vorhersagen der ridge-regression in R
Ich habe wirklich sehr fest auf diesem, hoffe jemand kann mir helfen! Ich habe einen Datensatz mit 54 Spalten und ich möchte Vorhersagen treffen ein test-set mit ridge-regression.
nn <-nrow(longley)
index <- 1:nrow(longley)
testindex <- sample(index, trunc(length(index)/3))
testset <- longley[testindex,]
trainset <-longley[-testindex,]
trainset1 <- trainset[,-7]
# Fit the ridge regression model:
mod <- lm.ridge(y ~., data = trainset, lambda = 0.661)
# Predict and evaluate it by using MAE function:
mae <- function(model) {
y = trainset$Employed
y.pred <- predict(model, trainset)
return(mean(abs(y-y.pred)))
}
Wenn ich das mache bekomme ich folgende Fehlermeldung:
Error in UseMethod("predict") :
no applicable method for 'predict' applied to an object of class "ridgelm"
Was könnte ein anderer Weg sein, um Vorhersagen zu treffen mit ridge-regression, das funktioniert (auch mit der Evaluierung von Metriken wie rsquared und MAE)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist in der Tat keine
predict
Methode fürridgelm
Objekt: Sie haben es zu tun mit den Händen. Übrigens, es gibt wedersummary
wie Sie sehen können mit:Dies ist das lineare Modell so, dass die Armatur ist nur eine Frage der Matrix-Berechnung:
Müssen wir hinzufügen, die Konstante 1 im Zusammenhang mit der Konstante Koeffizient der linearen Modus.
Wichtig: verwenden ridge-regression, ein in der Regel Maßstab erklärenden Variablen, so dass Mittel abgezogen. Die best practice sollte es sein, zu lernen scaling definition von training und dann zu verwenden-training-set Mittel zum center Variablen von neuen Daten. Vielleicht interessiert in diesem Zusammenhang post auf cross-validiert:
https://stats.stackexchange.com/questions/152203/how-to-calculate-predicted-values-using-an-lm-ridge-object