import numpy as np
import random
import math
theta0 = np.random.random()
theta1 = np.random.random()
theta2 = np.random.random()
theta = np.array([theta1, theta2])
alpha = 0.1
x = np.array([[2104,3],[1600,3],[2400,3],[1416,3],[3000,3]])
t = np.array([400,330,369,232,540])
eps = 1e-4
e0 = 99
e1 = 99
e2 = 99
i = 0
while e0 >= eps or e1 >= eps or e2 >= eps :
e0 = (np.sum((x[i] * theta)) + theta0 - t[i])
e1 = e0 * x[i,0]
e2 = e0 * x[i,1]
theta0 = theta0 - alpha * e0
theta1 = theta1 - alpha * e1
theta2 = theta2 - alpha * e2
i+=1
if i >= 5 :
i = 0
print(theta0,theta1,theta2)
运行结果如下图所示
|