6-5 梯度下降的向量化

测试数据

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(666)
x = 2 * np.random.random(size=100)
y = x * 3. + 4. + np.random.normal(size=100)

X = x.reshape(-1, 1)

plt.scatter(x, y)
plt.show()

向量化计算dJ

使用真实数据测试模型

真实数据 + 正规化方程解

输出结果: 0.8129794056212832

真实数据 + 梯度下降法

输出结果: eta太大导致搜索过程不收敛

真实数据 + 梯度下降法 + eta=0.000001

输出结果: 0.27586818724477247

训练次数不够,没有达到最优值

真实数据 + 梯度下降法 + eta=0.000001 + n_iters=1e6

输出结果: 0.7542932581943915

训练次数太多,导致训练时间太长,但次数又不足以找到最优解 解决方法:数据归一化

梯度下降法与数据归一化

多元线性回归问题中,不同特征的规格一样,导致eta很难选。同一个eta可能会导致某些无法收敛而另一特征又收敛太慢。 因此使用梯度下降法之前,最好对数据进行归一化

输出结果: 0.8129873310487505

Last updated