多变量线性回归

之前讨论的都是单变量的情况。例如房价与房屋面积之前的关系,但是实际上,房价除了房屋面积之外,还要房间数,楼层等因素相关。那么此时就变成了一个多变量线性回归的问题。在实际问题中,多变量的线性回归问题是更加常见的。

下面这个例子就是表明了我上面所说的情况。

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

其中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机器学习算法入门((六):多变量线性回归方程求解的更多相关文章

  1. Andrew Ng机器学习算法入门(一):简介

    简介 最近在参加一个利用机器学习来解决安全问题的算法比赛,但是对机器学习的算法一直不了解,所以先了解一下机器学习相关的算法. Andrew Ng就是前段时间从百度离职的吴恩达.关于吴恩达是谁,相信程序 ...

  2. Andrew Ng机器学习算法入门(二):机器学习分类

    机器学习的定义 Arthur Samuel给出的定义,Field of Study that gives computers the ability to learn without being ex ...

  3. Andrew Ng机器学习算法入门(九):逻辑回归

    逻辑回归 先前所讲的线性回归主要是一个预测问题,根据已知的数据去预测接下来的情况.线性回归中的房价的例子就很好地说明了这个问题. 然后在现实世界中,很多问题不是预测问题而是一个分类问题. 如邮件是否为 ...

  4. Andrew Ng机器学习算法入门(八):正规方程

    正规方程 在先学习正规方程之前,先来复习一下之前学过的常规的回归方程的解法. 假设存在如果的代价函数, ,解法也十分的简答. 但是有时候遇到的情况或许会变得相当的复杂. 的数,如果是按照常规的方式进行 ...

  5. Andrew Ng机器学习算法入门(三):线性回归算法

    线性回归 线性回归,就是能够用一个直线较为精确地描述数据之间的关系.这样当出现新的数据的时候,就能够预测出一个简单的值. 线性回归中最常见的就是房价的问题.一直存在很多房屋面积和房价的数据,如下图所示 ...

  6. Andrew Ng机器学习算法入门(十):过拟合问题解决方法

    在使用机器学习对训练数据进行学习和分类的时候,会出现欠拟合和过拟合的问题.那么什么是欠拟合和过拟合问题呢?

  7. Andrew Ng机器学习算法入门((七):特征选择和多项式回归

    特征选择 还是回归到房价的问题.在最开始的问题中,我们假设房价与房屋面积有关,那么最开始对房价预测的时候,回归方程可能如下所示: 其中frontage表示的房子的长,depth表示的是房子的宽. 但长 ...

  8. Andrew Ng机器学习算法入门(四):阶梯下降算法

    梯度降级算法简介 之前如果需要求出最佳的线性回归模型,就需要求出代价函数的最小值.在上一篇文章中,求解的问题比较简单,只有一个简单的参数.梯度降级算法就可以用来求出代价函数最小值. 梯度降级算法的在维 ...

  9. Andrew Ng机器学习算法入门((五):矩阵和向量

    矩阵定义 数学上,一个m×n的矩阵是一个由m行n列元素排列成的矩形阵列 使用Aij来获取矩阵中第i行j列的数据 向量的定义 向量就是n行1列的特殊矩阵 由于向量仅仅只有1行,那么通过一个变量i来指定获 ...

随机推荐

  1. Java小tips之命令行传参

    在命令行运行主函数时,后缀字符串,则会储存在args[]数组中,这种方法可以在程序运行时,借助Main函数传参 主类书写不规范见谅 ```java public class hello{ public ...

  2. 基于ABP框架的SignalR,使用Winform程序进行功能测试

    在ABP框架里面,默认会带入SignalR消息处理技术,它同时也是ABP框架里面实时消息处理.事件/通知处理的一个实现方式,SignalR消息处理本身就是一个实时很好的处理方案,我在之前在我的Winf ...

  3. HDU_3071 Gcd & Lcm game 【素数分解 + 线段树 + 状压】

    一.题目  Gcd & Lcm game 二.分析 非常好的一题. 首先考虑比较暴力的做法,肯定要按区间进行处理,对于$lcm$和$gcd$可以用标准的公式进行求,但是求$lcm$的时候是肯定 ...

  4. 在 .NET Core 中构建 REST API

    翻译自 Camilo Reyes 2020年8月26日的文章 <Build a REST API in .NET Core> [1] REST API 可以使用简单的动词(如 POST.P ...

  5. Tomcat搭建配置

    Tomcat是Apache软件基金会( Apache Software Foundation )的Jakarta项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共同开发而成.受Java ...

  6. Java 多线程 | 并发知识问答总结

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  7. CMU15-455 Lab2 - task4 Concurrency Index -并发B+树索引算法的实现

    最近在做 CMU-15-445 Database System,lab2 是需要完成一个支持并发操作的B+树,最后一部分的 Task4 是完成并发的索引这里对这部分加锁的思路和完成做一个总结,关于 B ...

  8. go-echarts 入门安装和使用

    在 Golang 这门语言中,目前数据可视化的第三方库还是特别少,go-echarts的开发就是为了填补这部分的空隙.Echarts是百度开源的非常优秀的可视化图表库,凭借着良好的交互性,精巧的图表设 ...

  9. 用Python优雅的写出送给女儿的藏头诗

    2016年迎来了我的小土匪,忙活了一年,在17年的4月加班的夜里因思念以小土匪的名字写了一首藏头发了朋友圈,不温不火,最近在看python,那么如何用python优雅的用写出这首诗了? 执行 代码 i ...

  10. 使用 shell 做 tcp 协议模拟

    问题背景 公司有一套消息推送系统(简称GCM),由于人事变动接手了其中的客户端部分.看了一下文档,仅通讯协议部分有几页简单的说明,代码呢又多又乱,一时理不出一个头绪.由于消息是从后台推送到端的,所以使 ...