【监督学习:线性回归和分类】2.多参数的回归
多维特征
对于一个线性回归来说,可能涉及的参数往往不止一个。
利用房价模型的例子,我们可能会用到房子的面积、房间数量、建造时间等多个特征来预测房价。
多维特征的表示
在多维特征的情况下,我们有以下表示方法
:特征的数量
:第个训练样本,即特征矩阵的第行,是一个向量
:第个训练样本的第个特征,即特征矩阵的第行第列,是一个实数
多维特征的假设函数
对于多维特征的情况,我们的假设函数可以表示为
或写作
其中,,是偏置项。
多变量梯度下降
算法目标
对于多维特征的情况,我们的目标是找到一组参数,使得代价函数最小。
算法描述
多变量梯度下降算法描述如下:
原始形式:
带入代价函数:
求导后:
梯度下降法的实践
特征缩放
在多维特征的情况下,我们需要对特征进行缩放,使得各个特征的取值范围相近,这样可以加快梯度下降的收敛速度。
在房屋价格的例子中,尺寸的取值范围可能是100-2000平方英尺,而卧室数量的取值范围可能是1-5间,绘制出的代价函数图像可能是一个很扁的碗状图,这样梯度下降的收敛速度会很慢。
特征缩放的方法
以特征值为例,设的取值范围为300-2000,可以使用的特征缩放方法有以下几种:
- 将特征值除以最大值,使得特征值的范围在0-1之间
- 均值归一化,将特征值减去均值,再除以最大值与最小值的差,使得特征值的范围在-1到1之间
- Z-score归一化,将特征值减去均值,再除以标准差,使得特征值的范围在-1到1之间
标准差:
学习率
收敛的判断
根据迭代次数和代价函数的值,可以绘制学习曲线。
如果梯度下降正确工作,则代价函数应该随着迭代次数的增加而减小,如果代价函数随着迭代次数的增加而增大,则可能是学习率过大导致的,此时需要减小学习率。
当代价函数的值几乎不再变化时,可以认为梯度下降已经收敛,此时可以停止迭代。
自动收敛
如果学习率设置得合理,梯度下降算法可以自动收敛,此时不需要手动设置迭代次数。
设置自动收敛的阈值,当两次迭代的代价函数的差值小于时,认为梯度下降已经收敛,此时可以停止迭代。
通常的取值为、或
学习率的选择
梯度下降算法中每次迭代受到学习率的影响:
- 如果过小,则梯度下降收敛速度很慢
- 如果过大,则梯度下降可能不会收敛,甚至会发散
常用的学习率包括:
0.01、0.03、0.1、0.3、1、3、10
通过尝试不同的学习率,可以选择出合适的学习率。
特征工程和多项式回归
特征工程
特征工程是机器学习中非常重要的一部分,特征工程是利用相关知识来设计新特征,通过变化或者组合原有特征,使得特征更加适合机器学习算法。
以房价预测为例,我们可以通过房屋面积的长和宽来计算房屋面积,这样可以得到一个新的特征,即房屋面积。
设房屋面积为,房间数量为,则
多项式回归
在实际应用中,我们可能会遇到非线性的数据,此时可以使用多项式回归。
需要注意的是,多项式回归中的特征缩放非常重要,如果不进行特征缩放,可能会导致梯度下降收敛速度很慢。
本文作者:asdio
本文链接:https://www.cnblogs.com/agitm/p/17724019.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报