Linear Regression with multiple variables

1.Multiple features(多特征)

1.1multiple variables(多变量)

通过多变量来进行预测的问题。各种记法如上图所示。

相应的,假设函数也应变化为一个多变量的函数形式。

定义=1,分别用n+1维的向量来表示x的集合,根据向量运算可以把假设函数转变为向量乘法形式。而以上这种形式的问题称为多元线性回归问题。

1.2 gradient descent for multiple variables(多元梯度下降)

可以看到假设函数变成了一个多变量问题,将n+1个θ参数表示为一个n+1维的向量;

代价函数中,J(θ)中θ是向量(n+1维);

梯度下降公式中,J(θ)也作相应改变。

在这张图中, 对比了单变量和多变量下梯度函数的区别(事实上仅是多了些参数的偏导求解)。此外,将定义为1也将公式在形式上进行了统一。

但需要注意的是,θ的更新,仍然是需要同步进行的。

1.3 feature scaling(特征缩放)

在多变量的梯度下降中,如果参数θ彼此的尺度差距过大,则会很大程度上影响梯度下降算法的运行效率,所以在这个前提下,我们可以通过特征缩放的方法,来消除不利影响。

确保特征的尺度在一个相近的规模;如上图例子,左侧为未处理的特征情况,房屋大小的范围为0-2000,而卧室数量为0-5,其等高线图也如左侧所示。

当进行了特征缩放(将房屋大小除以2000,卧室数量除以5)后,的范围都缩放到了0-1之间,这时梯度下降的效果是较好的。

特征缩放的标准是尽量将每一个特征缩放至(-1)—1区间附近,无需特别精准,如上图右侧范围就是典型的好的特征范围。

均值归一化也是特征缩放的常用技巧。

其中的平均值,既可定义为range(区间最大值减去最小值),也可定义为standard deviation(标准差)。

1.4 learning rate(学习率)

这一小节的内容有关如何选择合适的学习率α。

通过绘制一张迭代次数(横坐标);与代价函数J(θ) (纵坐标);的图像,可以判断这个二梯度下降算法是否正常工作(收敛)的。

也可以定义一个极小的值来判敛,而吴老师更倾向于绘制一张直观的坐标图。

当图像呈上图中模样时,我们应该选择更小的α值,因为函数图像的发散可能预示着,我们由于选择了大步长,而越过了局部最优解,像上图右侧般地左右横跳。

如之前提到的,α值太小可能会导致收敛过慢;太大则可能会导致每次迭代是非下降的,甚至无法收敛,所以作者给出的建议值如上0.001......等。

2.Features and polynomial regression(特征与多项式回归)

2.1 choose features

上图的假设函数选择特征时,frontage和depth特征的乘积事实上恰是房屋面积,也即是影响房屋价格预测的根本性质,所以不妨合并两个属性,设x为二特征的乘积来简化

二次多项式与三次多项式拟合

平方根函数拟合

多项式回归(polynomial regression):通过二次函数或三次函数对数据进行拟合,根据其大概趋势的判断来选择合适的多项式,二次函数或可较好的拟合此例(房屋价格随尺寸涨幅)前半段,但随尺寸增长反而再次下降是不符合常理的,故三次函数或平方根函数或可较好的拟合之后的趋势。

图中,可以将定义为房屋大小值得一次二次三次方来将其变回为线性回归问题,但此时需要注意的是,要进行合适的特征缩放来减少量级变化的影响。

3.Normal equation(正规方程)

3.1definition

正规方程法是一种自动求得θ最小值的方程法;其公式:

在求解二次函数最小值时,我们常用的数学方法是对函数求导并令其为零;对于多变量的函数则是求偏导数并分别令每个偏导数为零计算求解。

在这个例子中,数据集的行数为4;列数为5( ),自变量下标对应着不同特征,即n个特征,将其特征部分构造为一个矩阵 ,价格预测部份定义为一个m维的向量

则使得代价函数最小的值即为上述公式:

         解释:

的上标m,代表的是第m条数据,即这个为index,来标定某一条数据,这条数据包含的是。而其中表示第m条数据的第n个特征的值。

上图下方举例:

若记录为一个2维的,即只有一个特征的向量(定义为1是方便后续计算,其值定义为1)。

矩阵是一个的矩阵。(但是个人感觉这个上标及下标的记录好像有手误,应以上半部分的示例为准)。

3.2 compared with gradient descent(与梯度下降算法对比)

         综合而言,当特征数量过于巨大时,即n=10000甚至更多时,其矩阵的计算时相当大的规模,所以这种情况下梯度下降算法是更好的选择,而当特征的数量并不是过于多时,正规方程则提供了一种简单有效的直接算法,来求目标的值,且不像梯度下降算法需要多次迭代。

