1.Feature Scaling(特征缩放):

如上图所示,x1是房屋面积,x2是房间个数,若不进行特征缩放,则代价函数J的曲线近似为一个瘦长的椭圆(我暂时这么理解,θ1和θ2分别是x1和x2的权值系数,而x2的特征向量值相较x1很小,则x1变化一个较小的量,在J的同一条相同的圆弧曲线上θ2就要变化一个较大的量,因此成为一个椭圆形式)

而对于左图的椭圆,会加大用梯度下降算法到达最低点的难度,所以我们可以采用右图的特征缩放,是他们都缩放到同一个数量级,这样J的形状近似为一个圆,更容易达到最低点。

总之,使用特征缩放的一个标准就是使各特征量都缩放到[-1,+1]之间(x0=1),而一般经验值是[-3,+3]和[-1/3,+1/3](超出这个范围就要进行考虑)


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

用(xi-ui)/si来代替原来的特征向量xi,这里ui是xi的平均值,Si是xi的标准差(用最大值减去最小值即可),最终得到的范围大概在[-0.5,+0.5]


3.关于梯度下降中的学习率α,只要α足够小,则每次迭代后J都会下降,但若是过小,则收敛太慢。过大,则不是每次迭代后都会下降(偶尔会产生收敛缓慢的情况)

工程上可以取一系列的α值从0.001,0.003,0.01,0.03,0.1,0.3,1(也可以加大点范围),然后画出如下的曲线:

横轴是迭代次数,纵轴是J的值,然后从一系列曲线中选择合适的α作为最终的学习率

4.多项式回归:a.选择合适的多项式来拟合数据;b.选择合适的特征量(如视频中原来x1是临街宽度,x2是纵深宽度,作者后来用x1=x1*x2即房屋所占面积和x2=x12等等来表示特征量);

5.Normal Equation(正规方程):

6.关于何时选择梯度下降算法,何时选择正规方程方法?先比较一下两者的优缺点:

(1)梯度下降算法的优点:即使特征变量的数目n很大时,也有较好的效果;

缺点:需要选择学习率;需要迭代很多次;

(2)正规方程算法的优点:不需要选择学习率;不需要迭代;

缺点:由于θ=(XTX)-1XTy中有(XTX)-1这一项,而它是n*n维矩阵,因此当n很大时,正规方程算法的计算量大概是n的三次方,就非常大;

所以选择的时候,当n是上百或者上千时,一般选择正规方程算法,如果上万的话(一般达到一万)就要考虑使用梯度下降算法了。

7.正规方程以及不可逆性(Normal Equation Noninvertibility):

即(XTX)不可逆,原因一般有两个:(1)有多余的特征量;

(2)有过多的特征量;

如上图中,x1是以英尺单位的房屋面积,x2是以平方米为单位的房屋面积,则x1和x2线性相关,它们之间就有一个多余的特征向量;

而第二行中,比如样本个数是m=10,特征向量个数n=100,由于要从10个样本中找出100个特征向量,则很有难度;

Andrew Ng在coursera上的ML课程_知识点笔记_(1)的更多相关文章

  1. Andrew Ng在coursera上的ML视频 知识点笔记(2)

    一.由线性回归导出逻辑回归: 二.“一对多”算法解决多分类问题: 三.“过拟合”和“欠拟合”: (1)对线性回归加入正则项: (2)对逻辑回归加入正则项: (3)加入正则项之后的正规方程:

  2. 【原】Coursera—Andrew Ng斯坦福机器学习(0)——课程地址和软件下载

    斯坦福大学机器学习 课程信息 机器学习是一门研究在非特定编程条件下让计算机采取行动的学科.最近二十年,机器学习为我们带来了自动驾驶汽车.实用的语音识别.高效的网络搜索,让我们对人类基因的解读能力大大提 ...

  3. coursera上的软件安全课程的课后阅读补充

    在coursera选修了一门软件安全的课程.下面是教授列出来的阅读: Week 1 Readings Required reading The only required reading this w ...

  4. [Machine Learning] Andrew Ng on Coursera (Week 1)

    Week 1 的内容主要有: 机器学习的定义 监督式学习和无监督式学习 线性回归和成本函数 梯度下降算法 线性代数回归 主要是了解一下机器学习的基本概念,重点是学习线性回归模型,以及对应的成本函数和梯 ...

  5. Andrew Ng 的 Machine Learning 课程学习 (week5) Neural Network Learning

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

  6. Andrew Ng 的 Machine Learning 课程学习 (week4) Multi-class Classification and Neural Networks

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

  7. Andrew Ng 的 Machine Learning 课程学习 (week3) Logistic Regression

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

  8. Andrew Ng 的 Machine Learning 课程学习 (week2) Linear Regression

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

  9. (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly Detection&Recommender Systems

    这部分内容来源于Andrew NG老师讲解的 machine learning课程,包括异常检测算法以及推荐系统设计.异常检测是一个非监督学习算法,用于发现系统中的异常数据.推荐系统在生活中也是随处可 ...

随机推荐

  1. 推公式hdu2298

    (0,0)点到(x,y)以v射箭 问 最小的角度 不能射到 -1 x=v*cos(a)*t; y=v*sin(a)*t-0.5*g*t*t; 消去t; y=x*tan(a)-0.5*g*x*x/(v* ...

  2. CSS Icon 项目地址 小图标-用css写成的

    http://cssicon.space/#/icon/focus 这是所有用css写成的  小图标  右侧有 html和css代码

  3. DedeCMS flink_add Getshell漏洞 管理员CSRF漏洞

    DedeCMS flink_add Getshell漏洞 管理员CSRF漏洞 1.漏洞利用 由于tpl.php中的$action,$content,$filename变量没有初始化,从而能操纵这些变量 ...

  4. 架构师养成记--15.Disruptor并发框架

    一.概述 disruptor对于处理并发任务很擅长,曾有人测过,一个线程里1s内可以处理六百万个订单,性能相当感人. 这个框架的结构大概是:数据生产端 --> 缓存 --> 消费端 缓存中 ...

  5. POJ2096 Collecting Bugs

    Time Limit: 10000MS   Memory Limit: 64000K Total Submissions: 5090   Accepted: 2529 Case Time Limit: ...

  6. Unity Animator动画状态机 深入理解(三)二维混合树

    介绍二维之前,先说说一维吧~ 这个是通过旋转角度速度快慢来表现身体的大转和中转~ 通过一个-133~133的数值来进行控制. 注:后面的那个对钩是镜像的意思. 其实二维混合树并没有想象中的那么难.先来 ...

  7. python安装、模块安装

    python安装 windows 下载安装包 https://www.python.org/downloads 改环境变量 [右键计算机]-->[属性]-->[高级系统设置]-->[ ...

  8. windows多线程编程实现 简单(1)

    内容:实现win32下的最基本多线程编程 使用函数: #CreateThread# 创建线程 HANDLE WINAPI CreateThread( LPSECURITY_ATTRIBUTES lpT ...

  9. 【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)

          一,软件准备 coreseek4.1 (包含coreseek测试版和mmseg最新版本,以及测试数据包[内置中文分词与搜索.单字切分.mysql数据源.python数据源.RT实时索引等测 ...

  10. 轮播插件unsilder 源码解析(二)

    $.fn._active = function(className) { //当前的添加class,相邻元素去除class return this.addClass(className).siblin ...