Multiple lineare Regression
In den meisten Fällen liefert eine univariate lineare Regression kein Modell, das für präzise Vorhersagen wirklich hilfreich ist. In dieser Übung führst du eine multiple Regression durch, die mehr als ein Feature verwendet.
Du verwendest price_log als Zielvariable und size_log sowie bedrooms als Features. Jeder dieser Tensoren ist bereits definiert und verfügbar. Außerdem wechselst du von der Loss-Funktion „mean squared error“ zur „mean absolute error“-Loss: keras.losses.mae(). Schließlich werden die vorhergesagten Werte wie folgt berechnet: params[0] + feature1*params[1] + feature2*params[2]. Beachte, dass wir einen Vektor von Parametern params als Variable definiert haben, anstatt drei einzelne Variablen zu verwenden. Dabei ist params[0] der Achsenabschnitt (Intercept) und params[1] sowie params[2] sind die Steigungen.
Diese Übung ist Teil des Kurses
Einführung in TensorFlow mit Python
Anleitung zur Übung
- Definiere ein lineares Regressionsmodell, das die vorhergesagten Werte zurückgibt.
- Setze
loss_function()so, dass der Parametervektor als Eingabe übergeben wird. - Verwende die „mean absolute error“-Loss.
- Vervollständige die Minimierungsoperation.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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)