首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

北大陈浩然笔记:特征缩放和泛化能力

文末附领红包方法

1

多变量线性回归

如果数据中属性是一个多维向量, 那么该回归模型称为多变量线性回归。也就是一般意义上的线性回归模型。

我们先定义符号,代表第 i 个数据的属性值,它是一个向量,表示第 i 个数据的第 j 个属性,它是一个实数,yi 是第 i 个数据的标签值,也是实数。f是我们学习到的模型,即我们对第 i 个数据的预测值。我们建立的模型为:

我们的目标是,求得适当的和 b,使得 S 最小,其中 S 是预测值和真值的差距平方和,亦称为代价函数,当然代价函数还有很多其他的形式。

2

特征缩放

由于 x具有很多维的特征,每一维的特征大小可能相差甚多,这样会大大影响学习的速度。假如房价范围 0-10000000,房子大小范围 1-200,那么这两个特征学习到的系数大小会差很多倍,而学习率必须按照最小的系数来进行设定,则大系数的收敛会非常慢。

为了避免这种情况,我们使用了特征缩放将每个特征的值进行处理,使之在[-1,1]之间,当然,原本范围就于此在一个数量级的特征,也可以不进行处理。处理公式如下:

或者

其中

σ为数据标准差。

3

正规方程法

对于多元线性回归而言,正规方程法是一种准确的方法,就像最小二乘法对于单变量线性回归一样。

为了使形式更加简化,我们做以下符号设定

由此,我们可以将S写成另一种形式,定义如下

请注意,和S的区别仅仅在于它没有的系数,而该系数是一个定值,故最小化的目标和过程是一样的,我们在此要将最小化。

同理,我们将视为 w 的函数,对于 w 求导数,得到取得最小值时的w 的值,便是我们得到的结果,记为

该方法得到了为准确值,即在我们给定条件下的最优解,但是该方法有两个弊端:

需要计算,相对于矩阵规模n而言,算法复杂度是O(n^3), n非常大时, 计算非常慢,甚至根本无法完成。

可能出现矩阵不可逆的情况,在这里不进行数学上的分析,但是可以说明,以下两种情况容易导致矩阵不可逆。

我们使用了冗余的特征,例如我们选取的两个特征始终保持倍数关系,则这两个特征向量线性相关。此时应该去除冗余的向量。

我们使用了太多的特征(特征的数量超过了样本的数量).,也可以理解为样本的数量太少,对于这种情况我们可以删掉一些特征或者使用正则化(在下一篇文章中会讲到)。

4

梯度下降法

此处的梯度下降法和之前一元线性回归的梯度下降法基本相同,无非是一元线性回归只有两个需要求的参数,而多元线性回归中有多个待求参数。其余的只需要将导数项换掉即可。最终得到的式子如下:

与正规方程法相比,梯度下降法当有大量特征时, 也能正常工作,仍可以在可接受的时间内完成。

5

泛化

之前我们提到过,线性模型并不是只能进行线性分类,它具有很强的泛化能力,如果仅仅使用在此之前的单元和多元线性回归,我们只能得到多维空间的高维平面,为了进一步增强泛化能力,我们可以引入幂次项

比如我们原来有只有一个特征 x1,我们现在令就人为的引入了第二个特征,拥有更强的拟合能力。我们还可以引入两个特征的交叉项,使得线性模型更强大。

例如,我们原本只有一个模型:

我们引入,人为引入三个变量,我们的模型变为:

也就是说,很多复杂的模型都可以转化为线性模型进行建模。

但是,我们也要防范过拟合问题,过多的人为特征很容易导致过拟合,我们将在下一个章节详细讨论。

6

校验

那么,我们写好算法进行运行之后,如何检验我们的算法是否正常运行呢?一个办法就是看他的 S(总误差)随时间变化的图像。

正常情况下,S应该随着算法的运行逐渐降低,降低的速度越来越小,但是如果算法错误,或者学习率不适宜,那么可能出现S反而增大或者抖动的现象,如下图所示:

7

总结

线性模型以其简单和可解释性在众多模型中脱颖而出,至今仍是经常使用的回归算法之一,在机器学习中仍然具有重要应用,如趋势线,流行病学预测,金融经济等。

作者:陈浩然,北京大学专业智能科学。想了解她的更多文章,请访问:

博客:https://braverychr.github.io/

知乎专栏:https://zhuanlan.zhihu.com/MLstudy

【回馈粉丝活动】凡是点击广告,并留言【已点】,每周统计一次,凡留言天数超过3次者送神秘现金红包一个。

Python与机器学习算法频道

欢迎点赞和转发。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180708G02E6J00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券