
14.2
勾配降下法
■
205
らかですが)このモデルは平均値のモデルと同じです。
最小二乗モデルは少なくともこのモデルよりは良いモデルと言えます。言い換える
と、誤差の二乗和は最悪の場合でも平均との差の二乗和と等しいため、
R
2
の最小値は
0
です。一方、誤差の二乗和は最小でも
0
であるため、
R
2
の最大値は
1
となります。
R
2
が大きければ、データに良く適合する優れたモデルであると言えます。この例で
は
R
2
は
0.329
となりました。これは若干良い程度の値であり、別の何かが必要である
ことは明らかです。
14.2
勾配降下法
θ
=
[
α
,
β
]
と定義するなら、勾配降下法を使って解が求められます。
import random
import tqdm
from scratch.gradient_descent import gradient_step
num_epochs = 10000
random.seed(0)
guess = [random.random(), random.random()] #
開始点をランダムに設定
learning_rate = 0.00001
with tqdm.trange(num_epochs) as t:
for _ in t:
alpha, beta = guess
# alpha
に関する損失の偏微分
grad_a = sum(2 * error(alpha, beta, x_i, y_i)
for x_i, y_i in zip(num_friends_good,
daily_minutes_good)) ...