斯坦福大学机器学习第三课“多变量线性回归(Linear Regression with Multiple Variables)”

斯坦福大学机器学习第四课”多变量线性回归“学习笔记,本次课程主要包括7部分:

1) Multiple features(多维特征)

2) Gradient descent for multiple variables(梯度下降在多变量线性回归中的应用)

3) Gradient descent in practice I: Feature Scaling(梯度下降实践1:特征归一化)

4) Gradient descent in practice II: Learning rate(梯度下降实践2:步长的选择)

5) Features and polynomial regression(特征及多项式回归)

6) Normal equation(正规方程-区别于迭代方法的直接解法)

7) Normal equation and non-invertibility (optional)(正规方程在矩阵不可逆情况下的解决方法)

以下是每一部分的详细解读:

1) Multiple features(多维特征)

第二课中我们谈到的是单变量的情况,单个特征的训练样本,单个特征的表达式,总结起来如下图所示:

对于多维特征或多个变量而言:以房价预测为例,特征除了“房屋大小外”,还可以增加“房间数、楼层数、房龄”等特征,如下所示:

定义:

n = 特征数目

x(i)= 第i个训练样本的所有输入特征,可以认为是一组特征向量

x(i)j = 第i个训练样本第j个特征的值,可以认为是特征向量中的第j个值

对于Hypothesis,不再是单个变量线性回归时的公式:hθ(x)=θ0+θ1x

而是:

hθ(x)=θ0+θ1x1+θ2x2+…+θnxn

为了方便,记x0 = 1,则多变量线性回归可以记为:

hθ(x)=θTx

其中θ和x都是向量。

2) Gradient descent for multiple variables(梯度下降在多变量线性回归中的应用)

对于Hypothesis:

hθ(x)=θTx=θ0+θ1x1+θ2x2+…+θnxn

其中参数:θ0, θ1,…,θn可表示为n+1维的向量  θ

对于Cost Function:

J(θ)=J(θ0,θ1,…,θn)=12m∑i=1m(hθ(x(i))–y(i))2

梯度下降算法如下:

对J(θ)求导,分别对应的单变量和多变量梯度下降算法如下:

当特征数目为1,也就是n=1时:

当特征数目大于1也就是n>1时,梯度下降算法如下:

3) Gradient descent in practice I: Feature Scaling(梯度下降实践1:特征归一化)

核心思想:确保特征在相似的尺度里。

例如房价问题:

特征1:房屋的大小(0-2000);

特征2:房间数目(1-5);

1. 简单的归一化,除以每组特征的最大值,则:

目标:使每一个特征值都近似的落在−1≤xi≤1  的范围内。

举例:因为是近似落在这个范围内,所以只要接近的范围基本上都可以接受,例如:

0<=x1<=3, -2<=x2<=0.5, -3 to 3, -1/3 to 1/3 都ok;

但是:-100 to 100, -0.0001 to 0.0001不Ok。

2.Mean Normalization(均值归一化):

用xi–μi    替换  xi使特征的均值近似为0(但是不对x0=1处理),均值归一化的公式是:

xi←xi–μiSi

其中Si可以是特征的取值范围(最大值-最小值),也可以是标准差(standard deviation).

对于房价问题中的两个特征,均值归一化的过程如下:

4) Gradient descent in practice II: Learning rate(梯度下降实践2:步长的选择)

对于梯度下降算法:

需要注意两点:

-“调试”:如何确保梯度下降算法正确的执行;

-如何选择正确的步长(learning rate):  α;

第二点很重要,它也是确保梯度下降收敛的关键点。要确保梯度下降算法正确运行,需要保证 J(θ)     在每一 步迭代中都减小,如果某一步减少的值少于某个很小的值 ϵ , 则其收敛。例如:

如果梯度下降算法不能正常运行,考虑使用更小的步长α,这里需要注意两点:

1)对于足够小的α,  J(θ)   能保证在每一步都减小;

2)但是如果α太小,梯度下降算法收敛的会很慢;

总结:

1)如果α太小,就会收敛很慢;

