Множественная линейная регрессия
В большинстве случаев одномерная линейная регрессия не позволяет построить модель, достаточно точную для предсказаний. В этом упражнении вы выполните множественную регрессию, которая использует несколько признаков.
В качестве целевой переменной используйте price_log, а в качестве признаков — size_log и bedrooms. Все эти тензоры уже определены и доступны для использования. Кроме того, вместо среднеквадратичной ошибки вы будете использовать среднюю абсолютную ошибку: keras.losses.mae(). Предсказанные значения вычисляются следующим образом: params[0] + feature1*params[1] + feature2*params[2]. Обратите внимание: вместо трёх отдельных переменных здесь задан вектор параметров params. В нём params[0] — это свободный член, а params[1] и params[2] — коэффициенты наклона.
Это упражнение является частью курса
Введение в 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)