Non vedo cosa c'è di sbagliato nel mio codice per la regressione lineare regolarizzata. Non regolarizzata Ho semplicemente questo, che sono ragionevolmente certo è corretto:Regressione lineare di Numpy con regolarizzazione
import numpy as np
def get_model(features, labels):
return np.linalg.pinv(features).dot(labels)
Ecco il mio codice per una soluzione regolarizzata, dove io non sto vedendo ciò che è sbagliato con esso:
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)
Con il valore predefinito di 0.0 per lamb, la mia intenzione è che dovrebbe dare lo stesso risultato della versione (corretta) non regolamentata, ma la differenza è in realtà piuttosto grande.
Qualcuno vede qual è il problema?
sto iniziando regolarizzazione, e sarebbe regolarizzare una linea di regressione lineare produce una curva? – duldi
No. otterrai comunque coefficienti lineari. La regolarizzazione cambierà solo la pendenza. –