前言
利用numpy实现线性函数的最小二乘法,预估线性函数的参数,并计算损失函数。
一、先上代码
#线性,最小二乘法
import numpy as np
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)*(y_pred-y)
#存储w权重,并记录下对应的cost value
w_list=[]
mse_list=[]
#权重从0,到4,步长为0.1
for w in np.arange(0.0,4.1,0.1):
print("w=",w)
l_sum=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()
二、关键点总结
1.数据处理
我们输入的数据为x,输出的为y,一共有三组数据。
x_data=[1.0,2.0,3.0]
y_data