import numpy as np
theta0 = 0
theta1 = 0
theta2 = 1
alpha = 0.01
X = [[1,2.104,3],[1,1.600,3],[1,2.400,3],[1,1.416,2],[1,3.000,4]]
Y = [4.00,3.30,3.69,2.32,5.40]
def hx(theta0,theta1,theta2,alpha,X,Y):
j = 0
der0 = 0
der1 = 0
der2 = 0
for i in range(5):
hx = theta0 * X[i][0] + theta1 * X[i][1] +theta2 * X[i][2]
j += 1/2 * (hx - Y[i])**2
der0 = hx-Y[0]
der1 = (hx-Y[1]) * X[i][1]
der2 = (hx-Y[2]) * X[i][2]
theta0 = theta0 - alpha * der0
theta1 = theta1 - alpha * der1
theta2 = theta2 - alpha * der2
return j,theta0,theta1,theta2
for loop in range(500):
j,theta0,theta1,theta2 = hx(theta0,theta1,theta2,alpha,X,Y)
print(j,theta0,theta1,theta2)
实验结果