一.根据已有数据进行拟合,预测为线性 二.源代码
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]
'''
预测模型为y = w * b
'''
def forward(x):
return x * w
def loss(x, y):
y_pred = forward(x)
return (y_pred - y) * (y_pred - y)
w_list = []
mse_list = []
‘’‘
已知最优w在0.0到4.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 = 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()
三.拟合效果图
|