原文: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为输出,前面四维为输入:

假设h(x)=θ0+θ1x1+……所谓多参数线性回归即每个输入x有(n+1)维[x0……xn]

 

 

 

(二)、Gradient Descent for Multiple Variables:

 

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

 

 

 

 

 

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

 

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

归一化方法:xi=(xi-μi)/σi

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

 

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

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

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

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

解决方法:减小学习率

总结:如何选取学习率:

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

(五)、Features and Polynomial Regression

 

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

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

这里归一化是一个关键。

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

(六)、Normal Equation

 

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

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

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

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

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

(七)、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的更多相关文章

  1. [Machine Learning] 多变量线性回归(Linear Regression with Multiple Variable)-特征缩放-正规方程

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

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

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

  3. 机器学习 (二) 多变量线性回归 Linear Regression with Multiple Variables

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

  4. 机器学习 (一) 单变量线性回归 Linear Regression with One Variable

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

  5. 机器学习第4课:多变量线性回归(Linear Regression with Multiple Variables)

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

  6. Ng第四课:多变量线性回归(Linear Regression with Multiple Variables)

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

  7. 斯坦福第四课:多变量线性回归(Linear Regression with Multiple Variables)

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

  8. python实现多变量线性回归(Linear Regression with Multiple Variables)

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

  9. 4、、多变量线性回归(Linear Regression with Multiple Variables)

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

随机推荐

  1. sql server 使用函数辅助查询

    函数是所有语言系统下都具备的内部数据处理过程,SQL SERVER也同样内置了许多函数.在SQL SERVER中,函数是由一个或多个T-SQL语句组成的子程序.利用函数可以简化数据的处理操作. 函数分 ...

  2. css翻页样式

    /*=======================翻页样式===========================*/.pages { width: 660px; text-align: center; ...

  3. [BZOJ1951][SDOI2005]古代猪文(数论好题)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1951 分析: 练习数论知识的好题,涉及到费马小定理.lucas定理.求逆元

  4. [工具类]文件或文件夹xx已存在,则重命名为xx(n)(2)

    写在前面 最近一直在弄文件传输组件,其中一个功能就是,在接收端接收文件时,如果文件已经存在了,则对其进行文件名+索引的方式进行自动重命名,之前也写个类似的工具类,总感觉代码太冗余,每回头想想,总觉得心 ...

  5. 通过Ajax——异步获取相关问题解答

    问题呈现: 解决方案: dataType定义的是接收的值的类型,及controller控制器返回什么类型的值,这就写成什么类型, 我写的是return content("...") ...

  6. MVC4 code first 增加属性,对应自动修改列的方法笔记

    VS工具>库程序包管理器>程序包管理控制台,然后输入以下命令 enable-migrations -contexttypename Mvc4Application1.Models.Movi ...

  7. SQL Server之存储过程基础知识

    什么是存储过程呢?存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令. 通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句. 那为什么要用存储过程呢?1.存储过程只在创造时进行编译, ...

  8. Matlab最短路径问题记录

    利用graphshortestpath 可以求最短路径,具体用法参考MATLAB帮助 S=[1 1 2 2 3 3 4 4 4 4 5 6 6 7 8]; %起始节点向量 E=[2 3 5 4 4 6 ...

  9. 使用Jayrock开源组件创建参数可为空的接口

    经过上一篇文章对Jayrock开源组件的分析,我发现了一个问题,就是在写接口的时候,可以设置某个参数为空,可以不需要进行参数的传递,具体写法如下: 图上的test参数就是可空类型,只需标识为int?类 ...

  10. 【基础语法】a++与++a的区别

    package com.on.learn.e2; /** * @author lj * 自增:a++与++a a++是指本行表达式不使用a自增后的值,++a是指本行开始就已经使用a自增后的值 * */ ...