
机器学习
|
137
损失
图 5-5:MSE 值与训练轮数的关系
5.4
容量
模型或算法的
容量
定义了模型或算法基本上可以学习什么类型的函数或关系。对于仅基于
单项式的
OLS
回归,
只有一个参数定义了模型的容量:要使用的最高阶单项式的次数。如
果将该阶数参数设置为
deg=3
,则
OLS
回归模型可以学习常数型、线性型、二次型或三次
型的函数关系。参数
deg
越大,
OLS
回归模型的容量越大。
下面的
Python
代码从
deg=1
开始,以
2
为增量增大阶数,
MSE
值随着阶数参数的增大而
单调递减。图
5-6
显示了所有考虑阶数的回归线。
In [29]: reg = {}
for d in range(1, 12, 2):
reg[d] = np.polyfit(f, l, deg=d)
➊
p = np.polyval(reg[d], f)
mse = MSE(l, p)
print(f'{d:2d} | MSE={mse}')
1 | MSE=0.005322474034260403
3 | MSE=0.004353110724143185
5 | MSE=0.0034166422957371025
7 | MSE=0.0027389501772354025
9 | MSE=0.001411961626330845
11 | MSE=0.0012651237868752322
In [30]: plt.figure(figsize=(10, 6))
plt.plot(f, l, 'ro', label='sample ...