Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

时间:2022-09-05 23:47:20

原文:http://blog.csdn.net/abcjennifer/article/details/7700772

本栏目(Machine learning)包括单参数的线性回归、多参数的线性回归、Octave Tutorial、Logistic Regression、Regularization、神经网络、机器学习系统设计、SVM(Support Vector Machines 支持向量机)、聚类、降维、异常检测、大规模机器学习等章节。所有内容均来自Standford公开课machine learning中Andrew老师的讲解。(https://class.coursera.org/ml/class/index

第二讲-------多变量线性回归 Linear Regression with multiple variable

 

(一)、Multiple Features:

 

多变量假设:输出由多维输入决定,即输入为多维特征。如下图所示:Price为输出,前面四维为输入:

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable假设h(x)=θ0+θ1x1+……所谓多参数线性回归即每个输入x有(n+1)维[x0……xn]

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

 

 

 

(二)、Gradient Descent for Multiple Variables:

 

左边为但参数的梯度递减单变量学习方法,右图new algorithm为多变量学习方法。

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

 

 

 

 

 

(三)、Gradient Descent for Multiple Variables - Feature Scaling

 

It is important to 归一化feature,所以用到了feature scaling,即将所有feature归一化到[-1,1]区间内:

归一化方法:xi=(xi-μi)/σiStanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

(四)、Gradient Descent for Multiple Variables - Learning Rate

 

梯度下降算法中另一关键点就是机器学习率的设计:设计准则是保证每一步迭代后都保证能使cost function下降。

这是cost function顺利下降的情况:

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

这是cost function不顺利下降的情况:

原因如右图所示,由于学习率过大,使得随着迭代次数的增加,J(θ)越跳越大,造成无法收敛的情况。

解决方法:减小学习率

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

总结:如何选取学习率:

测试α=0.001,收敛太慢(cost function下降太慢),测试0.01,过了?那就0.003……

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

(五)、Features and Polynomial Regression

 

假设我们的输入为一座房子的size,输出为该house的price,对其进行多项式拟合:

有两个选择,二次方程或者三次方程。考虑到二次方程的话总会到最高点后随着size↑,price↓,不合常理;因此选用三次方程进行拟合。

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

这里归一化是一个关键。

或者有另一种拟合方程,如图粉红色曲线拟合所示:

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

(六)、Normal Equation

 

与gradient descent平行的一种方法为Normal Equation,它采用线性代数中非迭代的方法,见下图:

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

我们想要找到使cost function 最小的θ,就是找到使得导数取0时的参数θ:
该参数可由图中红框公式获得:

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

具体来说:X是m×(n+1)的矩阵,y是m×1的矩阵

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

上图中为什么x要加上一列1呢?因为经常设置X(i)0=1;

下面比较一下Gradient Descent与Normal Equation的区别:

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

(七)、Normal Equation Noninvertibility

 

我们已知,对于有m个样本,每个拥有n个feature的一个训练集,有X是m×(n+1)的矩阵,XTX是(n+1)×(n+1)的方阵,那么对于参数θ的计算就出现了一个问题,如果|XTX|=0,即XTX不可求逆矩阵怎么办?这时可以进行冗余feature的删除(m<=n的情况,feature过多):

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable的更多相关文章

  1. &lbrack;Machine Learning&rsqb; 多变量线性回归&lpar;Linear Regression with Multiple Variable&rpar;-特征缩放-正规方程

    我们从上一篇博客中知道了关于单变量线性回归的相关问题,例如:什么是回归,什么是代价函数,什么是梯度下降法. 本节我们讲一下多变量线性回归.依然拿房价来举例,现在我们对房价模型增加更多的特征,例如房间数 ...

  2. 机器学习(三)--------多变量线性回归&lpar;Linear Regression with Multiple Variables&rpar;

    机器学习(三)--------多变量线性回归(Linear Regression with Multiple Variables) 同样是预测房价问题  如果有多个特征值 那么这种情况下  假设h表示 ...

  3. 机器学习 &lpar;二&rpar; 多变量线性回归 Linear Regression with Multiple Variables

    文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人 ...

  4. 机器学习 &lpar;一&rpar; 单变量线性回归 Linear Regression with One Variable

    文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang的个人笔 ...

  5. 机器学习第4课:多变量线性回归&lpar;Linear Regression with Multiple Variables&rpar;

    4.1  多维特征 目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征, 例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,...,xn).

  6. Ng第四课:多变量线性回归&lpar;Linear Regression with Multiple Variables&rpar;

    4.1  多维特征 4.2  多变量梯度下降 4.3  梯度下降法实践 1-特征缩放 4.4  梯度下降法实践 2-学习率 4.5  特征和多项式回归 4.6  正规方程 4.7  正规方程及不可逆性 ...

  7. 斯坦福第四课:多变量线性回归&lpar;Linear Regression with Multiple Variables&rpar;

    4.1  多维特征 4.2  多变量梯度下降 4.3  梯度下降法实践 1-特征缩放 4.4  梯度下降法实践 2-学习率 4.5  特征和多项式回归 4.6  正规方程 4.7  正规方程及不可逆性 ...

  8. python实现多变量线性回归&lpar;Linear Regression with Multiple Variables&rpar;

    本文介绍如何使用python实现多变量线性回归,文章参考NG的视频和黄海广博士的笔记 现在对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为( x1,x2,..., ...

  9. 4、、多变量线性回归&lpar;Linear Regression with Multiple Variables&rpar;

    4.1 多维特征 目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,...xn) 增添更多特征后, ...

