**************************************

注:本系列博客是博主学习Stanford大学 Andrew Ng 教授的《机器学习》课程笔记。博主深感学过课程后,不进行总结很容易遗忘,根据课程加上自己对不明白问题的补充遂有此系列博客。本系列博客包括线性回归、逻辑回归、神经网络、机器学习的应用和系统设计、支持向量机、聚类、将维、异常检测、推荐系统及大规模机器学习等内容。

**************************************

多变量线性回归

多维特征

目前为止,我们探讨了单变量(特征)的回归模型,现在我们对房价模型增加更多的特征,如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x ,x ,...,x )。

多变量梯度下降

与单变量线性回归类似,在多变量线性回归中,我们也构建一个代价函数,则这个代价函数是所有建模误差的平方和,即:

其中:

我们的目标和单变量线性回归问题中一样,是要找出使得代价函数最小的一系列参数。  多变量线性回归的批量梯度下降算法为:

左边为单变量学习方法,右边为多变量学习方法。

梯度下降法实践

1 特征缩放

在我们面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛。

以房价问题为例,假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值为 0-2000平方英尺,而房间数量的值则是0-5,以两个参数分别为横纵坐标,绘制代价函数的等高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。

解决的方法是尝试将所有特征的尺度都尽量缩放到-1 到1之间。如图:

最简单的方法是令:

2 学习率

梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,我们不能提前预知,我们可以绘制迭代次数和代价函数的图表来观测算法在何时趋于收敛。

梯度下降算法的每次迭代受到学习率的影响,如果学习率 α过小,则达到收敛所需的迭代次数会非常高;如果学习率α 过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。

通常可以考虑尝试些学习率:α=0.01,0.03,0.1,0.3,1,3,10

特征和多项式回归

如房价预测问题:

线性回归并不适用于所有数据,有时我们需要曲线来适应我们的数据,通常我们需要先观察数据然后再决定准备尝试怎样的模型。另外,我们可以将模型转化为线性回归模型。如下图 x->size:

注:如果我们采用多项式回归模型,在运行梯度下降算法前,特征缩放非常有必要。

正规方程

到目前为止,我们都在使用梯度下降算法,但是对于某些线性回归问题,正规方程方法是更好的解决方案,它可以直接解出参数。如:

假设我们的训练集特征矩阵为X(包含了 x0=1)并且我们的训练集结果为向量 y,则利用正规方程解出向量:

以下表示数据为例:

则根据公式:   可以得到所需参数。

梯度下降与正规方程的比较:

******************

作者:hao_09

时间:2015/8/9

文章地址:http://blog.csdn.net/lsh_2013/article/details/47374045

******************

机器学习:多变量线性回归相关推荐

  1. 吴恩达机器学习 -- 多变量线性回归

    5.1 多维特征 前一周所讲是单变量线性回归,即 ,是只有一个变量 的假设函数,现在对房价预测模型有了更多的参考特征,比如楼层数,卧室的数量,还有房子的使用年限.根据这些特征来预测房价.此时的变量有多 ...

  2. 机器学习多变量线性回归

    支持多变量的假设 表示为: 这个公式中有n+1个参数和n个变量,为了使得公式能够简化一些,引入x0=1,则公式转化为: 此时模型中的参数是一个n+1维的向量,任何一个训练实例也都是n+1维的向量,特征 ...

  3. python梯度下降法实现线性回归_【机器学习】线性回归——多变量向量化梯度下降算法实现(Python版)...

    [向量化] 单一变量的线性回归函数,我们将其假设为:hθ(χ)=θ0+θ1χh_\theta(\chi)=\theta_0+\theta_1\chihθ​(χ)=θ0​+θ1​χ但是如果我们的变量个数 ...

  4. 机器学习之多变量线性回归(Linear Regression with multiple variables)

    机器学习之多变量线性回归(Linear Regression with multiple variables) 1. Multiple features(多维特征) 在机器学习之单变量线性回归(Lin ...

  5. Coursera公开课笔记: 斯坦福大学机器学习第四课“多变量线性回归(Linear Regression with Multiple Variables)”

    Coursera公开课笔记: 斯坦福大学机器学习第四课"多变量线性回归(Linear Regression with Multiple Variables)" 斯坦福大学机器学习第 ...

  6. 斯坦福大学机器学习第三课“多变量线性回归“

    斯坦福大学机器学习第三课"多变量线性回归(Linear Regression with Multiple Variables)" 斯坦福大学机器学习第四课"多变量线性回归 ...

  7. 吴恩达《机器学习》学习笔记三——多变量线性回归

    吴恩达<机器学习>学习笔记三--多变量线性回归 一. 多元线性回归问题介绍 1.一些定义 2.假设函数 二. 多元梯度下降法 1. 梯度下降法实用技巧:特征缩放 2. 梯度下降法的学习率 ...

  8. 机器学习入门:多变量线性回归

    摘要:给大家简单介绍了多变量线性回归,还附赠在处理梯度下降过程中通用的两个小技巧. 本文分享自华为云社区<[跟着小Mi一起机器学习吧!]多变量线性回归(一)>,原文作者:Skytier. ...

  9. 吴恩达|机器学习作业1.1多变量线性回归

    1.1.多变量线性回归 1)题目: 在本部分的练习中,需要预测房价,输入变量有两个特征,一是房子的面积,二是房子卧室的数量:输出变量是房子的价格. 数据链接: https://pan.baidu.co ...

  10. Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

    本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归.Octave Tutorial.Logistic Regression.Regularization.神经网络.机器学 ...

最新文章

  1. 自动驾驶多相机与多雷达数据融合方法汇总
  2. Swift3 获取当前连接WIFI名称
  3. Ansible实现zabbix服务器agent端批量部署
  4. c语言中常用的程序,C语言一些常用语句
  5. 腾讯面试题 linux下free命令详解
  6. 大数据在互联网金融行业中的应用
  7. 记一次Mysql误删记录的挽救
  8. python--pandas 分位数
  9. 新书《深入理解Kafka:核心设计与实践原理》上架,感谢支持~
  10. datatables 响应式
  11. 数据中台精华问答 | 数据中台和传统数仓的区别是什么?
  12. VS选中cpp文件后定位其在解决方案管理器中属于哪个项目
  13. ulipad双击打不开 解决
  14. 吃热狗游戏Java_(转)Java中正确理解Thread Local的原理与适用场景
  15. 郝斌C语言 printf与scanf的用法
  16. catia曲面设计从入门到精通_CATIA V5曲面设计从入门到精通
  17. 开源流媒体客户端EasyClient手机端控制摄像机EasyCamera云台PTZ控制实现
  18. java-net-php-python-springbot学生奖惩管理系统计算机毕业设计程序
  19. Python3.7+Robot Framework 打开ride.py无界面
  20. 从阿里云下载kubeadm rpm格式安装包到本地离线安装

热门文章

  1. 17级Biter的微机课程学习总结另外附上19年微机考试题型分布
  2. 汇编知识点——数据定义伪指令
  3. C++11Mutex(互斥锁)详解
  4. php上传图片文件常用的几个方法
  5. JAVA中的“抽象接口”
  6. 静态/动态注冊广播的差别
  7. 初探Bootstrap
  8. linux 服务器网络有关的内核参数
  9. How to pronounce symbols on keyboard
  10. 注意地方hadoop中的pi值计算