机器学习-多元线性回归

A. 用途:

可以用来预测,由多种因素影响的结果。

B. 建立公式:

C. 求解方法:

方法1. Gradient Descent:

技巧:

技巧1. Feature Scaling:
何时用:

当各个变量的值域或者数量级相差比较大时, 需要将各个变量的值域变换到相似的水平, 变换后,Gradient Descent 就可以更快地下降。

为什么要用:

不用的话,J 关于 Theta 的形状就会非常扁,Gradient 就会来回摆动,就需要更长的时间才能找到最小值。

所以就要做Feature Scaling:

怎么用:

1.除以值域范围:

2.或者,先减平均值,再除以值域范围:

之后,这个形状就会比较正规,Gradient 就可以比较快地找到全局最小值。

技巧2. Learning Rate:

如何确认Gradient Descent是在正确地进行? 如何选择Alpha?

1. 如何确认Gradient Descent是在正确地进行?

数学家们已经证明,当Alpha足够小,J就会每次迭代后都下降。

所以,就可以画图,横轴是迭代的次数,纵轴是cost function的值: 如果是正确的话,那么每次都用迭代后得到的Theta代入J,J应该是下降的。

如果曲线是上升的,说明Gradient Descent用错了,此时需要将Alpha调小。

因为Alpha较大的话,就会过头而错过最小值,进而表现越来越差,造成曲线是上升的:

但是当Alpha太小的话,收敛就会很慢。

补充: 到底需要多少次迭代才会收敛,是与算法和数据有关的。

自动检测是否收敛的方法: 但是这个阈值是很难去确定的。

2. 如何选择Alpha? 在实践中: 可以尝试一系列Alpha的值,0.001,0.01,0.1,1等。

技巧3. 如何选Feature?

在实践中: 你可以不只是用给定的因素,而是通过思考,看哪些因素也是影响预测目标的原因,或者由原始的因素间,进行加减乘除等运算,自己构建Feature。 有一种比较普遍的构建方法,就是多项式。

后续会介绍一些算法,是用来自动选择Feature的。

方法2. Normal Equation

它是另一种求解最小值的方法,是通过分析的方式,而不是迭代。

根据线性代数的知识,得到Theta的求解公式:

m个Sample数据,n个Feature,那么Design Matrix的维度就是 m*(n+1)。

当 X`X 不可逆的时候,该怎么办? 造成不可逆的原因可能主要有两个: 一个是变量间具有相关性,比如一个变量以线性相关关系的形式被用作两个变量。 另一个原因是用了太多的Feature,就是m<=n时,比如说只用10个Sample去做101个Feature的预测。

这两种情况下的解决方案就是,要么删掉一些Feature,要么采用Regularization,后续。

D. 两种方法比较

用 Normal Equation 的话,就不用做 Feature Scaling 了。

当 Feature 有很多,成千上百万的时候,Gradient Descent 也仍然有效,但是 Normal Equation 因为要计算矩阵的转置,乘积,还有逆,就不适用于这样的数量级的计算。一般在 1000 级别的还可以用 Normal Equation。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

用R语言写个贝叶斯模型 预测我的妻子是否怀孕

在2015年的二月21日,我的妻子已经33天没有来月经了,她怀孕了,这真是天大的好消息! 通常月经的周期是大约一个月,如果你们夫妇打算怀孕,那么月经没来或许是一...

34590
来自专栏机器之心

计算语言顶会ACL 2018最佳论文公布!这些大学与研究员榜上有名

1. Finding syntax in human encephalography with beam search(尚未公开)

13600
来自专栏一心无二用,本人只专注于基础图像算法的实现与优化。

《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果(速度可实时)

      最新的效果见 :http://video.sina.com.cn/v/b/124538950-1254492273.html         可处理...

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

【全网首发】机器学习该如何应用到量化投资系列(二)

有一些单纯搞计算机、数学或者物理的人会问,究竟怎么样应用 ML 在量化投资。他们能做些什么自己擅长的工作。虽然在很多平台或者自媒体有谈及有关的问题,但是不够全面...

29660
来自专栏用户2442861的专栏

深度卷积网络CNN与图像语义分割

转载请注明出处: http://xiahouzuoxin.github.io/notes/

19410
来自专栏大数据文摘

机器学习算法一览(附python和R代码)

262140
来自专栏新智元

谷歌等祭出图像语义理解分割神器,PS再也不用专业设计师!

不不不,这不是“找不同”,是为了让你感受一下“像素级语义分割和理解”带来的修图效果:

13620
来自专栏机器学习ML

UdaCity-机器学习工程师-项目1:预测波士顿房价

欢迎来到机器学习工程师纳米学位的第一个项目!在此文件中,有些示例代码已经提供给你,但你还需要实现更多的功能来让项目成功运行。除非有明确要求,你无须修改任何已给出...

31250
来自专栏大数据挖掘DT机器学习

【续】分类算法之贝叶斯网络(Bayesian networks)

在上一篇文章中我们讨论了朴素贝叶斯分类。朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立)。当...

51280
来自专栏机器之心

教程 | 预测电影偏好?如何利用自编码器实现协同过滤方法

18830

扫码关注云+社区

领取腾讯云代金券