随机推荐

  1. Web开发中20个很有用的CSS库

    来源: 微信公众号文章 在过去的几年中,CSS已经成为一大部分开发者和设计者的最爱,因为它提供了一系列功能和特性.每个月都有无数个围绕CSS的工具被开发者发布以简化WEB开发.像CSS库,框架,应用这 ...

  2. ajax完整结构

    $.ajax({ url:"服务器", data:{"key":所传数据}, type:"post", dataType:"jso ...

  3. Entity Framework Code First ---EF Power Tool MySql

    关于如何使用EF Power Tool的介绍请看 http://www.cnblogs.com/LingzhiSun/archive/2011/05/24/EFPowerTool_1.html, 这里 ...

  4. rndc&colon; connect failed&colon; 127&period;0&period;0&period;1&num;953&colon; connection refused

    [root@localhost sbin]# ./named -v bind 9.5.1-p3-v3.0.9 问题现象: [root@localhost sbin]# ./rndc flush -p ...

  5. &lbrack;CodeForce&rsqb;358D Dima and Hares

    有N<3000只宠物要喂,每次只能喂一只,每喂一只宠物,宠物的满足度取决于: 1 紧靠的两个邻居都没喂,a[i] 2 邻居中有一个喂过了,b[i] 3 两个邻居都喂过了,c[i] 把所有宠物喂一 ...

  6. springmvc的几点见解

    @Controller //标注在Bean的类定义处 @RequestMapping //可以标注在类定义处,将Controller和特定请求关联起来. //可以标注在方法签名处,以便进一步对请求进行 ...

  7. 遇到的Fragment中使用setAdapter&lpar;&rpar;设置ListView报空指针解决方案

    场景是这样,底部4个tab导航栏.用的fragment. 但其中一个fragmentActivity1中使用ListVIew的setAdapter()方法时,总是报NullPointerExcepti ...

  8. golang仿AS3写的ByteArray

    用golang写了个仿AS3写的ByteArray,稍微有点差别,demo能成功运行,还未进行其他测试 主要参考的是golang自带库里的Buffer,结合了binary 来看看demo: packa ...

  9. USACO Section 5&period;4 TeleCowmunication&lpar;最小割)

    挺裸的一道最小割.把每台电脑拆成一条容量为1的边,然后就跑最大流.从小到大枚举每台电脑,假如去掉后 最大流=之前最大流+1,那这台电脑就是answer之一了. -------------------- ...

  10. Pandas 基础&lpar;15&rpar; - date&lowbar;range 和 asfreq

    这一节是承接上一节的内容, 依然是基于时间的数据分析, 接下来带大家理解关于 date_range 的相关用法. 首先, 引入数据文件: import pandas as pd df = pd.rea ...