学习笔记5 - 机械学习(回归)-高次多项式拟合数据以及过拟合与欠拟合状态

1.实例

1.1基本条件

假设数据为{ x ( 1 ) , x ( 2 ) , x ( 3 ) , . . . , x ( N ) x^{\left( 1 \right)},x^{\left( 2 \right)},x^{\left( 3 \right)},...,x^{\left( N \right)} x(1),x(2),x(3),...,x(N)},其中 x x x是多维向量或认为是超平面内的点,表达式为: x = ( x 1 , x 2 , . . . , x k ) x=\left( x_1,x_2,...,x_k \right) x=(x1,x2,...,xk)

1.2代码及结果

选择多项式拟合数据:GitHub-jupyterlab(例子代码),一元多次函数拟合数据.ipynb。

如图,对于两份数据,通过train得到拟合结果之后再用test验证拟合情况。
学习笔记5 - 机械学习(回归)-高次多项式拟合数据以及过拟合与欠拟合状态_第1张图片
一元数据拟合情况:
学习笔记5 - 机械学习(回归)-高次多项式拟合数据以及过拟合与欠拟合状态_第2张图片
结果:

稳定后的loss为: 546289.0648959058
训练集均差为 8.972739584955162
训练集总偏差为 [538.3643751]
训练集方差为 54.433026773618536
训练集标准差为 7.377874136471734
测试集均差为 11.230905384630068
测试集总偏差为 [449.23621539]
测试集方差为 168.81186944068685
测试集标准差为 12.992762194417585

三次拟合:
学习笔记5 - 机械学习(回归)-高次多项式拟合数据以及过拟合与欠拟合状态_第3张图片

the loss is 219.5909230277145
训练集均差为 1.4086444962403653
训练集总偏差为 [84.51866977]
训练集方差为 0.7212146185694014
训练集标准差为 0.8492435566840654
测试集均差为 1.5676085359840122
测试集总偏差为 [62.70434144]
测试集方差为 0.736383621013507
测试集标准差为 0.8581279747295895

五次拟合:
学习笔记5 - 机械学习(回归)-高次多项式拟合数据以及过拟合与欠拟合状态_第4张图片

the loss is 219.5909230277145
训练集均差为 1.659834950813476
训练集总偏差为 [99.59009705]
训练集方差为 1.1652727234890574
训练集标准差为 1.0794779865699242
测试集均差为 1.829716476776953
测试集总偏差为 [73.18865907]
测试集方差为 1.9192102408486047
测试集标准差为 1.385355636957025

1.3分析

欠拟合状态,在训练集和测试集上表现都不太好;而当次数过高时,处于过拟合状态,其精度不会随着模型的复杂度上升而变得更加精确,具体分析见代码块。

2.影响因素

2.1Bias 和 Variance的定义

  • 均差

在总样本N中取出n组数据,按以下算出 m j m_j mj,其值不是均差 μ \mu μ:
m j = 1 n ∑ i = 1 n x ( i ) ≠ μ m_j=\frac{1}{n}\sum_{i=1}^n{x^{\left( i\right)}}\ne \mu mj=n1i=1nx(i)=μ
其均值应为 m m m的期望,即:
μ = E ( 1 N ∑ i = 1 N x ( n ) ) \mu =E\left( \frac{1}{N}\sum_{i=1}^N{x^{\left( n \right)}} \right) μ=E(N1i=1Nx(n))

  • 方差

按以下算出 s 2 s^2 s2,其值不是方差 σ 2 \sigma ^2 σ2:
s 2 = 1 N ∑ i = 1 N ( x ( n ) − m ) 2 s^2=\frac{1}{N}\sum_{i=1}^N{\left( x^{\left( n \right)}-m \right) ^2} s2=N1i=1N(x(n)m)2
其方差为:
σ 2 = N N − 1 E ( s 2 ) \sigma ^2=\frac{N}{N-1}E\left( s^2 \right) σ2=N1NE(s2)

在代码块里面,选择全部的训练数据距拟合曲线的距离作为偏差,离散程度用方差来量化。

2.2 两者对数据的反应

bias反应数据集与期望数据间的差距,而Variance反应数据的离散程度。

  • large bias + smell variance --> underfitting
  • smell bias + big variance --> overfitting
    这块理的不太清楚,后面补充,也欢迎交流。。。

2.3 解决较大的bias和variance的方法

  • 对于较大的bias,增加模型的复杂度。
  • 对于较大的variance,可以通过增加数据或者通过正则化解决。

这块后面补充。

参考:

  1. 李宏毅2020机械学习课程
  2. 某个tensorflow2.0的视频(链接没得了)

你可能感兴趣的:(回归,深度学习,机器学习,数据分析,算法)