Работа с набором данных "простата" в пакете "ElemStatLearn".
set.seed(3434)
fit.lm = train(data=trainset, lpsa~., method = "lm")
fit.ridge = train(data=trainset, lpsa~., method = "ridge")
fit.lasso = train(data=trainset, lpsa~., method = "lasso")
Сравнение RMSE (для bestTune в случае гребня и лассо)
fit.lm$results[,"RMSE"]
[1] 0.7895572
fit.ridge$results[fit.ridge$results[,"lambda"]==fit.ridge$bestTune$lambda,"RMSE"]
[1] 0.8231873
fit.lasso$results[fit.lasso$results[,"fraction"]==fit.lasso$bestTune$fraction,"RMSE"]
[1] 0.7779534
Сравнение абсолютных значений коэффициентов
abs(round(fit.lm$finalModel$coefficients,2))
(Intercept) lcavol lweight age lbph svi lcp gleason pgg45
0.43 0.58 0.61 0.02 0.14 0.74 0.21 0.03 0.01
abs(round(predict(fit.ridge$finalModel, type = "coef", mode = "norm")$coefficients[8,],2))
lcavol lweight age lbph svi lcp gleason pgg45
0.49 0.62 0.01 0.14 0.65 0.05 0.00 0.01
abs(round(predict(fit.lasso$finalModel, type = "coef", mode = "norm")$coefficients[8,],2))
lcavol lweight age lbph svi lcp gleason pgg45
0.56 0.61 0.02 0.14 0.72 0.18 0.00 0.01
Мой вопрос: как RMSE "гребня" может быть выше, чем у простого "lm".Разве это не разрушает саму цель наказанной регрессии против простого «лм»?
Кроме того, как может абсолютное значение коэффициента «веса» быть на самом деле выше в гребне (0,62), чем в лм (0,61)?Оба коэффициента изначально положительны без abs ().
Я ожидал, что гребень будет работать аналогично лассо, что не только уменьшит RMSE, но и уменьшит размер коэффициентов по сравнению с простым "lm".
Спасибо!