吴恩达机器学习 -- 多变量线性回归
5.1 多维特征
前一周所讲是单变量线性回归,即 ,是只有一个变量 的假设函数,现在对房价预测模型有了更多的参考特征,比如楼层数,卧室的数量,还有房子的使用年限。根据这些特征来预测房价。此时的变量有多个。 构成一个含有多个变量的模型,模型中的特征为
一些注释:
:特征的数量
:第 i 个样本的特征向量
:第 i 个样本的 特征向量中的第 j 个特征
那么,线性回归的多变量假设函数变为 ,式子中有n+1个参数和n个变量。为了公式简化,引入 ,公式变为
此模型中,参数是一个n+1维的向量,任何一个训练实例也都是n+1维的向量,公式就简化为
5.2 多变量梯度下降
和单变量线性回归一样,构造多变量模型的代价函数 :
其中
与单变量线性回归梯度下降相同,多变量线性回归梯度下降算法为: ,
求导后 :
然后随机选择一系列的参数值,计算所有的预测结果后,再给所有的参数一个新的值,如此循环直到收敛。
5.3 梯度下降法实践1-特征缩放
如果多个特征的取值范围差距悬殊过大,会导致梯度下降收敛速度较慢。因此我们要保证这些特征都具有相近的尺度,这样就可以使梯度下降算法更快地收敛。
解决的方法是尝试将所有特征的尺度都尽量缩放到-1到1之间。
最简单的方法是令:,其中 是平均值,是标准差(或者是特征的范围max-min)。
5.4 梯度下降法实践2-学习率
梯度下降法迭代次数随不同模型而不同,提前无法预知。但我们可以通过两种方法来观察 算法在何时趋于收敛。
(1)绘制迭代次数与 代价函数的图表
(2)自动测试是否收敛的方法:例如将代价函数的变化值与某个阀值(例如0.001)进行比较
梯度下降算法的每次迭代受到学习率 α 的影响,如果学习率过小,则达到收敛所需的迭代次数会非常高;
如果学习率过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。
吴恩达建议的 α 选择:
5.5 特征和多项式回归
线性回归并不适用于所有数据,有时我们需要曲线来适应我们的数据,比如一个二次方模型:,或者三次方模型:。通常需要先观察数据然后再决定准备尝试怎样的模型。
一个房价预测问题:
(临街宽度), (纵向深度),(占用面积),则
可以令 ,,从而将模型转化为线性回归模型。
根据函数图形特性,我们还可以使:
或者:
注:如果采用多项式回归模型,在运行梯度下降算法前,特征缩放非常有必要。
5.6 正规方程
对某些线性回归问题,还可以用正规方程解决。
正规方程通过求解 找出使得代价函数最小的参数.
假设训练集特征矩阵为 ,训练集结果为向量 ,则利用郑正规方程求解出的
梯度下降法与正规方程法的比较:
梯度下降法 | 正规方程法 |
需要选择学习率 | 不需要 |
需要多次迭代 | 一次运算得出 |
当特征数量大时也能较好适用 | 特征数量较大则运算代价大,因为矩阵逆的计算时间复杂度为,通常来说当n小于10000 时还是可以接受的 |
适用于各种类型的模型 | 只适用于线性模型,不适合逻辑回归模型等其他模型 |
5.7 正规方程及不可逆性(可选)
有的矩阵可逆,有的矩阵不可逆。
式子中,要求 ,如果不可逆该怎么办呢?在Octave里,有两个函数可以求解矩阵的逆,一个被称为pinv()
,另一个是inv()
,这两者之间的差异是些许计算过程上的,一个是所谓的伪逆,另一个被称为逆。使用pinv()
函数可以展现数学上的过程,这将计算出的值,即便矩阵是不可逆的。
吴恩达机器学习 -- 多变量线性回归相关推荐
- 吴恩达-机器学习-多元线性回归模型代码
吴恩达<机器学习>2022版 第一节第二周 多元线性回归 房价预测简单实现 以下以下共两个实验,都是通过调用sklearn函数,分别实现了 一元线性回归和多元线性回归的房价 ...
- 吴恩达-机器学习-一元线性回归模型实现
吴恩达<机器学习>2022版 第一周 一元线性回归 房价预测简单实现 import numpy as np import math, copy#输入数据 x_train = np.arra ...
- 【学习笔记】吴恩达机器学习 WEEK2 线性回归 Octave教程
Multivariate Linear Regression Multiple Features Xj(i)X_j^{(i)}Xj(i) 其中j表示迭代次数,i表示矩阵索引 转换 原来:hθ(x)= ...
- 吴恩达机器学习训练1:线性回归(多变量)
吴恩达机器学习训练1:线性回归(多变量) 本小节为练习1中选做题,为多变量(多特征参数)的线性回归计算. 还是预测房价的例子,假设已经两个特征参数,分别是房子的尺寸和卧室的数量,在数据的第一列和第二列 ...
- 吴恩达机器学习python作业之多变量线性回归
建议先看单变量线性回归再看多变量线性回归哦. 参考链接: (7条消息) 吴恩达|机器学习作业1.1多变量线性回归_学吧学吧终成学霸的博客-CSDN博客 数据集:一共三列,左边两列是自变量x,最右边一列 ...
- 吴恩达机器学习课后作业1.1——多变量线性回归(Linear regression with multiple variable)
1. 问题和数据 假设你要卖掉你的房子,你想知道一个好的市场价格是多少.其中一种方法是,首先收集最近出售的房屋的信息.在本部分的练习中,你将使用多元线性回归来预测房屋价格. 数据ex1data2.tx ...
- 吴恩达机器学习1——单变量线性回归、梯度下降
目录 吴恩达机器学习第一周 一.什么是机器学习? 二.机器学习的分类 1. 监督学习 2. 非监督学习 3. 监督学习和非监督学习的举例 三.单变量线性回归(**Linear Regression w ...
- 吴恩达机器学习中文版课后题(中文题目+数据集+python版答案)week1 线性回归
一.单线性回归问题 参考:https://blog.csdn.net/qq_42333474/article/details/119100860 题目一: 您将使用一元线性回归来预测食品车的利润.假设 ...
- 吴恩达机器学习课后作业——线性回归(Python实现)
1.写在前面 吴恩达机器学习的课后作业及数据可以在coursera平台上进行下载,只要注册一下就可以添加课程了.所以这里就不写题目和数据了,有需要的小伙伴自行去下载就可以了. 作业及数据下载网址:吴恩 ...
最新文章
- LTE基带芯片出货量首次超过50%
- php image mask,PHP GD使用一个图像来遮蔽另一个图像,包括透明度
- 一个从文本文件里“查找并替换”的功能
- 谷歌浏览器安装过程 0911
- 静态的html页面想要设置使用浏览器缓存
- 利用matlab写一个简单的拉普拉斯变换提取图像边缘
- hbase倒序查询_hbase过滤器汇总【查询汇总】
- 单元测试引入hsqldb探索
- 合同管理系统操作手册
- IDM模式是存储器产业最佳选择?
- OSI第三层:网络层功能及作用OSI第三层:网络层功能及作用
- [答疑]能举一个人取代业务实体的例子吗
- 找茬游戏html5源码,大家来找茬游戏以JS实现
- vue图片时间轴滑动_Vue之时间轴组件
- P1039 侦探推理
- [转]编写简单的中文分词程序
- 在职场如何应对他人的关注
- JSP简介-什么是Java Server Pages?
- bedtools指南
- armadillo使用,armadillo提高编译效率和速度
热门文章
- WinSock学习笔记
- 输入某年某月某日,判断这一天是这一年的第几天?(使用python语言)
- Go服务迁到K8s后老抽风重启? 记一次完整的线上问题解决过程
- 用 subsetting 限制连接池中的连接数量
- 音视频技术开发周刊:FFmpeg内置的一个无中生有的音视频输入数据 | 214
- CES 2021线上大会前瞻、Roblox 估值近300亿美元、联想将推出企业级 AR 眼镜等|Decode the Week...
- 音视频技术开发周刊 81期
- 腾讯高性能分布式路由技术,亮相亚太网络研讨会APNet
- 从技术演变的角度看互联网后台架构
- 微信、QQ都在用的腾讯云EB级对象存储架构剖析