ПочатиПочніть безкоштовно

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

У більшості випадків однофакторна лінійна регресія не дасть моделі, корисної для точних прогнозів. У цій вправі ви виконаєте множинну регресію, яка використовує більше ніж одну ознаку.

Ви використаєте 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)
Редагувати та запускати код