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

  • 一、 多元线性回归问题介绍
    • 1.一些定义
    • 2.假设函数
  • 二、 多元梯度下降法
    • 1. 梯度下降法实用技巧:特征缩放
    • 2. 梯度下降法的学习率
  • 三、 特征选择与多项式回归
  • 四、 正规方程法
    • 1. 一些定义
    • 2. 正规方程解的公式
    • 3. 梯度下降法和正规方程法的比较
    • 4. 正规方程法在矩阵不可逆的情况下的解决

课程链接: https://www.bilibili.com/video/BV164411b7dx?from=search&seid=5329376196520099118

上一个笔记介绍了单输入变量(一元)线性回归问题,即只考虑了一个属性对房价的影响,但很多时候会有多个因素对输出产生影响,所以这次笔记主要针对多元线性回归问题,是对笔记二的推广。

一、 多元线性回归问题介绍

1.一些定义

还是以房价预测问题为例,与一元线性回归问题所不同的是,将有多个因素来共同决定房价,如下表所示,除了面积之外,还有卧室数量、楼层数量、房屋年纪共四个属性作为输入,分别记为x1、x2、x3、x4。

在这里,我们将属性(特征)的数量记为n,这里n=4;数据样本数量记为m,如m=47。x(i)表示第i个数据的所有属性,是对数据集的索引,因为这里是多属性,所以可以表示为一个向量,如x(2) = [1416 3 2 40]T;而x_j(i)表示第i个数据样本的第j个属性值,是对具体属性的索引,如x_3(2)=2。

2.假设函数

还是考虑采用一次线性函数,但是不再是一元,而是多元。再次强调,并非一定采用一次线性函数的形式,可以采用别的形式如二次、指数等来进行模型的求解,这里是为了介绍线性回归问题所以采用线性函数。

针对上述提出的四个属性,假设函数可以改写为如下形式:

再推广一下到一般形式:

这里有一个小技巧,为了后面表示的方便,我们定义一个x0=1,那么有

下面,令

那么假设函数又能用向量相乘的方式表示:

这么做的意义是,在计算机的一些库中,向量相乘的计算速度要比普通的相乘相加来得快,当数据量非常庞大时,该操作可以有效提升效率。

二、 多元梯度下降法

多元线性回归问题的假设函数、参数、代价函数和对应的梯度下降法如下图所示。

这里需要注意的是,我们尽量使用向量的计算来代替n个变量之间的计算,所以参数θ_0,θ_1,…,θ_n可以用一个n+1维的向量表示θ=[θ_0 θ_1…θ_n]^T。

下面具体看一下梯度下降的求偏导部分,如下所示:

与一元线性回归问题相比,推广到了更一般的情况,而其θ_0,θ_1的表达式就是一元的表达式。

1. 梯度下降法实用技巧:特征缩放

主要的思想是,如果数据的各个属性的值的范围都有相同的尺度,那么梯度下降法将能够更快收敛。可以通过下面的图来说明:

x1的值的范围在0-2000,而x2的范围是1-5,做出的等高线图如左图所示,因为尺度差异过大,非常细长,从而导致很不利于梯度下降法收敛到最优点,红色的线是梯度下降的过程。解决办法可以是将x1和x2都标准化到0-1的范围,等高线图将比较均匀,如右边的图所示,不论初始位置在哪,都容易收敛到最优点。

一般我们特征缩放的范围都会尽量使他靠近-1到1这个大致范围,这不固定,0 ~ 3或-2 ~ 0.5这种范围都可以接受,但是-100 ~ 100或-0.0001 ~ 0.0001这种就相差太大,最好进行特征缩放。

说到底,特征缩放其实就是数据预处理的一个体现——标准化,以后会经常遇到需要标准化的数据,标准化的方法也有很多,如下面这种均值标准化,通过减去均值除以标准差后进行范围的标准化,后面有机会我会进行标准化方法的总结。

2. 梯度下降法的学习率

主要介绍调试以及如何选择学习率。

在梯度下降算法迭代的过程中,如何判断是在朝着正确的方向计算,可以绘制一张迭代次数与代价函数的曲线图,如下所示,如果代价函数J(θ)随着迭代次数不断减小,则是正确的。曲线下降到后期可能已经趋于平坦,则意味着已经达到收敛,此时几乎就是最优点。

