机器学习——如何评价回归模型

来源:互联网 发布:宜家海沃格床垫知乎 编辑:程序博客网 时间:2024/06/05 09:50

本内容整理自coursera,欢迎交流转载。

如何定义损失

我们用如下符号表示回归模型的损失(loss):

L(y,fw^(x⃗ ))
举个栗子,我们可以使用局对误差或者方差表示 损失函数:
L(y,fw^(x⃗ ))=|yfw^(x⃗ )|
L(y,fw^(x⃗ ))=|yfw^(x⃗ )|2

三种误差

training error

根据如上对损失函数的定义,training error可以表示为:

Training error= average.loss in Training set= 1NNi=1L(y,fw^(x⃗ ))

注意:这里的计算实在training set上进行的。

例如我们可以用squared error来表示损失函数,那么
Trainingerror(w^)=1NNi=1|yfw^(x⃗ )|2
由于training error是在训练集计算的,所以随着模型复杂度的增加,training error逐渐减小。

generalization error(泛化误差)

泛化误差表示为我们所有可能遇到的数据的误差,
generalization error=Ex,y[L(y,fw^(x⃗ ))]
这里的Ex,y指的是所有世界上可能的数据,w^是我们在training set得到的拟合系数向量。
所以说泛化误差是永远无法得到的。随着模型的复杂度的增加,泛化误差先变小,然后由于过拟合而变大。

test error(测试误差)

Test error=avg.loss in test set=1Ntesti in test setL(y,fw^(x⃗ i))

注意:这里的w^依旧是在训练集你喝的道德系数向量。

下面比较一下三种误差:
这里写图片描述

误差的三个来源

主要来自以下三个方面:

  • noise(噪声)
  • bias(偏差)
  • variance(方差)

噪声是不可消除的。
Bias定义为:

假设我们有好多拟合函数,在不同的训练集拟合。我们把这些函数平均得到一个fw¯(x⃗ ),那么我们的Bias(x⃗ )=fw(true)(x⃗ )fw¯(x⃗ ),由这个定义我们可以得知较低的模型复杂度会有较高的偏差,即Low complexityhigh bias.

方差:随着模型复杂度增加,方差增加
这里写图片描述

1 0
原创粉丝点击