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. 我要成为前端工程师!给 JavaScript 新手的建议与学习资源整理

    来源于:http://blog.miniasp.com/post/2016/02/02/JavaScript-novice-advice-and-learning-resources.aspx 今年有 ...

  2. PHP SPL(PHP 标准库)

    一.什么是SPL? SPL是用于解决典型问题(standard problems)的一组接口与类的集合.(出自:http://php.net/manual/zh/intro.spl.php) SPL, ...

  3. Leetcode 75. Sort Colors

    Given an array with n objects colored red, white or blue, sort them so that objects of the same colo ...

  4. ubuntu下载工具uget和aria2

    一直想在ubuntu下找到个和迅雷差不多的下载工具.在网上找到了. 这篇文章完全是抄袭整理网上的. 我的系统版本是ubuntu14.04. 1.安装uget和aria2 sudo apt-get in ...

  5. centos手动编译安装apache、php、mysql

    64位centos 5.5手动安装lamp,要求curl.json.pdo_mysql.gd,记录如下. centos 5.4.5.5.5.6的内核都是2.6.18,都可以安装php 5.3. 卸载旧 ...

  6. HAOI2017前

    NOIP后想换一个看起来比较高端的博客,于是尝试用github+hexo建站,地址大概是这样的,搞了一周左右.. 最终以失败告终,一是代码高亮有bug,二是数学公式有bug,三是博文没法快速搬迁QAQ ...

  7. 解决ubuntu16.04软件中心闪退的问题

    依次执行下列命令 sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install --reinstall software-cen ...

  8. tomcat配置

    修改可用内存大小 D:\escloud\apache-tomcat-7.0.63\bin 下修改catalina.bat set "JAVA_OPTS=-Xms1024m -Xmx1024m ...

  9. 文件IO操作..修改文件的只读属性

    文件的IO操作..很多同行的IO工具类都是直接写..但是如果文件有只读属性的话..则会写入失败..所以附加了一个只读的判断和修改.. 代码如下: /// <summary> /// 创建文 ...

  10. python和数据科学(Anaconda)

    Python拥有着极其丰富且稳定的数据科学工具环境.遗憾的是,对不了解的人来说这个环境犹如丛林一般(cue snake joke).在这篇文章中,我会一步一步指导你怎么进入这个PyData丛林. 你可 ...