白话机器学习(5):更高端的线性回归模型 -Ridge Regression
本文适合人群:对机器学习 Machine Learning 与数据感兴趣的学习者
文章同步公众号:持续学习的杜吉普
温馨提示:阅读本文之前,需对以下内容进行了解并掌握
白话ML(4):公允的裁判-交叉验证Cross-Validation评价模型
本文白话什么:
更高端的回归预测:Ridge Regression
本文提纲:
为什么要有更高端的回归模型?
Ridge Regression 如何实现调整优化?
Ridge Regression 的隐藏作用
注:全文无编程,只含有少量计算,文章内容全部尽量通俗易懂化,请尽情享用。
为什么要有更高端的回归模型?
我们已经通过之前的学习了解了 Bias 和 Variance,也了解到 Ridge 和 Lasso 其实都属于通过 Regularization 的方法来解决 bias variance balance 的问题。所以我们就赶紧了解一下 ridge 和 lasso 是如何通过解决这个 balance 问题的吧。
还是通过案例来说话。
我们要找到 weight 和 size 的关系。下面这幅图里所有的 dot 都是我们的数据。设置一个极端情况,红色的点是我们的 training set,绿的是 test set。我们现在使用 linear regression 来进行训练模型,很明显,我们最终会训练出的 linear regression model 是下面这条红色直线,因为符合最小二乘法。

但是,很明显,这条红线在 test set 上的表现很不好,也无法代表整体的数据集的关系。这种情况我们在之前的文章中讲过,叫做低 bias,高 variance。也叫做模型的过拟合(overfitting)。
我们预期训练出的模型是什么样子的呢?就是下面这条红线,虽然在 training set 上没有变态完美的表现,但是在整个 test set 上也表现不错,能够较为不错的展现出数据的关系。

那么这样的优化调整效果就是 ridge regression 能够实现的。
Ridge regression 如何实现优化调整?
先从优化前的 linear regression model 开始说起(下图红线),在前面的文章中我们说过,linear regression model 建立的依据是找到一条直线来 minimize(最小化)sum of the squared residuals。于是通过这个准则,左图中的红线就得到了。我们的方程就是 Size = intercept + slope * weight.

在 ridge regression 中,我们同样是想找到一根直线,但找到这根线的准则就完全不一样了,他变成了 minimize the sum of the squared residuals + λ* slope^2。Slope 就是这条直线的斜率。

也就是说,ridge regression 之所以能够将 linear regression model 进行优化调整是因为在“找线”准则上多出来了个λ* slope^2。那么λ* slope^2 又是什么呢?
我们管 slop^2 叫做对于模型的 penalty(惩罚),而λ就是 penalty 的 degree,也就是惩罚的狠度狠不狠。整个λ* slope^2 可以降低因变量对于自变量的敏感性(sensitivity),说人话就是让这条斜线没有那么斜,没有那么斜也就说明了 slope 变小,这里用专业的话语来说 ridge regression 的作用就是。

λ的选择可以是任何数字,我们的计算机会通过 Cross Validation 从所有λ中找到一个最合适的λ,以找到 Variance 最小的那个λ。在λ确定后,我们最终的 ridge regression model 也就确定了。
Ridge Regression 隐藏作用
除了解决 bias variance balance 的问题之外,ridge regression 能够解决的另一个问题就是,当自变量数量大于训练数据量,我们如何训练模型?

如上图所示,一个极端的例子,现在训练集只有一个数据量,而数据却是二维的(变量数为 2>数据量 1),如果用 linear regression model 我们是能够得到无数条直线来保证最小二乘原则的(换句话说就是无法找到最佳模型)。
但是有了 ridge regression 之后,一切迎刃而解,我们引入 Penalty,为了找到合适的λ,我们利用 Cross Validation 将 test set 也加入到模型训练的过程中,这样即使 training set 只有一个数据,我们也能够训练出合适的模型结果。如下图所示。

那么 Ridge Regression 的应用场景是怎样的呢?我们会在下一个文章 Lasso Regression 之后进行对比说明。
本文参考信息来源:
SateQuest
---------------------
白话 ML 就到这里,下期预告:Lasso Regression — Ridge Regression 的大兄弟
PS:有任何疑问欢迎留言,本文完全个人浅薄理解,如有不足欢迎评论区指正。
我是杜吉普,致力于 数据+数据技术+商业场景=商业价值
欢迎关注公众号持续学习的杜吉普,让我们共同持续成长。
版权声明: 本文为 InfoQ 作者【杜吉普】的原创文章。
原文链接:【http://xie.infoq.cn/article/a0bc3d690a0f6987dc5a7a339】。文章转载请联系作者。
评论