• 我们前边学习了线性回归和逻辑回归,但是将其应用到实际中可能产生过拟合,下边我们来看下如何解决过拟合问题

何为过拟合

image

  • 我们仍然以房价预测的例子来看线性回归中的过拟合:

(1)若我们用直线去拟合数据,显然是不好的,因为房价随着面积的增大逐渐平缓,和直线的趋势不符。这种情况叫做欠拟合(高偏差),假设函数连训练集数据都没有很好地拟合
(2)若使用二次函数拟合,则刚刚好
(3)若使用四次多项式拟合数据,这样看上去对训练数据做了非常好的拟合,经过了所有的点。但是这条假设函数为了千方百计的拟合训练数据,用了过多的函数变量,而且是扭曲的,不能很好地泛化到新的数据中(泛化:一个假设模型应用到新样本数据中的能力)。这就叫过拟合

  • 下边我们用二分类的例子看一下逻辑回归中的过拟合:

image

  • 后边,我们会讨论如何调试和诊断,来找出导致学习算法故障的东西;以及如何用专门的工具来识别过拟合和欠拟合,下边我们先看下如何解决过拟合问题

解决过拟合的方法

  • 通常,过拟合是由于特征变量多,数据数量少造成的。因此,我们可以通过减少变量数量解决过拟合问题,即舍弃一部分变量。后边的模型选择算法,就是自动的保留舍弃变量。但是,舍弃变量,往往意味着舍弃了问题的一部分信息
  • 因此,目前最好用的方法是正则化。正则化能保留所有的特征变量

正则化的代价函数

  • 我们先通过例子来直观的理解下正则化。以房价预测为例,我们要解决过拟合问题的话,就要惩罚参数3、4,让3、4尽可能的小。我们可以通过在代价函数后添加一个数(1000是随便找的比较大的数)乘3、4的平方项。这样为了让代价函数尽可能小,我们就会让3、4尽可能小;当3、4接近0时,我们可以忽略这两个数,就得到了近似二次的函数

image

  • 这就是正则化背后的思路。通过给某些参数较小值,得到形式更为简单的函数,就不易发生过拟合了。但是,在有上百个特征的线性回归中,我们不知道哪些参数和结果的关联度小,就没法选择参数让他们变小。所以,我们惩罚除了参数0之外的所有参数,添加他们的正则化项,缩小所有的参数
  • 要注意的是,首先,我们不知道为何缩小所有参数能像房价预测只缩小高阶项参数那样避免过拟合,但这是一个事实,我们只能接受;其次,不惩罚参数0只是我们的习惯,实际上加不加上结果差异很小,我们只是出于管理不加上

正则化参数

  • 加入正则化参数后的代价函数有两个目标:

(1)想要假设函数更好地拟合训练集数据
(2)要参数值尽可能的小

我们的正则化参数就需要平衡两者
image

  • 若我们的正则化参数值很大,将参数都惩罚到了接近0,就成了欠拟合;若正则化参数小,参数值基本不受影响,就容易变成过拟合
  • 因此我们要适当的选择正则化参数。后边我们会谈到用多重选择的方法选择正则化参数

逻辑回归的正则化没字幕

...


无欲则刚
76 声望15 粉丝