多变量线性回归

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

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

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

其中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. springboot整合持久层技术(mysql驱动问题)

    java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more tha ...

  2. C#开发BIMFACE系列35 服务端API之模型对比6:获取模型构建对比分类树

    系列目录     [已更新最新开发文章,点击查看详细] BIMFACE平台提供了服务端"获取模型对比构件分类树"API.目录树返回结果以树状层级关系显示了增删改的构件信息,里面无法 ...

  3. 【python+selenium的web自动化】- 元素的常用操作详解(二)

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html ​ 本篇主要内容:1.鼠标 ...

  4. python之模块与类库

    什么是模块 模块是一组类,函数,方法所组成的.这些类都储存在文本文件中..py是python程序代码中的扩展名,模块可能是c或者python写的.模块的扩展名可以是.py或者是.pyc(经过编译的.p ...

  5. 【安全研究】Domain fronting域名前置网络攻击技术

    出品|MS08067实验室(www.ms08067.com) 千里百科 Domain Fronting基于HTTPS通用规避技术,也被称为域前端网络攻击技术.这是一种用来隐藏Metasploit,Co ...

  6. [图论]剑鱼行动:kruskal

    剑鱼行动 目录 剑鱼行动 Description Input Output Sample Input Sample Output 解析 难点 代码 Description 给出N个点的坐标,对它们建立 ...

  7. vs2019新建数据库后插入中文变问号

    在使用VS创建了数据库后如果直接给字符类型插入中文内容的话查询结果插入的中文会以"?"的格式展现. 原因是因为默认创建的数据库的排序类型为拉丁文不支持中文. 所以需要讲这个排序的字 ...

  8. spring-cloud-stream消息驱动的微服务

    Spring Cloud Stream 是 一 个用来为微服务应用构建消息驱动能力的框架. 它可以基于Spring Boot 来创建独立的. 可用于生产的 Spring 应用程序. 它通过使用 Spr ...

  9. Bounding Volume Hierarchies 加速结构

    背景   光线与物体求交是光线追踪的主要时间瓶颈.   如果不进行优化,则对每条光线,我们都需要遍历场景中的全部物体并求交.而现在想建模一个小物体的表面,往往要几千甚至几万个三角形,一个商业级产品,屏 ...

  10. Linux pgrep命令

    1 pgrep pgrep是一个根据名称查找进程ID的命令,返回的是进程ID,若存在当个进程,则分为不同的行返回ID(默认实现). 2 示例 查找java进程: pgrep java 上图还显示了ps ...