import numpy as np
import math
import random
#随机数据的梯度下降
x = np.random.choice(np.array([2104, 1600, 2400, 1416, 3000]),5)
x1 = np.random.choice(np.array([3,3,3,2,4]),5)
t = np.random.choice(np.array([400, 330, 369, 232, 540]),5)
a = 0.0000100
error = 0.00001
dert = random.random() # 先给定一个值
dert1 = random.random()
dert2 = random.random()
sit = random.random()
sit2 = random.random()
sit3 = random.random()
开始跌代
for i in range(0, 5):
while (dert > error or dert1 > error or dert2 > error):
dert = (sit+sit2x[i]+sit3x1[i]-t[i])*1
dert1 = (sit + sit2 * x[i] + sit3 * x1[i] - t[i]) * x[i]
dert2 = (sit + sit2 * x[i] + sit3 * x1[i] - t[i]) * x1[i]
sit = sit - dert * a
sit2 = sit2 - dert1*a
sit3 = sit3 - dert2*a
print(dert)
print(dert1)
print(dert2)
print(sit)
print(sit2)
print(sit3)
#得到sit sit2 sit3 的值
#即可求随便给与的任何值
#随便给与一个x3,x4
x3 = 3600
x4 = 5
h = sit + sit2x3 + sit3x4
print(h)