Множинна лінійна регресія
У більшості випадків однофакторна лінійна регресія не дасть моделі, корисної для точних прогнозів. У цій вправі ви виконаєте множинну регресію, яка використовує більше ніж одну ознаку.
Ви використаєте price_log як ціль, а size_log і bedrooms — як ознаки. Кожен із цих тензорів уже визначено й доступний. Ви також перейдете від функції втрат середньоквадратичної помилки до середньої абсолютної помилки: keras.losses.mae(). Нарешті, передбачені значення обчислюються так: params[0] + feature1*params[1] + feature2*params[2]. Зауважте, що ми визначили вектор параметрів params як змінну, а не три окремі змінні. Тут params[0] — це вільний член (intercept), а params[1] і params[2] — коефіцієнти нахилу (slopes).
Ця вправа є частиною курсу
Вступ до TensorFlow на Python
Інструкції до вправи
- Визначте модель лінійної регресії, яка повертає передбачені значення.
- Налаштуйте
loss_function()так, щоб вона приймала вектор параметрів як вхід. - Використайте функцію втрат середньої абсолютної помилки.
- Завершіть операцію мінімізації.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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)