MachineLearning(Andrew)Week2

本文介绍了多变量线性回归的概念及应用,包括特征选择、多项式回归、特征归一化和学习率的选择等内容,并对比了梯度下降法与正规方程法在求解θ上的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Machine LearningWeek2

Linear Regression with multiple variable

1、多变量Multitude feature

上面一篇说到单变量线性回归,这篇来说说多变量线性回归

回顾单变量线性回归,说到价格和面积的关系,给我们的变量就只有一个面积。实际上,如果去预测房屋价格,还得考虑很多因素。比如面积,房间数量、几层、房屋年龄……

 

上面m=4,说的是给了四个房屋。x1是面积,x2房间数量,x3是层数,x4是房屋年龄等

这个表示第i个房屋第j个特征。

这样变量就多了,也不太适用了。

需要这样的假设h

 

为了方面,我们写成向量的形式,同时增加一个x0=1(就是为了和θ0凑起来)

这样,我们把θ和x都同时写成向量的形式:


 所以h就可以写成

2、多变量梯度下降(Gradient descent for multiple variables 

和单变量的区别就是θ变多了,对每个θ都要梯度下降。

对于多变量线性回归,在梯度下降前要对数据做些处理。

(1)特征归一化Feature scaling

Feature scaling is a method used to standardize the range of independent variables or features of data. 

In data processing, it is also known as data normalization and is generally performed during the data 

preprocessing step.(from wikipedia

看房屋的数据集,对于面积大小范围在0……3000,房间数和楼层数在十以内,房屋年龄在百以内,这些特征数值上存在很大差异性。为了使梯度下降算法收敛快些,需要把这些特征处理成尺度相似的。就是把所有特征的值都归一化到[-1,1]区间。再解释清楚一些,多变量是多维的线性回归,归一化可以防止某些特征对数据影响过大。比如上面房屋面积的数值很大,就有可能对结果产生致命的决定性影响。归一化是将各个特征自身的数据特性通过数学的方法抹掉让各个特征值获得相同的竞争能力,从而可以使用一些更通用性的解决方法将视野重点从局部数据解放出来。(参考来自知乎)

怎么做呢?用均值归一化(Mean Normalization)

用这个式子:

xi就是第i特征,μ是第i个特征所有实例值的平均,S就是第i个特征的标准差(就是这个特征中最大的值与最小的值的差)

如:

(2)学习率的选择

为了保证梯度下降的正确性,每次在迭代后都要调试debug,就是看看cost function Jθ))是不是下降了,下降了多少。直到下降的值限制在某个数(阈值)时,就说成本函数收敛了(下图中选的阈值ε为10^-3)。这比较好理解,刚开始错误比较多,随便修改一些就会使成本降低,使情况好转,随着错误越来越少,越来越难发现,成本降低越困难。

这里,学习率α是控制一步下降有多大。所以学习率α的选择关系到收敛的效果。前面提到过很多次,α如果选的太小,虽然可以保证收敛,但每次迭代的Jθ)(成本函数)降低的就少,这样花的时间就多。α如果选的太大,就有可能使Jθ)跳太大步伐,随着迭代增加,甚至不收敛。(忘记的看看Week1

所以,想了个两全的办法,就是刚开始的α比较大,随着迭代次数增加,慢慢的减小α。就像是我们考试时,做完了题目后,开始检查错误了。开始的时候错误比较多,成本降低容易,选个大的α,只要一眼望去就可以很快发现大错误,使效果变得比较好;随着错误越来越少,找起来越来越困难,需要很大的耐心,所以减小α,使人细细的搜寻,慢慢修正小错误。直到好像试了很多遍,都不能发现什么了,就决定交卷子。

那么α到底设多大,减小又要怎么减呢?如下图,根据Andrew 的经验…… 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1……是3倍的关系递增

比如试α=0.1,发现太过了,就试0.03;如果太小了就试0.3……

3、特征和多项式回归

1)特征的选择

有的时候收集的/给定的数据不一定就符合我们的要求,比如我们要预测房屋面积和价格的关系,但是给的数据是房屋的长、宽,我们可以选择


也可以列出x=X1*X2X1为长,X2为宽,x为面积


2)多项式回归

因为特征可以像上面所列方式选择,所以模型也可以更灵活。


这个模型不都适用于所有的类型,我们也可以选择别的模型。

 

如该图所示,预测房屋价格和面积的关系,当我们选用二次方程时,在前面的部分表现的还不错,但是随着size增加,价格却往下掉(如图中蓝色虚线所示),这显然是不合常理的。所以改选用三次方程

所以模型就变为图中绿色框中所示,需要注意的是的数值归一化。

除了上面说的可以n次方,开方也可以,如

4、正规方程(Normal Equation

正规方程也是用来求θ的方法,与梯度下降不一样在于不需要迭代,是线性代数的角度来求解。

如上面的截图,当我们求解一维线性回归时候,最低点梯度为0,即


来推导一下:


注意到这个矩阵求逆,所以对这个矩阵有要求,它要有逆,要是非奇异阵,行列式不为0(可以了解下线性代数中相关概念)

来总结下梯度下降和正规化方程

梯度下降正规化
要选学习率α不需要α
需要多次迭代不需要迭代
即使n很大(n=10^6),效果也挺好         n变大(n<10000),就会很慢,主要是矩阵的逆运算开销很大

 所以,正规化方程强调求矩阵的逆,当n很比较大,数据又多的时候,求逆是非常麻烦的,可喜的是OctaveMatlab中有之间求逆的函数:

这给我们带来了巨大方便。但是又有一个问题,就是,如果矩阵没有逆呢?

如果是一个奇异矩阵,就没有逆。

造成是奇异矩阵,有两个原因

1)特征冗余(线性相关),比如有房屋的面积这个特征,又有房屋的长、宽这两个特征

2)特征的数量过多,多到什么程度,就是比例子还多。比如给了四所房屋做训练数据,但是房屋的特征就有五个(mn


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值