Linear regression with multiple variables(多特征值的线性回归)

本文深入探讨了线性回归在面对多个特征时,通过梯度下降法寻找最优解的过程及优化策略。包括特征归一化、学习速率选择、多项式回归和正规方程等核心概念。通过实例分析,阐述了如何有效地应用这些技巧以提高模型的收敛速度和准确性。

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

背景:

在实际情况下,房屋的价格不是单单与一个特征值相关,其往往更像下图这种情况:


它与房子的大小、房间的数量、楼层的数量、房屋的年龄等一系列因素有关。

所以其假设函数可能是以下形式:


形如上式:当假设函数预测者与多个features相关时,梯度下降函数编写如下:


多数情况下,X0会等于1,即假设函数通常会有一个常数项

下边是相应的梯度下降函数:


当feature的数量为1时:


当feature的数量>1时:


通常情况下theta0的所对应的X0通常为常数。

 

 

线性回归在多特征值的情况下,theta局部最佳值的寻找技巧:


左边情况,在对theta进行梯度下降计算时


由于的值过大,所以导致寻找theta的路径过于抖动,所花时间过长,就如上图左边所示。

而右图情况当确定各个feature的范围时,我们对x/scale,其就会变成个一个绝对值小于等于1的数字,这样寻找theta局部最优解时所花费的时间就要小很多。

所以我们的思想是:


在不影响正确结果的情况下,将x的范围尽量确定在一个比较小的范围内。

所用的方法为:mean normalization(均值归一化/特征缩放)


方法说明: 我们用 (x-average value of x)/(range ofx)      range of x = max of x – min of x 。



技巧2:关于下降速率 alpha的技巧

学习速率也是保证梯度下降算法能快速准确聚合的一个关键因素。


确保梯度下降算法正常运行的技巧

如何选择正确的学习速率alpha.


如果学习速率选择正确的话,cost function在每次迭代以后都会减少,当迭代到一定地步的时候cost function J的大小将基本保持不变。确定一个阀值是关键并且是非常困难的,即当每次减少的数量小于多少时我们就认定J每次减少的大小可以忽略不计。

 

一些表现出costfunction没有正常工作的情况:


当J的值在每次迭代后,它的值持续增加说明alpha没有正确选择,正如上图右边所示,所以我们要做的是缩小alpha的值。

 

还有一次情况,当alpha的值选择的过于小的时候,cost function J需要花费过长时间去收敛到最低点。

 

总结:


如果学习速率选择过小的话,聚合过程将是一个非常漫长的过程,如果学习速率选择过大的话可能会出现J会随着每次迭代变得越来越大,Ng老师的建议是

措施按数量级选择alpha进行实验。每次十倍地增长alpha的值,多次试验选择最适合的alpha值。


Features andpolynomial regression(特征值和多项式回归)

         根据实际情况,假设等式可能是一次方可能是二次方等等

Normal equation:

一种更好的方式寻找参数theta


Normal equation算法:

其主要用到的是线性代数求逆矩阵的思想。

Gradient descent算法和normal equation 算法比较:

当feature非常大,Ng老师给的建议是如果feature的纬度是100000时可能就要选择gradient descent 算法,因为矩阵运算也是一个比较费cpu和内存的运算。


Normal equationand non-invertibility(正规方程和不可逆性):

这节课讲的正好是我的迷惑所在,可能是当时大一的线性代数没有学好吧…好,让我们来看一下不可逆性:

在什么情况下可能出现X’X不可逆?


但是Ng老师指出,我们在训练数据的时候所用的是伪逆(另一种求逆矩阵的库),所以一般不会出问题(待学习)。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值