Régression linéaire multiple
Dans la plupart des cas, une régression linéaire univariée ne fournit pas un modèle suffisamment utile pour faire des prédictions précises. Dans cet exercice, vous effectuerez une régression multiple, qui utilise plus d'une caractéristique.
Vous utiliserez price_log comme cible et size_log et bedrooms comme caractéristiques. Chacun de ces tenseurs a été défini et est disponible. Vous passerez aussi de la perte d'erreur quadratique moyenne à la perte d'erreur absolue moyenne : keras.losses.mae(). Enfin, les valeurs prédites sont calculées comme suit : params[0] + feature1*params[1] + feature2*params[2]. Remarquez que nous avons défini un vecteur de paramètres, params, comme variable plutôt que d'utiliser trois variables. Ici, params[0] est l'ordonnée à l'origine et params[1] et params[2] sont les pentes.
Cette activité fait partie du cours
Introduction à TensorFlow en Python
Instructions de l’exercice
- Définissez un modèle de régression linéaire qui retourne les valeurs prédites.
- Faites en sorte que
loss_function()prenne le vecteur de paramètres en entrée. - Utilisez la perte d'erreur absolue moyenne.
- Terminez l'opération de minimisation.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)