Andrew Ng机器学习算法入门((六):多变量线性回归方程求解
多变量线性回归
之前讨论的都是单变量的情况。例如房价与房屋面积之前的关系,但是实际上,房价除了房屋面积之外,还要房间数,楼层等因素相关。那么此时就变成了一个多变量线性回归的问题。在实际问题中,多变量的线性回归问题是更加常见的。
下面这个例子就是表明了我上面所说的情况。

之前的单变量线性回归的问题,最后求解得到的是一个线性方程。那么在多变量线性回归中,得到的是:

其中X,theta都是一个n阶向量。那么最后的表示方式就变为了:
h 是theta的转置与X的乘积。
多变量梯度下降
和单变量的线性回归方程一样,我们同样会存在一个多变量的线性回归方程。同时也存在一个对应的代价函数。下面就是一个多变量的代价函数。

代价函数的求法同样是根据梯度下降的方式来进行求解。

下面这张图的足有两个公式分别显示了不同的情况,左右是一个最基础的情况,只有两个参数。而右边就是常见的多变量的梯度下降的函数。

相信上面这两张图已经将区别和联系表现出来了。
梯度下降算法实践1——特征缩放
在多变量的梯度下降算法中,如果多个变量能够在同一个或者是相近的区间范围内,这样就很方便问题的求解。当然前提是知道多变量的实际的取值范围。
在房屋的例子中,假设我们是研究房价与房屋大小和房屋房间数量的关系。同时我们知道房屋大小和房间数量间的关系,如房屋大小是位于0-2000英寸,房间数量是1-5。那么我们最后得到的轮廓函数为:

但是如果我们将所有参数x1和x2都的取值都进行标准化,例如集中到[0,1]之间,那么最后轮廓函数变为:

标准化算法也有很多,最简单的方式是:

梯度下降算法实践2——学习率
梯度下降算法的特征缩放考虑的是将变量进行标准化,而学习率考虑的是学习率的大小问题。之前就讨论过,如果学习率过大,则可能无法收敛。如果学习率较小,则迭代次次数过大。
正常的情况下,一般是通过绘制迭代次数和代价函数的图表来观测合适收敛,如下:

也有一些自动测试是否收敛的方法,例如将代价函数的变化值与某个阀值(例如 0.001)
进行比较,但通常看上面这样的图表更好。
通过图表观察,需要注意的问题是,迭代的次数收到学习率a的影响。
一般情况,学习率的选择如下:
0.01,0.03,0.1,0.3,1,3,10
总结
本次的课程,还是比较简单易懂的,都是理论上面的问题,也无须编程实现。
为了能到远方,脚下的每一步都不能少
Andrew Ng机器学习算法入门((六):多变量线性回归方程求解的更多相关文章
- Andrew Ng机器学习算法入门(一):简介
简介 最近在参加一个利用机器学习来解决安全问题的算法比赛,但是对机器学习的算法一直不了解,所以先了解一下机器学习相关的算法. Andrew Ng就是前段时间从百度离职的吴恩达.关于吴恩达是谁,相信程序 ...
- Andrew Ng机器学习算法入门(二):机器学习分类
机器学习的定义 Arthur Samuel给出的定义,Field of Study that gives computers the ability to learn without being ex ...
- Andrew Ng机器学习算法入门(九):逻辑回归
逻辑回归 先前所讲的线性回归主要是一个预测问题,根据已知的数据去预测接下来的情况.线性回归中的房价的例子就很好地说明了这个问题. 然后在现实世界中,很多问题不是预测问题而是一个分类问题. 如邮件是否为 ...
- Andrew Ng机器学习算法入门(八):正规方程
正规方程 在先学习正规方程之前,先来复习一下之前学过的常规的回归方程的解法. 假设存在如果的代价函数, ,解法也十分的简答. 但是有时候遇到的情况或许会变得相当的复杂. 的数,如果是按照常规的方式进行 ...
- Andrew Ng机器学习算法入门(三):线性回归算法
线性回归 线性回归,就是能够用一个直线较为精确地描述数据之间的关系.这样当出现新的数据的时候,就能够预测出一个简单的值. 线性回归中最常见的就是房价的问题.一直存在很多房屋面积和房价的数据,如下图所示 ...
- Andrew Ng机器学习算法入门(十):过拟合问题解决方法
在使用机器学习对训练数据进行学习和分类的时候,会出现欠拟合和过拟合的问题.那么什么是欠拟合和过拟合问题呢?
- Andrew Ng机器学习算法入门((七):特征选择和多项式回归
特征选择 还是回归到房价的问题.在最开始的问题中,我们假设房价与房屋面积有关,那么最开始对房价预测的时候,回归方程可能如下所示: 其中frontage表示的房子的长,depth表示的是房子的宽. 但长 ...
- Andrew Ng机器学习算法入门(四):阶梯下降算法
梯度降级算法简介 之前如果需要求出最佳的线性回归模型,就需要求出代价函数的最小值.在上一篇文章中,求解的问题比较简单,只有一个简单的参数.梯度降级算法就可以用来求出代价函数最小值. 梯度降级算法的在维 ...
- Andrew Ng机器学习算法入门((五):矩阵和向量
矩阵定义 数学上,一个m×n的矩阵是一个由m行n列元素排列成的矩形阵列 使用Aij来获取矩阵中第i行j列的数据 向量的定义 向量就是n行1列的特殊矩阵 由于向量仅仅只有1行,那么通过一个变量i来指定获 ...
随机推荐
- python爬虫(正则取数据)读取表格内的基金代码后爬取基金最新净值,同时写到对应的表格中,基于最近一次购买净值计算出涨跌幅(名字有点长)
最近基金跌的真够猛,虽说是定投,但大幅度下跌,有时候适当的增加定投数也是降低平均成本的一种方式 每天去看去算太费时间,写了个爬虫,让他自动抓数据后自动计算出来吧 实现逻辑: 1.创建了一个excel表 ...
- 英语单词小程序插件 - EdictPlugin-LTS
1.插件引入 全局app.json配置 "plugins": { "edict-plugin": { "version": "1. ...
- sql之对top语句理解
起因 事情的起因是在群里和大佬讨论问题,讨论select top x后加*的问题,这时突发奇想,想搞清楚这个看起来在sql中略显突兀的语句结构,就有了这篇文 先看例子 select * from 表 ...
- LAB1 启动操作系统
从机器上电到运行OS发生了什么? 在电脑主板上有一个Flash块,存放了BIOS的可执行代码.它是ROM,断电不会丢掉数据.在机器上电的时候,CPU要求内存控制器从0地址读取数据(程序第一条指令)的时 ...
- 2019 GDUT Rating Contest II : Problem B. Hoofball
题面: 传送门 B. Hoofball Input file: standard input Output file: standard output Time limit: 5 second Memor ...
- 在ASP.NET Core中用HttpClient(四)——提高性能和优化内存
到目前为止,我们一直在使用字符串创建请求体,并读取响应的内容.但是我们可以通过使用流提高性能和优化内存.因此,在本文中,我们将学习如何在请求和响应中使用HttpClient流. 什么是流 流是以文件. ...
- HTML总结篇
一.HTML基本结构标签 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- SpringBoot项目打包部署
部署方式 SpringBoot项目可以通过jar包或者war包部署在服务器上,因为jar包更适合前后端分离的项目,所以这里我们使用jar包的方式. 添加maven支持 <!-- 这个插件,可以将 ...
- MySQL数据库高级三:查询截取分析(了解)
- Spring Boot 实现配置文件加解密原理
Spring Boot 配置文件加解密原理就这么简单 背景 接上文<失踪人口回归,mybatis-plus 3.3.2 发布>[1] ,提供了一个非常实用的功能 「数据安全保护」 功能,不 ...