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
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)