import numpy as np
import matplotlib.pyplot as plt
x = np.array([[2104, 3], [1600, 3], [2400, 3], [1416, 2], [3000, 4]])
t = np.array([400, 330, 369, 232, 540])
alpha = 0.01
theta0 = np.random.random()
theta1 = np.random.random()
theta2 = np.random.random()
theta = np.array([theta1, theta2])
eps = 1e-4
e0 = 999
e1 = 999
e2 = 999
while e0 >= eps or e1 >= eps or e2 >= eps:
i = 0
e0 = (np.sum((x[:, i] * theta[i])) + theta0 * 1 - 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
print(theta0, theta1, theta2)
|