前言
本文主要介绍批量梯度下降与相关代码。
主要流程:
计算梯度,批量累计求和,更新参数,计算前后迭代损失差,看是否小于阈值,True则break,False更新当前error并进入下一轮循环。
提示:以下是本篇文章正文内容,下面案例可供参考
一、批量梯度下降相关理论
将于后续更新!!!
二、代码
1.实例1
代码如下(示例):
# y = theta0 + theta1*x ---->x0=1
X = [4, 8, 5, 10, 12]
y = [20, 50, 30, 70, 60]
# 初始值
theta0 = theta1 = 0
# 学习率
alpha = 0.001
# 迭代次数
cnt = 0
# 误差
error0 = error1 = 0
# 指定阈值,以便检查两次误差的差,以便停止迭代
threshold = 0.0000001
while True:
# 梯度 diff[0]是theta0的梯度,diff[1]是theta1的梯度
diff = [0,0]
m=len(X)
for i in range(m):
diff[0] += (theta0 + theta1*X[i]) - y[i]
diff[1] += (