一些不正确的的代价函数变化曲线如下所示,说明没有在正确工作。一般的解决办法是减小学习率。

理论上说,只要学习率足够小,总能最终收敛到局部最优点,但是如果学习率太小的话,收敛所需的时间也是非常漫长的,这是需要综合考虑的问题,也就是调参的工作。

总结一下,一般判断梯度下降是否在正确工作,会绘制迭代次数和代价函数的变化曲线图来判断,而且可以通过调节学习率来达到更好的结果,学习率的选择一般需要尝试,并不断改善。

三、 特征选择与多项式回归

在之前的讨论中,数据集提供了什么属性(特征),我们就全部进行了使用,其实特征的使用与否可以人为选择,甚至可以根据现有的特征创造新的特征,只要是对问题的解决更合理即可。如下图所示,给了房屋的宽度和深度特征,但是我们从现实情况考虑,应该使用房屋的面积来衡量更为合理,所以定义新的特征面积等于宽度×深度,然后使用该新特征去计算。

还有一点,之前提到过假设函数的形式并不唯一,这里是为了讲解线性回归问题才给定的多元线性模型,还可以使用二次,三次模型来拟合,如下图所示,这里为简单起见,只考虑一个特征。

而这些其他的模型,其实也可以使用多元线性模型来拟合,只需要将二次项、三次项或平方根项当成一个新的属性即可。

四、 正规方程法

梯度下降法是通过不断的迭代来求得最优点,而下面介绍的正规方程法,可以依据公式直接求得最优解。

从微积分的知识可以知道,想要求使得函数达到最小的自变量的值,可以对该函数求偏导并使之等于0,求解出的自变量的值就是最优解。但是当函数复杂而且变量比较多时,这样做非常复杂。

1. 一些定义

还是使用房价预测的例子,假设有包含四条数据的数据集如下:

定义X,y为

更一般的形式如下图:

2. 正规方程解的公式


该公式由来的推导过程这里暂时先不写,有需要可以看深度之眼提供的西瓜书推导课程,详细到令人发指,非常良心的课程:
深度之眼西瓜书推导课程

3. 梯度下降法和正规方程法的比较

先上图

(1) 梯度下降法需要选择学习率,需要需要很多次的迭代,而且经常需要绘制代价函数变化曲线来判断过程是否正确,而正规方程法不需要,它可以依据公式直接求解。
(2) 当特征数量非常庞大时,梯度下降法法依然可以很好的工作,而正规方程因为涉及到逆矩阵的计算,计算复杂度会飞速上升,计算速度很慢,而且梯度下降是一种通用方法,正规方程是根据线性回归的特点推导出来的,用在别的模型上就很可能不适用,如后面的逻辑回归。

所以,当特征数量不是很庞大时,正规方程法是梯度下降法很好的替代方法,但是当特征数量很庞大或是用到其他模型时,梯度下降法会更好。

4. 正规方程法在矩阵不可逆的情况下的解决

从正规方程的求解公式中可以看到,需要进行一次求逆矩阵的运算,那么必然存在逆矩阵不存在的情况,这时该如何求解?

主要有两个原因会导致不可逆:

一个是存在重复多余的特征,像面积特征有两个,一个用平方米做单位,一个用平方英尺做单位,其实是重复的,那么我们需要去掉。

还有可能是特征数太多,甚至超过了样本数,如100个特征却只有10个数据,则很可能导致不可逆,那么可以通过删除一些特征或者采用正则化的方法来解决。正则化的方法后续会讲到。这是笼统的解释,更数学的解释可以看深度之眼的西瓜书的课程,会一步步推导出来。

