Minimizzare una funzione di loss
In questo esercizio implementerai la regressione lineare "da zero" usando scipy.optimize.minimize.
Alleneremo un modello sul data set dei prezzi delle case di Boston, già caricato nelle variabili X e y. Per semplicità, non includeremo un intercetta nel nostro modello di regressione.
Questo esercizio fa parte del corso
Classificatori lineari in Python
Istruzioni dell'esercizio
- Completa la funzione di loss per la regressione lineare ai minimi quadrati.
- Stampa i coefficienti ottenuti adattando
LinearRegressiondi scikit-learn.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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(____)