机器学习(八) ——过拟合与正则化

机器学习(八)——过拟合与正则化

(原创内容,转载请注明来源,谢谢)

一、过拟合和欠拟合

1、概念

当针对样本集和特征值,进行预测的时候,推导θ、梯度下降等,都在一个前提,原值假设函数(hypnosis function)h(x)的表达式,例如是一阶、二阶还是更高阶等。

当阶数不足导致无法正确预测时,称为欠拟合(underfit)或高偏差(high bias);当阶数太高,虽然能满足样本集,代价函数也接近0,但是仍不是一个好的预测函数,称为过拟合(overfitting)或高方差(high variance)。

例如根据房子的面积预测房价,欠拟合、正常情况、过拟合分别如下面三个图所示:

过拟合的情况比较明显,在只有一个影响因素的情况下,因为面积增到导致价格减少是不现实的,虽然满足了所有的样本集,但是这个模型是不正确的。

logistic回归同样有类似问题:

2、过拟合存在问题

过拟合主要是因为特征值太多、阶数太高引起,如果样本集数量不够,没法有效的进行训练,会导致预测的结果存在较大偏差,模型无法使用。

二、解决过拟合方案

1、画图,并根据图像判断是否正确,如上面的例子。这个只有在影响因素很少的情况下可行,因素多时,维度高,不容易图形表示,也不容易通过图形判断是否正确。

2、减少不必要的特征值,特别是重复的特征(如用平方米和平方尺两个特征计算面积)。可以通过人工选择或模型选择算法(model selection algorithm,后面会学到)来实现。但是,这样可能会导致损失一些特征信息。

3、通过正则化(regularization)的方式实现。这种方式,不需要损失任何特征值。

三、正则化

1、基本思路

当一个式子有四个特征值,且明显后两个特征值并不重要,则可以如下设代价函数:

这样,后面两个特征值由于被加了平方项,导致值需要非常小,才可以让整个代价函数很小。

2、正则化思路

当无法确认哪些特征值是不重要的时候,则应该使用正则化,其主要思想是通过减小所有的θ,这样可以获得更简单的h(x),阶数更低;另外,也更不容易出现过度拟合的现象。

3、步骤

1)列出原先线性回归情况下的代价函数

2)改成以下公式

分析上面的公式,可以看出,代价函数加入了θ的平方项,这样使得要让代价函数值尽量小,就应该要每个θ都尽量小。

另外,上面的式子中,对θ的处理从1~n,而θ0并没有参与正则化处理。

其中,带λ的项,称为正则化项;λ称为正则化参数。该参数目的在于平衡训练集更好参与训练同时让θ都尽量小,最终达到获得更简单的h(x),阶数更低。

需要注意的是,如果λ太大,例如10的10次方,则由于每个θ都太小,接近于0,导致h(x)约等于θ0,会出现欠拟合。

四、线性回归正则化

线性回归可以使用梯度下降和标准方程法,分别讨论如下:

1、梯度下降算法

根据上面的代价函数的公式,易得梯度下降算法需要迭代的方程如下:

其中,θ0由于不参与正则化,单独列出来。

化简上面的θj的式子,把θj提取出来,公式变换如下:

从上式与正则化之前的梯度下降算法对比,实际上就是θj多乘了一个(1-α*λ/m),这个值略小于1,因此达到减小θj的目的。

2、标准方程法

对于标准方程法,正则化则需要加入下面括号带λ的这一项,这样从θ1~θm都被λ进行调整了。

之前讨论过XTX有可能不可逆的情况,但是已经经过数学论证,正则化后,只要λ>0,整个括号内的项必然可逆。

因此,正则化是解决标准方程法XTX有可能存在不可逆的方法之一。

五、logistic回归正则化

logistic回归的算法,实际上基本公式和线性回归的梯度下降法是一样的,只不过其h(x)不同,带入对应的h(x),得到logistic回归的代价函数如下公式;

——written by linhxx 2018.01.05

原文发布于微信公众号 - 决胜机器学习(phpthinker)

原文发表时间:2018-01-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Gaussic

Machine Learning笔记(三) 多变量线性回归

这样只有单一特征的数据,往往难以帮助我们准确的预测房价走势。因此,考虑采集多个特征的数据值,往往能提升预测效果。例如,选取如下4个特征作为输入值时的情况:

763
来自专栏机器学习算法与Python学习

Machine Learning -- GBDT(RF)

前言: 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等。但是同时, 单决策...

3075
来自专栏小樱的经验随笔

回归与梯度下降法及实现原理

回归与梯度下降 回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回...

3446
来自专栏智能算法

GBDT(梯度提升决策树)算法(详细版)

一、前言 通过之前的文章GBDT算法(简明版)对GBDT的过程做了大概的讲解,我们可以了解到GBDT是一种迭代的决策树算法,由多棵决策树组成,所有树的结论累加起...

42711
来自专栏深度学习之tensorflow实战篇

随机森林,random forest

模型组合(比如说有Boosting,Bagging等)与决策树相关的算法比较多,这些算法最终的结果是生成N(可能会有几百棵以上)棵树,这样可以大大的减少单决策树...

2745
来自专栏机器学习算法与Python学习

随机森林与GBDT

转自于:博客园-LeftNotEasy 前言: 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得...

2735
来自专栏企鹅号快讯

梯度下降法的三种形式BGD、SGD以及MBGD

在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练。其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点。 下面我们以线...

24310
来自专栏机器学习算法与Python学习

线性分类(SoftMax) - 下篇

导读 线性分类器-中篇 线性分类器 CS231n课程笔记翻译:图像分类笔记(下) CS231n课程笔记翻译:图像分类笔记(上) SoftMax分类器 SVM是最...

2618
来自专栏量化投资与机器学习

【机器学习课程】经典算法之——AdaBoost在量化投资中的应用(附代码和很多论文资料)

1算法简介 AdaBoost是由Yoav Freund和Robert Schapire提出自适应增强的一种机器学习方法。AdaBoost算法的自适应在于:前一个...

1766
来自专栏人工智能

深度学习入门笔记(2)-线性回归 Linear Regression with autograd

一同前行! 假设我们有一个曲线(或者平面)y=wx+b 我们给定它一个特定的w,和b w = [2,51] b = 21.2 即y=2x1+51x2+21.2 ...

2229

扫描关注云+社区