重回帰(Multiple linear regression)
多くの場合、単回帰では高い精度の予測に役立つモデルにはなりません。この演習では、複数の特徴量を使う重回帰を行います。
ターゲットには price_log、特徴量には size_log と bedrooms を使用します。これらのテンソルはすでに定義済みで利用できます。また、損失関数は平均二乗誤差から平均絶対誤差(keras.losses.mae())に切り替えます。最後に、予測値は params[0] + feature1*params[1] + feature2*params[2] のように計算します。ここでは 3 つの変数を使う代わりに、パラメータのベクトル params を変数として定義している点に注意してください。params[0] が切片、params[1] と params[2] が傾きです。
この演習はコースの一部です
Introduction to TensorFlow in 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)