Zacznij terazZacznij za darmo

Wieloraka regresja liniowa

W większości przypadków regresja liniowa jednowymiarowa nie wystarczy, by zbudować model dający dokładne przewidywania. W tym ćwiczeniu przeprowadzisz regresję wieloraką, która korzysta z więcej niż jednej cechy.

Jako cel (target) użyjesz price_log, a jako cechy – size_log oraz bedrooms. Wszystkie te tensory są już zdefiniowane i dostępne. Zamiast błędu średniokwadratowego użyjesz tym razem średniego błędu bezwzględnego: keras.losses.mae(). Wartości przewidywane są obliczane w następujący sposób: params[0] + feature1*params[1] + feature2*params[2]. Zwróć uwagę, że zamiast trzech oddzielnych zmiennych zdefiniowaliśmy wektor parametrów params. W tym wektorze params[0] to wyraz wolny, a params[1] i params[2] to współczynniki kierunkowe.

To ćwiczenie jest częścią kursu

Wprowadzenie do TensorFlow w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj model regresji liniowej, który zwraca wartości przewidywane.
  • Ustaw loss_function() tak, aby przyjmowała wektor parametrów jako wejście.
  • Użyj funkcji straty opartej na średnim błędzie bezwzględnym.
  • Uzupełnij operację minimalizacji.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod