Nie widzę, co jest nie tak z moim kodem dla regresywnej regresji liniowej. Unregularized Mam po prostu to, co jestem pewien, rozsądnie jest poprawna:Regresja liniowa numpii z regularyzacją
import numpy as np
def get_model(features, labels):
return np.linalg.pinv(features).dot(labels)
Oto mój kod na regularyzowanej rozwiązanie, gdzie nie widzę, co jest nie tak:
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)
Z domyślna wartość 0,0 dla lamb, moim zamiarem jest to, że powinien dać taki sam wynik, jak (poprawna) niezmodyfikowana wersja, ale różnica jest rzeczywiście dość duża.
Czy ktoś widzi, na czym polega problem?
Zaczynam regularyzacji, i uregulowanie liniowy linia regresji produkować krzywą? – duldi
Nie, nadal otrzymasz współczynniki liniowe. Regularyzacja zmieni tylko nachylenie. –