Regresia liniară multiplă
În cele mai multe cazuri, o regresie liniară univariată nu produce un model suficient de precis pentru predicții utile. În acest exercițiu, vei realiza o regresie multiplă, care folosește mai mult de o caracteristică.
Vei utiliza price_log ca variabilă țintă și size_log și bedrooms ca variabile de intrare. Fiecare dintre acești tensori a fost deja definit și este disponibil. Vei trece, de asemenea, de la funcția de pierdere bazată pe eroarea pătratică medie la cea bazată pe eroarea absolută medie: keras.losses.mae(). În final, valorile prezise se calculează astfel: params[0] + feature1*params[1] + feature2*params[2]. Rețineți că am definit un vector de parametri, params, ca variabilă, în loc să folosim trei variabile separate. Aici, params[0] este interceptul, iar params[1] și params[2] sunt pantele.
Acest exercițiu face parte din cursul
Introducere în TensorFlow în Python
Instrucțiuni pentru exercițiu
- Definește un model de regresie liniară care returnează valorile prezise.
- Configurează
loss_function()să primească vectorul de parametri ca intrare. - Folosește funcția de pierdere bazată pe eroarea absolută medie.
- Completează operația de minimizare.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Define the linear regression model
def linear_regression(params, feature1 = size_log, feature2 = bedrooms):
return params[0] + feature1*____ + feature2*____
# Define the loss function
def loss_function(____, targets = price_log, feature1 = size_log, feature2 = bedrooms):
# Set the predicted values
predictions = linear_regression(params, feature1, feature2)
# Use the mean absolute error loss
return keras.losses.____(targets, predictions)
# Define the optimize operation
opt = keras.optimizers.Adam()
# Perform minimization and print trainable variables
for j in range(10):
opt.minimize(lambda: loss_function(____), var_list=[____])
print_results(params)