2)如果α太大,就不能保证每一次迭代J(θ)都减小,也就不能保证J(θ)收敛;

如何选择α-经验的方法:

…, 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1…

约3倍于前一个数。

5) Features and polynomial regression(特征及多项式回归)

例子-房价预测问题:

特征x1表示frontage(正面的宽度),特征x2表示depth(深度)

同时x1,x2也可以用一个特征表示:面积 Area = frontage * depth

即 hθ(x)=θ0+θ1x , x表示面积。

多项式回归:

很多时候,线性回归不能很好的拟合给定的样本点,例如:

所以我们选择多项式回归:

对于特征的选择,除了n次方外,也可以开根号,事实上也是1/2次方:

6) Normal equation(正规方程-区别于迭代方法的直接解法)

相对于梯度下降方法,Normal Equation是用分析的方法直接解决θ.

正规方程的背景:

在微积分里,对于1维的情况,如果θ   属于R:

J(θ)=aθ 2+bθ+c

求其最小值的方法是令:

ddθJ(θ)=…=0

然后得到θ.

同理,在多变量线性回归中,对于θ∈Rn+1,Cost Function是:

求取θ   的思路仍然是:

对于有4组特征(m=4)的房价预测问题:

其中X 是m * (n+1)矩阵:

y是m维向量:

则Normal equation的公式为:

θ=(XTX)−1XTy

注:这里直接给出了正规方程的公式,没有给出为什么是这样的,如果想知道原因,建议看看MIT线性代数 第4章4.3节“最小二乘法”的相关内容,这里面最关键的一个点是:

“The partial derivatives of ||Ax–b||2     are zero when ATAx=ATb.因此x=(XTX)−1XTy(将X换成A)θ=(XTX)−1XTy

举例可见官方的PPT,此处略;

Octave公式非常简洁:pinv(X’ * X) * X’ * y

对于m个样本,n个特征的问题,以下是梯度下降和正规方程的优缺点:

梯度下降:

需要选择合适的learning rate α;

需要很多轮迭代;

但是即使n很大的时候效果也很好;

Normal Equation:

不需要选择α;

不需要迭代,一次搞定;

但是需要计算(XTX)−1,其时间复杂度是O(n3)

如果n很大,就非常慢

7) Normal equation and non-invertibility (optional)(正规方程在矩阵不可逆情况下的解决方法)

对于Normal Equation,如果XTX 不可逆怎么办?

1) 去掉冗余的特征(线性相关):

例如以平方英尺为单位的面积x1,  和以平方米为单位的面积x2,其是线性相关的:

x1=(3.28)2x2

2) 过多的特征,例如m <= n:

删掉一些特征,或者使用regularization–之后的课程会专门介绍。

参考资料:

以下是第四课“多变量线性回归”的课件资料下载链接,视频可以在Coursera机器学习课程上观看或下载: https://class.coursera.org/ml
PPT   PDF
另外关于第三课“线性代数回顾”,由于课程内容相对简单,没有以笔记的形式呈现,而是换了一种写法,具体可参考: 线性代数的学习及相关资源

