生成一部分数据(_x,_y)
_x 0~0.99
利用plot函数打印
完整代码
import random
import matplotlib.pylab as plt
_x=[i/100 for i in range (100)]
_y=[3*e+4+random.random() for e in _x]
# print(_x)
# print(_y)
# plt.plot(_x,_y,".")
# plt.show()
w=random.random()
b=random.random()
for i in range(30):
for x,y in zip(_x,_y):
z = x*w+b
o=z-y #损失值
loss=o**2 #损失值要>0所以平方
dw=-2*o*x #由loss=o^2求导
db=-2*o #由loss=o^2求导
w=w+0.1*dw #假设学习率=0.1
b=b+0.1*db
print(w,b,loss) #打印w b loss 发现 w 会趋近于3,b趋近于4
plt.plot(_x,_y,".")
v=[w*e+b for e in _x]
plt.plot(_x,v)
plt.show()
发现 w 会趋近于3,b趋近于4
视频学习