Aan de slagGa gratis aan de slag

Een verliesfunctie minimaliseren

In deze oefening implementeer je lineaire regressie "from scratch" met scipy.optimize.minimize.

We trainen een model op de Boston-huizenprijsgegevensset, die al is geladen in de variabelen X en y. Voor de eenvoud nemen we geen intercept op in ons regressiemodel.

Deze oefening maakt deel uit van de cursus

Lineaire classificatoren in Python

Cursus bekijken

Oefeninstructies

  • Vul de verliesfunctie in voor least squares lineaire regressie.
  • Print de coëfficiënten na het fitten met sklearns LinearRegression.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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(____)
Code bewerken en uitvoeren