Я обрабатываю набор данных с использованием регрессии хребта. Я нашел очень интересное явление, когда применяю научную функцию к данным. А именно, когда параметр гребня увеличивается с нуля, ошибка теста продолжает расти. Но если мы наказываем небольшие коэффициенты (задаем параметр < 0), тестовая ошибка может даже быть меньше.Почему регрессия гребня минимизирует стоимость тестирования, когда лямбда отрицательна
Это мой код MATLAB:
for i = 1:100
beta = ridgePolyRegression(ty_train,tX_train,lambda(i));
sqridge_train_cost(i) = computePolyCostMSE(ty_train,tX_train,beta);
sqridge_test_cost(i) = computePolyCostMSE(ty_valid,tX_valid,beta);
end
plot(lambda,sqridge_test_cost,'color','b');
лямбда параметр гряда. ty_train - это результат данных обучения, tX_train - это ввод данных обучения. Кроме того, здесь используется квадратичная регрессия функций.
function [ beta ] = ridgePolyRegression(y,tX,lambda)
X = tX(:,2:size(tX,2));
tX2 = [tX,X.^2];
beta = (tX2'*tX2 + lambda * eye(size(tX2,2))) \ (tX2'*y);
end
Построенная картина: plot http://i62.tinypic.com/35hhbip.jpg
Почему ошибка минимальна, когда лямбда отрицательный? Является ли это признаком недостаточной подгонки?
Предлагаю вам задать этот вопрос либо по адресу http://stats.stackexchange.com/, либо по адресу http://scicomp.stackexchange.com/ –
Сильно связанный с этим вопрос по перекрестной проверке: https: // stats .stackexchange.com/questions/328630/is-ridge-regression-бесполезно-в-high-dimension-n-ll-p-how-can-ols-fail-to –