Multipel linjär regression
I de flesta fall räcker det inte med en univariat linjär regression för att bygga en modell som ger noggranna förutsägelser. I den här övningen utför du en multipel regression, som använder fler än ett särdrag.
Du använder price_log som målvariabel och size_log samt bedrooms som särdrag. Dessa tensorer är redan definierade och tillgängliga. Du byter också förlustfunktion – från medelkvadratfelet till medelabsolutfelet: keras.losses.mae(). De förutsagda värdena beräknas enligt följande: params[0] + feature1*params[1] + feature2*params[2]. Observera att vi har definierat en parametervektor, params, som en variabel i stället för att använda tre separata variabler. Här är params[0] intercept och params[1] samt params[2] är lutningarna.
Den här övningen är en del av kursen
Introduktion till TensorFlow i Python
Övningsinstruktioner
- Definiera en linjär regressionsmodell som returnerar de förutsagda värdena.
- Ange att
loss_function()ska ta parametervektorn som indata. - Använd medelabsolutfelet som förlustfunktion.
- Slutför minimeringsoperationen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)