Minimiser une fonction de perte
Dans cet exercice, vous allez programmer une régression linéaire « à partir de zéro » en utilisant scipy.optimize.minimize.
Nous allons entraîner un modèle sur l'ensemble de données des prix des maisons de Boston, déjà chargé dans les variables X et y. Pour simplifier, nous n'inclurons pas d'ordonnée à l'origine (interception) dans notre modèle de régression.
Cette activité fait partie du cours
Classificateurs linéaires en Python
Instructions de l’exercice
- Complétez la fonction de perte pour la régression linéaire aux moindres carrés.
- Affichez les coefficients obtenus avec l'ajustement de
LinearRegressionde sklearn.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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(____)