Een lineaire regressie opzetten
Een univariate lineaire regressie zoekt de relatie tussen één feature en de doeltensor. In deze oefening gebruiken we de kavelgrootte en prijs van een woning. Net zoals in de video nemen we de natuurlijke logaritmen van beide tensors, die beschikbaar zijn als price_log en size_log.
In deze oefening definieer je het model en de verliesfunctie. Vervolgens evalueer je de verliesfunctie voor twee verschillende waarden van intercept en slope. Onthoud dat de voorspelde waarden worden gegeven door intercept + features*slope. Let er daarnaast op dat keras.losses.mse() voor je beschikbaar is. Verder zijn slope en intercept gedefinieerd als variabelen.
Deze oefening maakt deel uit van de cursus
Introductie tot TensorFlow in Python
Oefeninstructies
- Definieer een functie die de voorspelde waarden voor een lineaire regressie retourneert met
intercept,featuresenslope, zonderadd()ofmultiply()te gebruiken. - Maak de
loss_function()af door de modelvariabeleninterceptenslopeals argumenten toe te voegen. - Bereken de mean squared error met
targetsenpredictions.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Define a linear regression model
def linear_regression(intercept, slope, features = size_log):
return ____
# Set loss_function() to take the variables as arguments
def loss_function(____, ____, features = size_log, targets = price_log):
# Set the predicted values
predictions = linear_regression(intercept, slope, features)
# Return the mean squared error loss
return keras.losses.____
# Compute the loss for different slope and intercept values
print(loss_function(0.1, 0.1).numpy())
print(loss_function(0.1, 0.5).numpy())