matrix 是观测数据
result 是观测结果数据
theta是h = a1*x1+a2*x2中的[a1,a2]
什么都不说了直接上代码
批量梯度下降
import math
#h(x) = a*x1 + b*x2
#矩阵代表自变量
matrix = [[1,4],[2,5],[5,1],[4,2]]
#结果矩阵
result = [19,26,19,20]
#设开始系数为theta
theta = [2,5]
#误差设置
loss = 1000.0000
#控制系数控制迭代次数
learning_rate = 0.01
i = 0
while (i<100 and loss>0.0001):
error_sum = 0.0
for j in range(4):
h = 0.0
for k in range(2):
h += matrix[j][k]*theta[k]
error_sum = result[j]-h
for k in range(2):
theta[k] += learnin