Meervoudige lineaire regressie
In de meeste gevallen levert univariate lineaire regressie geen model op dat bruikbaar is voor nauwkeurige voorspellingen. In deze oefening voer je een multiple regression uit, die meer dan één feature gebruikt.
Je gebruikt price_log als je target en size_log en bedrooms als je features. Elk van deze tensors is gedefinieerd en beschikbaar. Je stapt ook over van de mean squared error-loss naar de mean absolute error-loss: keras.losses.mae(). Ten slotte worden de voorspelde waarden als volgt berekend: params[0] + feature1*params[1] + feature2*params[2]. Let op: we hebben een vector met parameters, params, als variabele gedefinieerd in plaats van drie losse variabelen. Hier is params[0] het intercept en zijn params[1] en params[2] de hellingen.
Deze oefening maakt deel uit van de cursus
Introductie tot TensorFlow in Python
Oefeninstructies
- Definieer een lineair regressiemodel dat de voorspelde waarden teruggeeft.
- Laat
loss_function()de parametervector als invoer nemen. - Gebruik de mean absolute error-loss.
- Maak de minimalisatiebewerking af.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)