import numpy as np
x = np.array([[2,3],[4,6],[7,8],[12,15]])
t = np.array([5,8,14,17])
alpha = 0.1
theta0 = np.random.random()
theta1 = np.random.random()
theta2 = np.random.random()
theta = np.array([theta0,theta1,theta2])
td0 = 100
td1 = 100
td2 = 100
e = 1e-4
while td0 >= e or td1 >= e or td2 >= e:
for i in range(len(x)):
if td0 >= e or td1 >= e or td2 >= e:
td0 = (np.sum((theta[i] *x[:,i])) - t[i])
td1 = td0 * x[1,i]
td2 = td0 * x[2,i]
theta[0] = theta[0] - alpha* td0
theta[1] = theta[1] - alpha* td1 * x[1,i]
theta[2] = theta[2] - alpha* td2 * x[2,i]
print(theta0,theta1,theta2)
0.28116242108834644 0.17477893002810274 0.31939755214251564
|