Я не вижу, что не так с моим кодом для регуляризованной линейной регрессии. Нерегуляризованное меня просто это, что я достаточно уверен, правильно:Цифровая линейная регрессия с регуляризацией
import numpy as np
def get_model(features, labels):
return np.linalg.pinv(features).dot(labels)
Вот мой код для регуляризованного решения, где я не вижу, что случилось с ним:
def get_model(features, labels, lamb=0.0):
n_cols = features.shape[1]
return linalg.inv(features.transpose().dot(features) + lamb * np.identity(n_cols))\
.dot(features.transpose()).dot(labels)
С значение по умолчанию 0.0 для ягненка, я предполагаю, что он должен дать тот же результат, что и (правильная) нерегулярная версия, но разница на самом деле довольно велика.
Кто-нибудь видит, в чем проблема?
Я начинаю упорядочению, и будет Регуляризация линейной регрессии производят кривую? – duldi
Нет. Вы все равно получите линейные коэффициенты. Регуляризация просто изменит наклон. –