Andrew Ng Machine Learning 专题【Linear Regression】
来源:互联网 发布:人自己人不亦重乎? 编辑:程序博客网 时间:2024/04/28 13:01
此文是斯坦福大学,机器学习界 superstar — Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记。力求简洁,仅代表本人观点,不足之处希望大家探讨。
课程网址:https://www.coursera.org/learn/machine-learning/home/welcome
Week 3: Logistic Regression & Regularization 笔记:http://blog.csdn.net/ironyoung/article/details/47398843
Week 2:Linear Regression with Multiple Variables
- Multivariate Linear Regression
- Week 1 讨论仅一个特征,即仅有一个未知量
x 影响了目标y 的取值。如果现在有很多特征?现在我们有x 1 ,x 2 ...x n 影响了目标y 的取值。 - 此时需要区分的是变量标记规则:
x i 表示的是第i 个特征x (i) 表示的是第i 个样本,一个样本是由多个特征组成的列向量- 例如:
x (2) =[x (2) 1 ,x (2) 2 ,x (2) 3 ,...,x (2) n ] T - 综上,我们有
h θ (x)=θ 0 +θ 1 ∗x 1 +θ 2 ∗x 2 +...+θ n ∗x n 。可以视为,每个样本都多出一个特征:x 0 =1 ,这样表示有利于之后的矩阵表示
- Week 1 讨论仅一个特征,即仅有一个未知量
多变量梯度下降法:
样本一共有m个
cost function:J(θ 0 ,θ 1 )=12m ∑ i=1 m (h θ (x (i) )−y (i) ) 2
update:θ j :=θ j −α1m ∑ i=1 m ((h θ (x (i) )−y (i) )∗x (i) j ) Feature Scaling(特征缩放)
- 很简单,就是将每种特征的数据范围限定在同一个数量级。例如
x 1 ∈[0,2000],x 2 ∈[1,5] ,这样会导致迭代次数过多。这时候,如果我们找到一种mapping方式,使得两者属于同一个数量级的范围内,可以有效减少迭代次数 - 注意:无法降低单次的迭代时间,但是却能有效地降低迭代次数
- 其实方法很多,这有一种:
x=x−mean(x)max(x)−min(x) 。其中,mean(x) 表示向量每个元素的平均值,max(x) 表示向量中最大元素,min(x) 表示向量中最小元素
- 很简单,就是将每种特征的数据范围限定在同一个数量级。例如
- Learning Rate
- learning rate 是机器学习中的一个不稳定因素,如何判断选取的 learning rate 是合适的?我们可以看看以下这幅图:
- 如果以迭代次数为横坐标,cost function 结果为纵坐标,绘制的图像是递减的,说明 learning rate 选择的是恰当的。如果碰到下图所显示的三种情况,那就只有一条路:减小 learning rate
- 但是 learning rate 太小同样会导致一个问题:学习过慢。所以,只能靠试:0.001,0.003,0.01,0.03,0.1,0.3……
- learning rate 是机器学习中的一个不稳定因素,如何判断选取的 learning rate 是合适的?我们可以看看以下这幅图:
- Polynomial Regression(多项式回归,不同于多变量线性回归)
- 有时候,我们需要自己创造一些“特征”,来拟合一些非线性分布情况
- 例如:
h θ (x)=θ 0 +θ 1 ∗x 2 +θ 2 ∗x √ ,看上去只有一个特征x ,但我们完全可以理解为x 2 和x √ 都是单独的新特征 - 以后的课程会具体讲述如何选择这些特征
- Normal Equation
- 梯度下降法可以用于寻找函数(cost function)的最小值,想一想,初高中的时候我们使用的是什么方法?最小值点的导数为零,然后解方程
- 将导数置为零这种方法即 Normal Equation。if
θ∈R n+1 ,∂∂θ i J(θ)= set 0 for everyi . - 上文提过,增加一个全1分量
x 0 后得到x=[x 0 ,x 1 ,x 2 ,x 3 ,...,x n ] T - 可以得到:
xθ=y⇛x T xθ=x T y⇛θ=(x T x) −1 x T y - matlab编程十分简单:
theta=pinv(X ′ ∗X)∗X ′ ∗y; - Normal Equation 有以下优缺点:
- 不需要 learning rate,也就不需要选择;
- 不需要迭代,不需要考虑收敛的问题;
- 当特征非常多的时候,因为涉及求逆操作,会非常慢(注:方阵才有逆矩阵)
- Octave Tutorial
这一部分十分简单,其实就是MATLAB的使用方法。建议不论是否初学者都去看看,会有收获。
谈到一个问题:如果现有的样本数,小于每个样本所有的特征数怎么办?去除多余的特征(PCA?)。特征过多,也可能会导致矩阵不可逆的情况(不甚理解)。
下面记录一些觉得挺有趣的命令:- ~=:不等于号
- xor(0, 1):异或操作
- rand(m, n):0~1之间的大小为m*n的随机数矩阵;randn:产生均值为0,方差为1的符合正态分布的随机数(有负数)
- length(A):返回A中行、列中更大值
- A(:):将矩阵A变为列向量形式,不论A是向量还是矩阵
- sum(A,1):每列求和得到一个行向量;sum(A,2):每行求和得到一个列向量
- pinv:伪求逆;inv:求逆
- imagesc(A):帅爆!根据矩阵中每个值绘制各种颜色的方块
- A.^2 ~= A^2,后者是两个矩阵相乘
- Submitting Programming Assignments
其实看看视频就行了,主要要注意,submit() 时输入的Token,不是Coursera 的密码,而是作业的密码,在这里:
编程作业答案:https://github.com/cnauroth/machine-learning-class
1 0
- Andrew Ng Machine Learning 专题【Linear Regression】
- Machine Learning by Andrew Ng ---Linear Regression with one variable
- Machine Learning by Andrew Ng---Linear Regression with multiple variables
- Linear Regression代码-Andrew NG Machine Learning Ex2
- Multivariate Linear Regression代码-Andrew NG Machine Learning Ex3
- Machine Learning -- Linear Regression with Multiple Variables(Andrew Ng)
- Machine Learning -- Linear Regression with Multiple Variables(Andrew Ng)
- Andrew Ng Machine Learning 专题【Logistic Regression & Regularization】
- [Machine Learning (Andrew NG courses)]II. Linear Regression with One Variable
- [Machine Learning (Andrew NG courses)]IV.Linear Regression with Multiple Variables
- Machine Learning 线性回归( Linear Regression) Andrew Ng 课程练习 Matlab Script 详细解析
- Andrew NG 《machine learning》week 2,class2 —Multivariaze Linear Regression
- #“Machine Learning”(Andrew Ng)#Week 1_1:Introduction/Supervised/Un supervised/Linear regression
- #“Machine Learning”(Andrew Ng)#Week 2_1:Multivariate Linear Regression
- Andrew Ng Machine Learning 专题【Introduction】
- Andrew Ng Machine Learning 专题【K-Means】
- Andrew Ng Machine Learning 专题【PCA】
- Andrew Ng Machine Learning 专题【Anomaly Detection】
- VRRP(VirtualRouterRedundancyProtocol,虚拟路由冗余协议
- hdu1495 非常可乐(简单BFS)
- java学习提纲
- 国外程序员整理的 C++ 资源大全
- PAT (Advanced Level) 1074. Reversing Linked List (25) 翻转链表
- Andrew Ng Machine Learning 专题【Linear Regression】
- udelay、mdelay、ndelay、msleep使用比较说明
- JDK和JRE的区别
- python的正则表达式 re
- 基于注解的ssh框架之spring配置文件
- 如何使用免费餐饮收银管理系统搭建一个外卖订餐平台网站?
- RAC Basic Operators_part2
- This message is already in use错误及解决
- html标签<一>