机器学习入门:简单的y=wx线性模型训练

最近在学深度学习的知识,先写一些比较简单的模型,这是我写的第一个利用梯度下降求线性拟合的模型
数学表达式:
\begin{equation}
Y=w*x \text{,}
\end{equation}

import matplotlib.pyplot as plt

x_data=[1.0,2.0,3.0]
y_data=[2.0,4.0,6.0]

w=1.0
loss_list=[]
epoch_list=[]
w_list=[]

def predict(x):
    return w*x

def loss(x,y):
    l=0.0
    for xs,ys in zip(x,y):
        l+=(predict(xs)-ys)**2
    l/=len(x)
    return l

def gradient(x, y):
    grad=0.0
    for xs,ys in zip(x_data,y_data):
        grad+=2 * (w * xs - ys) * xs
    grad/=len(x)
    return grad

for epoch in range(50):
    l_loss=loss(x_data,y_data)
    w=w-0.01*gradient(x_data,y_data)
    epoch_list.append(epoch)
    loss_list.append(l_loss)
    w_list.append(w)
print(w_list)

plt.plot(epoch_list,loss_list)
plt.plot(epoch_list,w_list)
plt.title("The first model of Yu Zhang!")
plt.xlabel("epoch")
plt.ylabel("loss")
plt.show()

运行结果展示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值