НачатьНачать бесплатно

Множественная линейная регрессия

В большинстве случаев одномерная линейная регрессия не позволяет построить модель, достаточно точную для предсказаний. В этом упражнении вы выполните множественную регрессию, которая использует несколько признаков.

В качестве целевой переменной используйте 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)
Редактировать и запускать код