Minimizarea unei funcții de pierdere
În acest exercițiu vei implementa regresia liniară „de la zero" folosind scipy.optimize.minimize.
Vom antrena un model pe setul de date privind prețurile locuințelor din Boston, care este deja încărcat în variabilele X și y. Pentru simplitate, nu vom include un intercept în modelul de regresie.
Acest exercițiu face parte din cursul
Clasificatori liniari în Python
Instrucțiuni pentru exercițiu
- Completează funcția de pierdere pentru regresia liniară prin metoda celor mai mici pătrate.
- Afișează coeficienții obținuți prin ajustarea modelului
LinearRegressiondin scikit-learn.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# The squared error, summed over training examples
def my_loss(w):
s = 0
for i in range(y.size):
# Get the true and predicted target values for example 'i'
y_i_true = y[i]
y_i_pred = w@X[i]
s = s + (____)**2
return s
# Returns the w that makes my_loss(w) smallest
w_fit = minimize(my_loss, X[0]).x
print(w_fit)
# Compare with scikit-learn's LinearRegression coefficients
lr = LinearRegression(fit_intercept=False).fit(X,y)
print(____)