吴恩达《机器学习》学习笔记三——多变量线性回归相关推荐

  1. 吴恩达机器学习个人笔记03——多变量线性回归

    目录 3.1 多维特征 3.2 多变量梯度下降 3.3 梯度下降法实践1-特征缩放 3.4 梯度下降法实践2-学习率 3.5 特征和多项式回归 3.6 正规方程 3.7 正规方程及不可逆性 下节将介绍 ...

  2. 吴恩达机器学习学习笔记第七章:逻辑回归

    分类Classification分为正类和负类 (规定谁是正谁是负无所谓) 吴恩达老师举例几个例子:判断邮箱是否是垃圾邮箱 一个在线交易是否是诈骗 一个肿瘤是良性的还是恶性 如果我们用之前学习的lin ...

  3. 吴恩达机器学习python作业之多变量线性回归

    建议先看单变量线性回归再看多变量线性回归哦. 参考链接: (7条消息) 吴恩达|机器学习作业1.1多变量线性回归_学吧学吧终成学霸的博客-CSDN博客 数据集:一共三列,左边两列是自变量x,最右边一列 ...

  4. 吴恩达机器学习--学习笔记

    1. Introduction 1.1 Welcome 如今机器学习被大规模应用于: 数据挖掘(网站点击,医学记录,生物学,工程) 一些无法通过编程实现的功能(自动驾驶,手写识别,NLP,CV) se ...

  5. 吴恩达机器学习学习笔记第二章:单变量线性回归

    模型描述: 训练集(training set):是监督学习中独有的概念,由我们人喂给电脑的既有既有特征x又有结果y的数据.下图x是房子面积 ,y是房屋对应的价格 符号记法解释: (x^(1),y^(1 ...

  6. 干货|机器学习零基础?不要怕,吴恩达机器学习课程笔记2-多元线性回归

    吴恩达Coursera机器学习课系列笔记 课程笔记|吴恩达Coursera机器学习 Week1 笔记-机器学习基础 1 Linear Regression with Multiple Variable ...

  7. 吴恩达“机器学习”——学习笔记六

    最优边界分类器(最大间隔分类器)(续学习笔记五) 在线性分类器中,我们要找到一个边界线,使得几何间隔最大,即: ||w||在几何间隔中是无关紧要的,这里取1,使得几何间距和函数间距一致. 但是这个并不 ...

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

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

  9. 吴恩达机器学习学习笔记第三章:机器学习中的线性代数

    线性代数在python中的实现已经在第六章谈到,这里关于线性代数的理论基础 给大家分享几个知乎上解释线性代数讲的很生动形象的回答和文章 矩阵乘法的本质是什么? - 张一苇的回答 - 知乎 矩阵乘法的本 ...

  10. 吴恩达机器学习学习笔记第一章:绪论初识机器学习

    一.   什么是机器学习(Machine Learning)?   首先学习的对象是电脑 学习指的其实就是算法 机器学习就是基于数据基于算法从数据中去提炼对事物的认知和规律 掌握了这些特征和规律后就可 ...

最新文章

  1. soot——相关资源
  2. C#-DataSet和DataTable详解
  3. mybatis文档笔记
  4. api laravel 统一返回方法_Laravel API 错误处理:当异常时,如何返回消息
  5. 信息学奥赛一本通 1095:数1的个数 | OpenJudge NOI 1.5 40
  6. git每次更新都需要输入账号密码,如何解决?
  7. 服务器内容推送技术(转)
  8. 读书笔记 effective c++ Item 26 尽量推迟变量的定义
  9. 【学习OpenCV4】聊聊图像格式
  10. ESP32实现Wave(.wav)音频文件输出
  11. spring gateway route超时时间原理解析和gateway调用流程
  12. mac查看、修改文件权限
  13. “牵手”南京银行,度小满To B生态能力再次得到强化
  14. 全球与中国家庭捕鱼船市场深度研究分析报告
  15. uiautomator2+python实现企业微信自动打卡
  16. INT303 Big Data 个人笔记
  17. 张俊林:ChatGPT 会成为下一代搜索引擎吗
  18. styled-components 基本用法
  19. 2020大数据学习资料,全套源码无加密网盘下载
  20. MT4安卓版下载安装

热门文章

  1. 全球仅3000人通过的TensorFlow开发人员认证到底有多香!
  2. 会议交流 | CAAI BDSC2021大会专题七:社会计算与开放知识图谱
  3. 肖仰华 | 知识图谱研究的回顾与展望
  4. Exploiting the Syntax-Model Consistency for Neural Relation Extraction(关系抽取,语法模型,跨领域关系抽取
  5. 08.MyBatis整合Log4j
  6. 【HAOI2010】工厂选址题解
  7. YYT 0659 - 2008全自动凝血分析仪
  8. 一个HelloWorld网站
  9. windows使用python3.4生成二维码
  10. Delphi中动态调用DLL的方法