1_linear model 普通的线性模型

 不是一个正式的任务,仅仅是实现一下线性模型,为之后的学习打下基础。

# 导包
import numpy as np
import matplotlib.pyplot as plt
# 方便嵌入jupyter
%matplotlib inline

#展示高清图
from matplotlib_inline import backend_inline
backend_inline.set_matplotlib_formats('svg')

# 准备训练集
x_data=[1.0,2.0,3.0]
y_data=[2.0,4.0,6.0]

# linear model  y=x*w
def forward(x):
    return x*w

# loss=(y_hat-y)的平方
def loss(x,y):
    y_pred=forward(x)
    return (y_pred-y)*(y_pred-y)

# List w_list save the weights w.
# List mse_list save the cost values of each ω.
# mse 是均方误差
w_list=[]
mse_list=[]

# 我们事先对 w 的值做一个猜想,在猜想范围内以0.1为步长取值
for w in np.arange(0.0,4.1,0.1):
    print('w=',w)        # 日历,便于看清
    l_sum=0              # 储存loss的和值
    # zip(x_data, y_data)函数会返回一个迭代器,它产生x_data和 y_data中对应的元素对。
    for x_val,y_val in zip(x_data, y_data):
        y_pred_val=forward(x_val)
        loss_val=loss(x_val,y_val)
        l_sum+=loss_val
        print('\t',x_val,y_val,y_pred_val,loss_val)
    print("MSE=",l_sum/3)
    # 将变量 w 的值添加到列表 w_list 的末尾 用append函数
    w_list.append(w)
    mse_list.append(l_sum/3)

Fig1=plt.figure()
plt.plot(w_list,mse_list)
plt.ylabel('Loss')
plt.xlabel('w')
# 在pycharm中必须使用plt.show才能看见视图
plt.show

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值