import numpy as np
import matplotlib.pyplot as plt
x = np.array([[2104,3],[1600,3],[2400,3],[1416,2],[3000,4]])
y = np.array([400,330,369,232,540])
alpha = 0.1
theta0 = np.random.random()
theta1 = np.random.random()
theta2 = np.random.random()
theta = np.array([theta1, theta2])
eps = 1e-4
e0 = 9
e1 = 9
e2 = 9
while e0 >= eps or e1 >= eps or e2 >= eps:
i = 0
e0 = (np.sum((x[:, i] * theta[i])) + theta0 * 1 - y[i])
e1 = e0 * x[1, i]
e2 = e0 * x[2, i]
theta0 = theta0 - alpha * e0
theta1 = theta1 - alpha * e1
theta2 = theta2 - alpha * e2
i += 1
print(theta0, theta1, theta2)
实验结果 -3814.3209392855665 -6104300.00287485 -9156449.790403273
|