2014-11-03 2 views
1

Я обрабатываю набор данных с использованием регрессии хребта. Я нашел очень интересное явление, когда применяю научную функцию к данным. А именно, когда параметр гребня увеличивается с нуля, ошибка теста продолжает расти. Но если мы наказываем небольшие коэффициенты (задаем параметр < 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

Почему ошибка минимальна, когда лямбда отрицательный? Является ли это признаком недостаточной подгонки?

+0

Предлагаю вам задать этот вопрос либо по адресу http://stats.stackexchange.com/, либо по адресу http://scicomp.stackexchange.com/ –

+0

Сильно связанный с этим вопрос по перекрестной проверке: https: // stats .stackexchange.com/questions/328630/is-ridge-regression-бесполезно-в-high-dimension-n-ll-p-how-can-ols-fail-to –

ответ

1

Нельзя использовать отрицательные лямбды.

Из (вероятностной) теоретической точки зрения лямбда относится к инверсии дисперсии параметра перед распределением, а дисперсия не может быть отрицательной.

С вычислительной точки зрения он может (при меньшем меньшем, чем наименьшее собственное значение ковариационной матрицы) превратить вашу положительно-определенную форму в неопределенную форму, а это значит, что у вас не будет максимума, а точка седла , Это также означает, что есть точки, где ваша целевая функция такая же маленькая (или такая большая), как вы хотите, поэтому вы можете уменьшить потерю на неопределенный срок и вообще не иметь минимума/максимума.

Ваш алгоритм оптимизации дает вам только стационарную точку, которая будет глобальным максимумом тогда и только тогда, когда форма положительно определена.

+0

Я просто хочу понять, почему отрицательные лямбды дают еще меньше ошибка теста. Это кажется смешным ... – user2173168

Смежные вопросы