IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Completa la funzione di loss per la regressione lineare ai minimi quadrati.
  • Stampa i coefficienti ottenuti adattando LinearRegression di 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(____)
Modifica ed esegui il codice