Basic Concept

1.Where does the error come from?

了解error的来源,可以帮助我们提高function的效果.

Error(误差)来源自Bias(偏差,和均值相关)和Variance(变化幅度,和方差相关)

file

我们得到的f*只是真实f的一个估计,所以它一定会存在一个误差Error.

file

先回忆一下概率论中均值和方差的估计

均值(它是一个无偏估计)

file

file

方差的估计(它是一个有偏估计)

file

观察一下四种Bias和Variance不同情况下点的分布情况

file

我们的目标便有了,追求Bias和Variance都尽量小,让model的性能更好

接下来我们设想我们用同一个model,不同的数据得出了不同的f*

file

file

file

*我们不难看出,在一幅图中,使用同一个model,训练出来的f之间差别越大,Variance越大,而且我们可以得知越复杂的model(例如5次式),它的Variance就越大,也就是稳定性越差**

file

对于Bias

file

file

我们可以看出越复杂的式子它的Bias越小,也就是偏差越小

file

综上我们可以得出:

  • model越复杂,Variance越大,Bias越小
  • model越简单,Variance越小,Bias越大

file

所以根据我们要求的方差和偏差都要小,我们要折中进行选择我们的model

如何处理Bias和Variance过大的问题

首先我们要明确两个概念:

  • 过拟合,Overfitting,你的Error是由Variance过大导致的。

  • 欠拟合,Underfitting,你的Error是由Bias过大导致的。

什么时候会发生过拟合和欠拟合:

当你的模型能够适应训练数据,但是在测试数据上的偏差过大时,这时候就出现了过拟合,具有大的Variance。

当你的模型不能适应训练数据时,这时候就出现了欠拟合,具有大的Bias。

怎么解决:

发生过拟合,即拥有较大的Variance时:

  • More Data:这样虽然有效但并不是十分实用,因为数据的获取往往比较困难。
  • Regularization:即正则化,增加一些额外的参数,使曲线变得更加平滑。

发生欠拟合,即具有较大的Bias时:

  • Redesign your model(add more features as input或者a more complex model)

以上这么多都是为了选择更好的model

一般都是择中进行选择.

file

一般我们的model可能在我们手中的Testing Data 上有不错的效果,但是在面向所有可能的Testing Data时,Error Rate就会有所上升

虽然想说这是很正常的,但是确实有方法可以适当解决这个问题

交叉验证

如下可以将Training Data分成两份,一份用来训练model,一份用来选择我们训练的model,选择Error最低的之后,再拿整体的Training Data来训练一次这个model。

这个时候会有不错的效果,但是在Testing Data时,Error会大于我们训练出来的,此时不推荐从头重选model,因为我们大可不必在意我们选出来的model在我们拥有的Testing Data上的Error Rate,因为我们最终面向的并不只是我们手中的数据。或许这里面也具有一定的运气问题,相信自己挑出来的就是最好的model!

file

n 重交叉验证

就是分成三份,每次拿其中两份作为训练数据,最后一份作为选择数据,一共有三种情况。

三种情况下不同model的Error再取均值,选出Error最小的。

最后再拿整体的训练数据训练一下这个model。

file