StudyNotes_MachineLearning_3(吴恩达机器学习公开课)相关推荐

  1. 吴恩达机器学习公开课第一周学习笔记

    Octave是一种编程语言,旨在解决线性和非线性的数值计算问题.Octave为GNU项目下的开源软件,早期版本为命令行交互方式,4.0.0版本发布基于QT编写的GUI交互界面.Octave语法与Mat ...

  2. StudyNotes_MachineLearning_2(吴恩达机器学习公开课)

    Cost function(代价函数)&Gradient descent(梯度下降) 1.Cost function 1.1 How to choose parameters? 接上节内容,我 ...

  3. 吴恩达卷积神经网络笔记,吴恩达人工智能公开课

    吴恩达是个谁 吴恩达(1976-,英文名:AndrewNg),华裔美国人,是斯坦福大学计算机科学系和电子工程系副教授,人工智能实验室主任.吴恩达是人工智能和机器学习领域国际上最权威的学者之一. 吴恩达 ...

  4. 【深度学习】吴恩达网易公开课练习(class1 week3)

    知识点梳理 python工具使用: sklearn: 数据挖掘,数据分析工具,内置logistic回归 matplotlib: 做图工具,可绘制等高线等 绘制散点图: plt.scatter(X[0, ...

  5. 第一章-机器学习简介 深度之眼_吴恩达机器学习作业训练营

    目录 专栏简介: 一,机器学习简介 1.1 机器学习定义 1.1 机器学习的重要性 1.2 应用领域 二.监督学习 三.无监督学习 四.总结 专栏简介: 本栏主要内容为吴恩达机器学习公开课的学习笔记, ...

  6. Github标星24300!吴恩达机器学习课程笔记.pdf

    个人认为:吴恩达老师的机器学习课程,是初学者入门机器学习的最好的课程!我们整理了笔记(336页),复现的Python代码等资源,文末提供下载. 课程简介 课程地址:https://www.course ...

  7. 吴恩达机器学习笔记整理(Week1-Week5)

    吴恩达机器学习笔记整理 1. Week1 1.1 什么是机器学习(What is Machine Learning) 1.2机器学习算法分类 1.3 单变量线性回归(Linear Regression ...

  8. 【CV】吴恩达机器学习课程笔记 | 第1-2章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 1 介绍 1-3 监督学习 1-4 无监督学习 2 单变量 ...

  9. 【CV】吴恩达机器学习课程笔记第18章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 18 应用案例:照片OCR 18-1 问题描述与流程(pi ...

最新文章

  1. mysql -d_mysqld
  2. SVN 服务器发送了意外的返回值(405 Method Not Allowed),在响应 “MKCOL” 的请求
  3. 启动Nginx 出现 nginx: [emerg] unknown directive 锘?user 错误
  4. 电脑时间校对器_笔记本电脑如何保养?华为教你五招轻松延长使用时间
  5. DDD(领域驱动设计)
  6. supermap许可 (*.lic9d)
  7. Android 高仿微信支付密码输入控件
  8. python函数装饰器有什么作用请列举说明_你必须学写 Python 装饰器的五个理由
  9. 轨道交通计算机联锁系统应用,计算机联锁系统论文(2)
  10. c语言统计单词平均长度,C++ 字符数组 - 统计一段英文单词的平均长度
  11. Android 11.0 修改下拉通知栏的NotificationGuts背景为圆角背景
  12. 青云mysql_青云分布式数据库RadonDB 深度兼容MySQL
  13. c++:苹果和虫子(疑问)
  14. [IOT] 自制蓝牙工牌办公室定位系统 (一)—— 阿里物联网平台概览及打通端到云(硬核·干货)
  15. NBA名人堂之-约翰·哈夫利切克|杰里·卢卡斯|詹姆斯·沃西|乔治·格温|沃尔特·弗雷泽
  16. 亚马逊要求的FCC-ID和 CE-RED认证的定频机是什么
  17. 使用Python登录CSDN(最新验证可用)
  18. 开通个人博客啦,附上Vultr+WordPress建站全面指南
  19. 用js动态生成html页面
  20. linux下打包rpm,打包rpm包 – 制作RPM包

热门文章

  1. python实现猫捉老鼠小游戏
  2. struts2升级到2.5.30总结
  3. 绿联扩展坞拆解_拆解报告:UGREEN绿联3A1C五合一多功能拓展坞
  4. 夜来风雨声,“TCP/IP”知多少?
  5. TreeList 节点拖曳
  6. 昨晚我遇到了超级网红 区块链本人
  7. html5做密码形式的游戏,html5仿支付宝密码框的实现代码
  8. 客户不去你网店买东西的15个理由
  9. 谈谈对K8S CNI、CRI和CSI插件的理解
  10. html语言对ui设计,学ui设计还需要学html5代码?