1. 多维特征

对于房子来说,房子的大小,房间数,楼层,房领等特征都是影响房价的因素,这些称为多维特征。

如下图所示:

其中,

表示的是第i个样本中的第j个特征。

多变量线性回归的假设函数可以表示为:

对上式进行简化,另x0=1,则特征矩阵X以及系数矩阵θ可以表示为:

   

则假设函数可以被表示为:

2. 多元梯度下降法

假设函数为:

其中x0=1

代价函数为:

梯度下降的迭代公式为:

对于多元变量线性回归的迭代公式,其梯度下降的公式可以更具体的表示为:

举例:

一个特征缩放的方法:

如果特征之间数量级相差过大,应该对特征进行相应的缩放,缩放的方法是归一法,即(样本值-最小值)/(最大值-最小值),这样会将特征的值的范围缩放到0~1之间

特征缩放可以使梯度下降的更快以及收敛所需要的迭代次数更少。

一些多元梯度下降过程中的技巧:

根据代价函数的曲线来判断梯度下降法是否正常工作,正常的代价函数曲线是如下所示的逐步递减的曲线。

如果代价函数曲线如下所示,说明梯度下降没有正常工作,请尝试用更小的学习率

如果代价函数如下所示,说明学习率比较大,请尝试更小的学习率

如果代价函数如下所示,也请尝试更小的学习率

学习率可以从以下值尝试:...,0.001,0.01,0.1,1

3. 特征和多项式回归

线性回归并不适应与所有的数据,比如下图的数据

这是一个非线性的数据,可以假设目标函数为:

或者

后者曲线在自变量变大的时候不会下降,会趋于平滑

这样就可以将梯度下降法就可以用作在非线性回归中。

4. 正规方程

相对于梯度下降法的多次迭代,正规方程的方法,可以直接一步求出最优的参数,其方程为:

其中θ为系数矩阵,X为特征矩阵,正规方程适用的前提是X的转置与X的乘积是可逆的。

梯度下降法和正规方程的区别:

如果正规方程不可以逆怎么办?

可以使用各个工具中的伪逆函数进行计算,例如Octave中的:pinv(x'*x)*x'*y

正规方程不可逆通常出现的原因有以下两个:

有冗余的特征,比如特征中同时有一个房屋的面积和长宽(面积可以通过长宽表示出来)

特征数>=样本数

入门机器学习(二)--多变量线性回归相关推荐

  1. 机器学习之多变量线性回归(Linear Regression with multiple variables)

    机器学习之多变量线性回归(Linear Regression with multiple variables) 1. Multiple features(多维特征) 在机器学习之单变量线性回归(Lin ...

  2. 机器学习:多变量线性回归

    ************************************** 注:本系列博客是博主学习Stanford大学 Andrew Ng 教授的<机器学习>课程笔记.博主深感学过课程 ...

  3. 机器学习(四)-多变量线性回归

    多变量线性回归 1 多变量线性回归应用场景 1.1 单变量线性回归案例 1.2 多变量线性回归案例 2 多元梯度下降法 2.1 一元梯度下降n=1, 重复执行,直到收敛 2.2 多元梯度下降n> ...

  4. 吴恩达机器学习之多变量线性回归实现部分

    C++实现梯度下降法 "linear_regression.h" //多变量线性回归模型 struct elem_var2 {double y;double* x; //用数组传入 ...

  5. 机器学习(二)-一元线性回归算法(代码实现及数学证明)

    解决回归问题 思想简单,实现容易 许多强大的非线性模型的基础 结果具有很好的可解释性 蕴含机器学习中的很多重要思想 回归问题:连续值 如果样本 特征 只有一个 称为简单线性回归 y=ax + b 通过 ...

  6. 入门机器学习(二十一)--大规模机器学习(Large Scale Machine Learning)

    大规模机器学习(Large Scale Machine Learning) 1. 大型数据集的学习(Learning With Large Datasets) 2. 随机梯度下降法(Stochasti ...

  7. 入门机器学习(二十)--编程作业-异常检测和推荐系统(Python实现)

    编程作业–异常检测和推荐系统 在本练习中,我们将使用高斯模型实现异常检测算法,并将其应用于检测网络上的故障服务器. 我们还将看到如何使用协作过滤构建推荐系统,并将其应用于电影推荐数据集. Anomal ...

  8. TensorFlow入门篇(二):线性回归

    理论知识:https://www.cnblogs.com/GuoJiaSheng/p/3928160.html 环境:Python 3.7 TensorFlow 1.12 numpy 1.15.4 代 ...

  9. 吴恩达机器学习作业 1线性回归

    一.单变量线性回归 数据可视化 import numpy as np import pandas as pd import matplotlib.pyplot as plt #print(np.eye ...

最新文章

  1. 微观世界探索者:15家值得关注的纳米技术公司
  2. 基于ESP8266WiFi步进电机控制
  3. 微信小程序之圆形进度条(自定义组件)
  4. PHP文件包含漏洞原理分析和利用方法
  5. android调用web service(cxf)实例
  6. nacos 配置动态刷新_Nacos 动态刷新@RefreshScope 【实现配置和实例刷新】
  7. Percona XtraDB cluster--第一部分:XtraDB cluster安装 (Centos7)
  8. 甲骨文通知用户需付费取得 Java 8 更新
  9. 实现Singleton模式
  10. 程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言)
  11. C#枚举器:foreach语句、IEnumerable、IEnumerator以及yield return (一)
  12. Delphi各个版本的官方下载地址
  13. 微信公号开发实战之智能翻译
  14. Docker 的LNMP + Wordpress搭建
  15. 一个毕业设计 儿童趣味数学 app
  16. vs c语言打印心形情书,最美C语言情书(输出心形图案).doc
  17. Excel 2010 VBA 入门 031 批量生成上标
  18. 防范SQL注入式攻击
  19. 一个人并不寂寞,想一个人才寂寞:QQ空间情感日志
  20. 能力素质有所欠缺_心理素质要怎么锻炼?

热门文章

  1. java自动获取ip_java自动获取电脑ip和MAC地址
  2. 论无线网络中的网络与信息安全技术
  3. 基于javaweb的黑马旅游网站来源_喜讯丨创业黑马(重庆)科技孵化中心今日开业!助力重庆高新区打造人工智能创新高地...
  4. 标题文字超出2行 则隐藏后面显示省略号
  5. some daily
  6. 电赛总结(二)——AD芯片总结之AD7715
  7. 知识小结(浮点数问题)
  8. Ajax异步方式实现登录与參数的校验
  9. 关于未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值的解决方法...
  10. 嵌入式根文件系统的移植和制作详解