斯坦福大学机器学习第三课“多变量线性回归“相关推荐

  1. Coursera公开课笔记: 斯坦福大学机器学习第四课“多变量线性回归(Linear Regression with Multiple Variables)”

    Coursera公开课笔记: 斯坦福大学机器学习第四课"多变量线性回归(Linear Regression with Multiple Variables)" 斯坦福大学机器学习第 ...

  2. Coursera公开课笔记: 斯坦福大学机器学习第十一课“机器学习系统设计(Machine learning system design)”

    Coursera公开课笔记: 斯坦福大学机器学习第十一课"机器学习系统设计(Machine learning system design)" 斯坦福大学机器学习斯坦福大学机器学习第 ...

  3. 斯坦福大学机器学习第十课“应用机器学习的建议(Advice for applying machine learning)”

    斯坦福大学机器学习第十课"应用机器学习的建议(Advice for applying machine learning)" 斯坦福大学机器学习斯坦福大学机器学习第十课"应 ...

  4. 斯坦福大学机器学习第八课“神经网络的表示(Neural Networks: Representation)”

    斯坦福大学机器学习第八课"神经网络的表示(Neural Networks: Representation)" 斯坦福大学机器学习第八课"神经网络的表示(Neural Ne ...

  5. 斯坦福大学机器学习第六课“神经网络的表示(Neural Networks: Representation)”

    斯坦福大学机器学习第六课"神经网络的表示(Neural Networks: Representation)" 本次课程主要包括7部分: 1)  Non-linear hypothe ...

  6. 斯坦福大学机器学习第五课正则化“

    斯坦福大学机器学习第五课"正则化" 本次课程主要包括4部分: 1)  The Problem of Overfitting(过拟合问题) 2)  Cost Function(成本函 ...

  7. Coursera公开课笔记: 斯坦福大学机器学习第七课“正则化(Regularization)”

     Coursera公开课笔记: 斯坦福大学机器学习第七课"正则化(Regularization)" +13投票 斯坦福大学机器学习第七课"正则化"学习笔记, ...

  8. Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”

    Coursera公开课笔记: 斯坦福大学机器学习第六课"逻辑回归(Logistic Regression)" 斯坦福大学机器学习第六课"逻辑回归"学习笔记,本次 ...

  9. 斯坦福大学机器学习第四课“逻辑回归(Logistic Regression)”

    斯坦福大学机器学习第四课"逻辑回归(Logistic Regression)" 本次课程主要包括7部分: 1) Classification(分类) 2) Hypothesis R ...

最新文章

  1. 大多数的自动驾驶公司,注定要倒闭
  2. 河南工程学院计算机科学与技术在哪个校区,河南工学院新生在哪个校区_有几个校区及地址介绍...
  3. MATLAB句柄相关函数和代码示例(设置美化图表属性)
  4. 物生政可以报计算机专业吗,新高考物生政组合好吗?高考物生政可以报什么专业?...
  5. 我结婚了,我要用什么做个邀请函呢?【iVX无代码YYDS 06】
  6. c# 浮点数十六进制字符串_从C#中包含十六进制值的字符串数组中打印整数值...
  7. Eclipse项目无错误但是有红叉问题解决
  8. 【计算机组成原理】CPU
  9. 西河某人_如何使用增强现实祝某人生日快乐
  10. ico图标下载 ico大全_我们可以做些什么来向ICO投资者保证我们不会用他们的钱消失...
  11. 每行代码都有注释释的java面向对象代码_每行代码都有注释释的java面向对象代码...
  12. ROS 5.12 上自动更新3322.org动态域名
  13. C# CLRInsideOut 托管代码与非托管代码互操作,产生相关调用代码的好工具 C++ 头文件转C# 的好工具...
  14. 谷歌发布 Android 11 的第二个开发者预览版
  15. 第4章 最基础的分类算法-k近邻算法 kNN 学习笔记 下
  16. 2022泰迪杯数据挖掘挑战赛C题思路及赛后总结
  17. batchplot放到哪个文件夹_AutoCAD批量打印软件BatchPlot安装方法及使用教程
  18. Project(10)——收货地址 - 设置默认
  19. 快捷键以及一些基础知识
  20. 软考数据库考试有题库吗_科目一考试的题目都是从题库里挑的吗?科一考试技巧分享!...

热门文章

  1. Binary Formats in JavaScript: Base64, Deflate, and UTF8
  2. 行政编码json_基于FME国内县级及以上网络公开行政区划边界的获取
  3. flex平均分布换行后自动对齐
  4. vue2.0中的$router 和 $route的区别
  5. react复制内容到剪贴板
  6. 分布式机器学习框架:MxNet
  7. 【high-speed-downloader】百度网盘不限速下载 支持 Windows 和 Mac
  8. BZOJ 1910 [Ctsc2002] Award 颁奖典礼
  9. Linux编程 8 (挂载mount,查看磁盘df du,搜索grep,压缩zgip,归档tar)
  10. 生成某一文件夹内文件清单(批量处理)