机器学习之回归
一、线性回归
监督学习分为回归和分类:
- 回归(Regression):标签连续
- 分类(Classification):标签离散
1.1 回归的概念
-
线性回归(Linear Regression):是一种通过属性的线性组合来进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化。
-
线性回归-符号约定:
- 𝑚 代表训练集中样本的数量
- 𝑛 代表特征的数量
- 𝑥 代表特征/输入变量
- 𝑦 代表目标变量/输出变量
- (𝑥, 𝑦) 代表训练集中的样本
- (𝑥(𝑖), 𝑦(𝑖)) 代表第𝑖个观察样本,𝑥(𝑖)是特征矩阵中的第𝑖行,是一个向量,代表特征矩阵中第 𝑖 行的第 𝑗 个特征
- ℎ 代表学习算法的解决方案或函数也称为假设
- =ℎ(𝑥),代表预测的值
-
线性回归-算法流程:
- 损失函数(Loss Function):度量单样本预测的错误程度,损失函数值越小,模型就越好。常用的损失函数包括:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数等。
- 代价函数(Cost Function):度量全部样本集的平均误差。常用的代价函数包括均方误差、均方根误差、平均绝对误差等。
- 目标函数(Object Function)代价函数和正则化函数,最终要优化的函数。
损失函数采用平方和损失:
L()=
一组 𝑤 ,使得残差平方和最小:
J(w)=
备注:损失函数的系数1/2是为了便于计算,使对平方项求导后的常数系数为1,这样在形式上稍微简单一些。
-
线性回归-最小二乘法(LSM)
二、梯度下降
2.1 梯度下降的三种形式
- 批量梯度下降(Batch Gradient Descent,BGD):梯度下降的每一步中都用到了所有的训练样本。
- 随机梯度下降(Stochastic Gradient Descent,SGD):梯度下降的每一步中,用到一个样本,在每一次计算之后便更新参数 ,而不需要首先将所有的训练集求和。
- 小批量梯度下降(Mini-Batch Gradient Descent,MBGD):梯度下降的每一步中,用到了一定批量的训练样本。
批量梯度下降(Batch Gradient Descent):
随机梯度下降(Stochastic Gradient Descent):
梯度下降的每一步中,用到一个样本,在每一次计算之后便更新参数,而不需要首先将所有的训练集求和:
小批量梯度下降(Mini-Batch Gradient Descent):每计算常数𝑏次训练实例,便更新一次参数 𝑤。
总结:
- 𝑏=1(随机梯度下降,SGD)
- 𝑏=m(批量梯度下降,BGD)
- 𝑏=batch_size(小批量梯度下降,MBGD),batch_size通常是2的指数倍,常见有32,64,128等。
2.2 梯度下降与最小二乘法比较
梯度下降:需要选择学习率𝛼,需要多次迭代,当特征数量𝑛大时也能较好适用,适用于各种类型的模型。
最小二乘法:不需要选择学习率𝛼,一次计算得出,需要计算 ,如果特征数量𝑛较大则运算代价大,因为矩阵逆的计算时间复杂度为𝑂,通常来说当𝑛小于10000 时还是可以接受的,只适用于线性模型,不适合逻辑回归模型等其他模型。
2.3 数据归一化/标准化
为什么要标准化/归一化?
-
提升模型精度:不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。
-
加速模型收敛:最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。
-
数据归一化的目的是使得各特征对目标变量的影响一致,会将特征数
据进行伸缩变化,所以数据归一化是会改变特征数据分布的。 -
数据标准化为了不同特征之间具备可比性,经过标准化变换之后的特
征数据分布没有发生改变。 -
当数据特征取值范围或单位差异较大时,最好是做一下标准化处理。
需要做数据归一化/标准化:线性模型,如基于距离度量的模型包括KNN(K近邻)、K-means聚类、感知机和SVM。另外,线性回归类的几个模型一般情况下也是需要做数据归一化/标准化处理的。
不需要做数据归一化/标准化:决策树、基于决策树的Boosting和Bagging等集成学习模型对于特征取值大小并不敏感,如随机森林、XGBoost、LightGBM等树模型,以及朴素贝叶斯,以上这些模型一般不需要做数据归一化/标准化处理。
三、正则化
3.1 过拟合和欠拟合
3.2 过拟合的处理
- 获得更多的训练数据:使用更多的训练数据是解决过拟合问题最有效的手段,因为更多的样本能够让模型学习到更多更有效的特征,减小噪声的影响。
- 降维:即丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如PCA)。
- 正则化:正则化(regularization)的技术,保留所有的特征,但是减少参数的大小(magnitude),它可以改善或者减少过拟合问题。
- 集成学习方法:集成学习是把多个模型集成在一起,来降低单一模型的过拟合风险。
3.3 欠拟合的处理
- 添加新特征:当特征不足或者现有特征与样本标签的相关性不强时,模型容易出现欠拟合。通过挖掘组合特征等新的特征,往往能够取得更好的效果。
- 增加模型复杂度:简单模型的学习能力较差,通过增加模型的复杂度可以使模型拥有更强的拟合能力。例如,在线性模型中添加高次项,在神经网络模型中增加网络层数或神经元个数等。
- 减小正则化系数:正则化是用来防止过拟合的,但当模型出现欠拟合现象时,则需要有针对性地减小正则化系数。
3.4 正则化
正则化可以产生稀疏模型:正则化是指在损失函数中加入权值向量w的绝对值之和,的功能是使权重稀疏。
正则化可以防止过拟合:正则化在损失函数中加入权值向量w的平方和,的功能是使权重平滑。
图上面中的蓝色轮廓线是没有正则化损失函数的等高线,中心的蓝色点为最优解,上图、下图分别为𝑳1、𝑳𝟐正则化给出的限制。
可以看到在正则化的限制之下,正则化给出的最优解w是使解更加靠近原点,也就是说正则化能降低参数范数的总和。正则化给出的最优解w是使解更加靠近某些轴,而其它的轴则为0,所以正则化能使得到的参数稀疏化。
四、回归评价指标
五、参考资料
- Prof. Andrew Ng. Machine Learning. Stanford University
- 《统计学习方法》,清华大学出版社,李航著,2019年出版
- 《机器学习》,清华大学出版社,周志华著,2016年出版
- Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer-Verlag, 2006
- Stephen Boyd, Lieven Vandenberghe, Convex Optimization, Cambridge University Press, 2004
- https://www.icourse163.org/course/WZU-1464096179
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)