Minimizar una función de pérdida
En este ejercicio implementará la regresión lineal "desde cero" utilizando scipy.optimize.minimize
.
Entrenaremos un modelo con el conjunto de datos sobre el precio de la vivienda en Boston, que ya está cargado en las variables X
y y
. Para simplificar, no incluiremos un intercepto en nuestro modelo de regresión.
Este ejercicio forma parte del curso
Clasificadores lineales en Python
Instrucciones del ejercicio
- Rellene la función de pérdida para la regresión lineal por mínimos cuadrados.
- Imprima los coeficientes de ajuste de sklearn
LinearRegression
.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# 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(____)