课程地址:2.线性模型_哔哩哔哩_bilibili
目录
笔记
过拟合是机械学习中巨大的问题 过拟合→数据少 训练多
泛化→达到未训练的图片也能识别出
评估模型(Training Loss)
选取合适的权重达到mean值最小
MSE(均方误差)
代码体现
1.保存样本(训练集)
2.定义模型/损失函数
3.准备空列表保存数值
4.根据数据进行画图
对于ZIP的补充
用法:1.同时遍历多个字典
2.对多个元素同时进行排序
3.对数据成对进行计算
4.构建字典
参考:(14条消息) Python zip()用法,看这一篇就够了_PaulZhn的博客-CSDN博客_python zip
课后作业
import numpy as np
import matplotlib. pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 选取3x+1
x_data = [1.0, 2.0, 3.0]
y_data = [4.0, 7.0, 10.0]
# 定义模型
def forward(x):
return x * w + b
# 定义损失函数
def loss(x, y):
y_pred = forward(x)
return (y_pred - y)*(y_pred - y)
w = np.arange(0.0, 4.1, 0.1)
b = np.arange(-1.0, 5.1, 0.1)
[w, b] = np.meshgrid(w, b)
l_sum = 0
for x_val, y_val in zip(x_data, y_data):
y_pred_val = forward(x_val)
print(y_pred_val)
loss_val = loss(x_val, y_val)
l_sum += loss_val
# 创建3D画布
fig = plt.figure()
ax = Axes3D(fig)
# 标出x、y轴坐标
plt.xlabel('w', fontsize=20)
plt.ylabel('b', fontsize=20)
ax.plot_surface(w, b, l_sum/3, cmap='rainbow')
plt.show()
结果展示