在看刘二大人的Pytorch教程,写个笔记记录一下,如果有什么问题欢迎一起探讨呀
线性模型
首先是线性模型的定义:给定由d个属性描述对的示例x = (x_{1};x_{2};…;x_{d}),其中{x_{i}}是第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数,即
转换成向量形式即为:
线性回归
基于以上线性模型的定义,引出线性回归问题,即线性回归的目的是试图学得
利用均方误差进行度量,使MSE最小化,用公式表示即为:
详细了解继续戳:线性模型(我只是无情的搬运工~)
接着上视频代码:
import numpy as np #用于python绘图的包
import matplotlib.pyplot as plt
x_data=[1.0,2.0,3.0] #输入样本
y_data=[2.0,4.0,6.0] #输出样本
def forward(x):
return x*w
def loss(x,y):
y_pred=forward(x)
return (y_pred-)*(y_pred-y)
w_list=[] #权重列表
mse_list=[] #损失列表
for w in np.arange(0.0, 4.1, 0.1): #在[0.0,4.1]之间以0.1为间隔生成序列
print('w=',w)
l_usm=0
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_list.append(w)
mse_list.append(l_sum/3)
#绘图
plt.plot(w_list,mse_list)
plt.ylabel('loss')
plt.xlabel('w')
plt.show()
文末附上其他同学写好的作业:小作业