简单来说,就是将样本的特征矩阵映射到样本标签空间。
回归分析帮助我们理解在改变一个或多个自变量时,因变量的数值会如何变化。
线性模型
线性回归用于建立因变量和一个或多个自变量之间的线性关系模型。在线性回归中,假设因变量(被预测变量)与自变量(预测变量)之间存在着线性关系,也就是说,因变量的数值可以通过自变量的线性组合来预测。
普通最小二乘线性回归。通过最小化实际观测值与模型预测值之间的误差平方和,可以找到最佳的参数估计值,从而建立一个最佳拟合的线性回归模型。线性回归常用于预测、关联分析、趋势分析等领域。
计算误差平方和(Sum of Squared Errors,SSE)用来衡量线性回归模型预测值与实际观测值之间的差异程度的统计量。计算得到的误差平方和越小,说明模型对数据的拟合效果越好。在线性回归中,通常使用最小化SSE的方法来找到最佳拟合的回归模型参数。
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
-
套索回归(Lasso)是一种使用 L1 先验作为正则化器进行训练的线性模型。它是一种线性回归的变体,它在常规线性回归的基础上加入了正则化项,以减小模型的复杂度和防止过拟合。
-
岭回归。岭回归是一种结合了 L2 正则化项的最小二乘线性回归,适用于共线性数据的有偏估计回归。这是一种改良的最小二乘估计法,它放弃了最小二乘法的无偏性,以损失部分信息和降低精度为代价,使得回归系数更符合实际、更可靠。对于病态数据,其拟合能力强于最小二乘法。然而,它不具备特征选择的能力。
-
随机梯度下降回归。通过随机梯度下降(Stochastic Gradient Descent, SGD)来最小化正则化经验损失。在每次采样时,都会估算损失梯度,随着学习率的下降,模型会相应地更新。正则化器是一种添加到损失函数中的惩罚项,它使用欧几里得平方准则 L2 或绝对准则 L1 或两者的组合(弹性网)将模型参数向零向量收缩。如果参数更新因正则因子而越过 0.0 值,更新将被截断为 0.0,以便学习稀疏模型并实现在线特征选择。与普通最小二乘线性回归不同,随机梯度下降回归通过迭代更新参数来逐步优化目标函数。在每一次迭代中,随机梯度下降算法通过计算目标函数关于参数的梯度,并根据梯度的反方向更新参数。由于每次迭代只使用部分样本(随机抽取的样本)来估计梯度,因此称为“随机”梯度下降。对于线性回归问题,随机梯度下降可以通过不断迭代更新参数β0和β1,以使得损失函数(通常是残差平方和)不断减小,从而找到最优的拟合直线。随机梯度下降的优点在于能够处理大规模数据和高维特征,同时相比于普通最小二乘方法,能够更快地收敛。需要注意的是,随机梯度下降可能会产生一定的随机性,而不是每次迭代都能得到完全一样的结果。因此,对于随机梯度下降算法来说,合适的学习率和迭代次数的选择非常重要,以确保算法能够在合理的时间内收敛到最优解。
-
弹性网络回归(Elastic Net Regression)是一种线性回归模型,它使用结合了 L1 和 L2 先验的正则化器,结合了 Lasso 回归(L1 正则化)和 Ridge 回归(L2 正则化)的线性回归方法。弹性网络回归通过同时考虑 L1 和 L2 正则化项,可以在模型拟合过程中实现变量选择(稀疏性)和解决多重共线性问题。弹性网络回归在实际应用中常用于处理具有大量特征的数据集,尤其是存在多重共线性的情况下。相较于单独使用 Lasso 或 Ridge 回归,弹性网络回归更有利于稀疏性特征选择,并能更好地处理高维数据。
-
最小角回归模型(Least Angle Regression,简称 LAR)。最小角回归是一种适用于高维数据的回归算法,通过在每一步中选择与当前残差具有最大相关性的特征向量来构建模型。当预测变量(p)大于观察样本数(n)时,LAR 可以解决线性回归问题。其核心思想是将预测目标依次分解为特征向量的线性组合,最终使得残差向量与所有特征均线性无关,从而最小化。在每一步中,LAR 都会找到与目标最相关的特征。当多个特征具有相等的相关性时,LAR 不是沿着相同的特征继续进行,而是沿着特征之间角平分线的方向进行。LAR 是前向梯度算法与前向选择算法的折中,可以产生分段线性结果的完整路径,这在模型的交叉验证中极为有用。
LARS方法的步骤如下:
-
1、初始化所有系数为0。
- 2、计算当前残差与每个特征的相关性,并选择与残差相关性最高的特征作为新的系数方向。
- 3、将当前系数沿着新的系数方向移动,直到另一个特征的相关性超过了当前最高相关性。
- 4、如果两个或多个特征有相同的相关性,则同时移动多个特征。
- 5、重复步骤3和4,直到达到将残差减少到零的目标或者达到设定的模型大小。
-
正交匹配追踪算法(Orthogonal Matching Pursuit,简称 OMP)。这是一种贪心的压缩感知恢复算法。它通过迭代地选择与当前残差的投影最为相关的原子(原子是字典中的基本元素,如稀疏表示中的特征向量)来重建信号。OMP 用于近似拟合一个带约束的线性模型,其中约束影响模型的非零系数。OMP 是一种前向特征选择方法,可以近似一个固定非零元素的最优向量解,这与最小角回归类似。OMP 的每一步选择都高度依赖于当前的残差,这是其基于贪心算法的特性。OMP 与匹配追踪(MP)相似,但相对于 MP 更优,因为它可以在每次迭代中利用正交投影重新计算残差,从而对先前选择的字典元素进行重建。
OMP算法的基本步骤如下:
- 初始化:将残差设置为观测信号,将估计的稀疏系数设置为零。
- 字典匹配:计算残差与字典中所有原子的投影,选择具有最大投影的原子,并将其添加到估计的稀疏系数中。
- 重构:使用选定的原子来更新重构信号。
- 更新残差:更新残差为观测信号减去重构信号。
- 终止条件:重复2-4步骤直到满足停止准则,如残差足够小或达到最大迭代次数。
OMP算法的关键思想是,每一步都选择一个原子,该原子与当前残差的投影最大。通过迭代这个过程,算法可以逐步逼近真实的稀疏表示。
在信号处理和机器学习领域,OMP算法通常用于处理具有大量特征但只有少量有效特征的问题,例如压缩感知、图像处理、语音信号处理等。
-
贝叶斯 ARD 回归。ARD(Automatic Relevance Determination)自动相关性确定,它可以用于处理具有大量特征的回归问题,并自动确定哪些特征是对预测目标有用的,从而实现特征选择和模型简化。该方法使用 ARD 先验来拟合回归模型的权重,其中权重假设为高斯分布。同时,它会估计参数 lambda(权重分布的精度)和 alpha(噪声分布的精度),这个估计过程是通过迭代程序(即证据最大化)来完成的。具体如下:在Bayesian ARD 回归中,模型假设目标变量与特征之间的关系由一个线性模型表示。通过将参数和噪声引入贝叶斯框架,可以对参数的先验分布进行建模,并使用贝叶斯推断来更新参数的后验分布。Bayesian ARD 回归的关键之处在于,它引入了一种稀疏先验分布,使得模型可以自动地确定哪些特征是相关的(非零权重)并将无关特征的权重收缩为零。Bayesian ARD 回归的核心思想是在模型训练的过程中,通过考虑参数的后验概率,剔除不相关的特征以实现模型的稀疏性。这样,Bayesian ARD 回归可以有效地处理高维数据,并且可以在一定程度上防止过拟合,提高模型的泛化能力。
-
贝叶斯岭回归。拟合一个贝叶斯岭模型。有关此实现的详细信息以及正则化参数 lambda(权重的精度)和 alpha(噪声的精度)的优化。
-
异常值鲁棒回归器 包括 Huber 回归、分位数回归、RANSAC 回归和 Theil-Sen 回归。
-
广义线性模型(GLM)用于回归预测,包括泊松分布、Tweedie 分布和 Gamma 分布。这些模型不仅允许预测目标具有正态分布以外的误差分布,还可以处理非正态分布的因变量。此外,它们还可以通过链接函数将自变量和因变量联系在一起。值得一提的是,GLM 可以适用于多种类型的数据,如连续型数据、计数型数据和二分类数据等。
非线性模型
非线性回归通过特征的非线性组合交互来预测连续值标签。在回归预测实践中,集成树模型是最常用的,因为它们具有适应异构数据、计算高效、泛化性能好和简单易用等优势。
-
决策树回归。CART 决策树可以应用于回归预测。当进行预测时,新样本从根节点开始,根据其特征值在每个节点被分配到左子节点或右子节点,直至到达叶节点。这个叶节点中所有训练样本标签的平均值就是新样本的预测值。
决策树的构建过程是一个逐步选择最优特征进行分裂的过程。一般来说,构建决策树的关键步骤包括:
- 1、特征选择:根据某个准则(如信息增益、基尼系数等),选择最佳的特征作为当前节点的划分特征。
- 2、结点划分:根据选定的划分特征,将数据集划分为不同的子集。
- 3、递归构建:对每个子集递归地重复上述过程,直到满足停止条件(如叶节点中样本属于同一类别或达到预定深度)。
- 4、剪枝:避免过拟合,对生成的决策树进行剪枝来降低模型复杂度。
决策树也存在容易过拟合的问题,特别是在处理高维数据和复杂关系时,可以采用剪枝、集成学习等方法来提升决策树模型的性能和泛化能力
使用 Python 的 Scikit-learn 库构建决策树模型
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score
-
支持向量机回归。支持向量机能够应用于回归预测任务,主要得益于其ε-不敏感损失函数和核函数技巧。这两个特性使得 SVR 能够处理线性和非线性问题,并防止过拟合,因此它是一种有效的回归预测模型。SVM 回归的目标是找到一个函数,使得样本点到这个函数的距离尽可能小,并且在一定程度上允许一些点超出这个距离,这个距离被称为容忍度。与传统的回归方法不同,SVM 回归不仅考虑了预测的准确性,还考虑了预测值偏离真实值的程度。
-
KNN 回归。K最近邻(K-Nearest Neighbors,KNN)算法不仅可以用于分类问题,还可以用于回归问题,这种方法被称为K最近邻回归(K-Nearest Neighbors Regression)。KNN 是一种基于实例的学习方法,也可以称为懒惰学习。其工作原理是:当有一个新的数据点需要预测时,KNN 会在已知的数据集中找出与这个新数据点最接近的 K 个点,然后根据这些邻居的属性来预测新数据点的属性。在分类任务中,KNN 通常会选择这些邻居中最常见的类别作为新数据点的类别。而在回归任务中,KNN 通常计算这些邻居的平均值或者中位数,并将这个值作为新数据点的预测值。
-
普通神经网络回归。多层感知器 MLP,将样本的特征矩阵映射到样本标签空间。开发流程:网络初始化后,进行前向计算,反向传播和优化(损失函数通常为均方误差 MSE),然后进行迭代训练。这种方法可以用于回归预测。
-
随机森林回归。通过构建多棵决策树并对它们的预测结果进行平均来进行回归预测。随机森林是一种基于 Bagging 范式的集成学习算法,其关注降低方差。随机森林算法首先创建多个决策树,每棵树都在数据集的一个随机子集上进行训练。这种过程被称为自助采样(bootstrap sampling)。特征选择:在构建决策树的过程中,随机森林会在每个节点处从特征的随机子集中选择最优特征进行分割。这种方法增强了模型的多样性,从而降低了过拟合的风险。对于回归问题,最终的预测结果是所有决策树预测结果的平均值。
-
深度森林(DeepForest)回归 。周志华老师团队的一项工作 DeepForest,它是一种新颖的基于决策树的集成学习方法,结合了深度神经网络和随机森林的优势,在处理复杂数据和回归问题时表现出色。深度森林主要由多粒度扫描和级联森林两个部分构成。其中,多粒度扫描通过滑动窗口技术获取多个特征子集,以增强级联森林的差异性。而级联森林则是通过级联方式将决策树组成的森林实现表征学习。深度森林继承了深度学习对样本特征属性的逐层处理机制,同时克服了深度学习参数依赖性强、训练开销大以及仅适用于大数据等缺点。
-
Extra trees 回归(极端随机森林)(Extra trees 是 Extremely randomized trees 的简称)。这是一种使用决策树的集成学习方法,它与随机森林类似,但它在构建决策树时采用了更多的随机性。在 Extra Trees 中,对于每个候选划分点,特征的划分阈值是随机选取的,不像随机森林那样进行最优化选择。这种随机性可以增加模型的多样性,有时可以提高模型的性能。Extra trees 会创建许多决策树,但每棵树的采样都是随机的,可以设置是否有放回采样。每棵树还会从全部特征集中随机选择特定数量的特征。Extra trees 最重要也是最独特的特点是随机选择特征的分割值。该算法不是使用基尼值或熵值计算局部最优值来分割数据,而是随机选择一个分割值。这就使得树具有多样性和非相关性,能够有效抑制过拟合。
-
AdaBoost 回归。AdaBoost 是一种关注降低偏差的基于 Boosting 范式的集成学习算法,用于提高其组成部分(通常是弱学习器)的性能。在 AdaBoost 中,每个弱学习器都会被赋予一个权重,该权重代表其在整体模型中的重要性。在每一轮训练中,AdaBoost 将根据前一轮的表现调整样本的权重,使得在下一轮中那些被错误分类的样本具有更高的权重,从而更多地关注这些容易出错的样本。
-
AdaBoost 回归的基本步骤包括:
-
(1)初始化训练样本的权重。每个样本的初始权重都是相等的;
-
(2)对于每一轮迭代:使用当前的样本权重来训练一个弱学习器(例如决策树),计算这个弱学习器的预测误差,根据预测误差来计算这个弱学习器的权重,更新样本的权重;
-
(3)将所有弱学习器的预测结果进行加权求和,得到最终的预测结果。
-
基于直方图的梯度提升回归。通过 scikit-learn 改进的基于直方图的梯度提升回归,在大型数据集(n_samples >= 10,000)上,该估计器比 GradientBoostingRegressor 快得多。该估计器本身支持缺失值(NaNs)。在训练过程中,树生长器在每个分裂点学习,并根据潜在增益决定缺失值的样本应该进入左子节点还是右子节点。在预测时,具有缺失值的样本将被相应地分配到左子节点或右子节点。如果在训练过程中对某个特征没有遇到缺失值,那么具有缺失值的样本将被映射到具有最多样本的子节点。这个算法的灵感来自于 LightGBM。
-
TabNet。是由 Google 发布的一种针对于表格数据(Tabular data)设计的深度神经网络,它通过类似加性模型的序列注意力机制实现了 instance-wise 的特征选择,并且通过 encoder-decoder 框架实现了自监督学习,可用于下游学习任务如回归预测。
-
交互网络上下文嵌入(Interaction Network Contextual Embedding,INCE)。INCE 是一种用于表格数据的深度学习模型,采用图神经网络(GNNs),更具体地说,使用交互网络进行上下文嵌入。编码器模型首先将每个表格数据集特征映射到潜在向量或嵌入中,然后解码器模型获取这些嵌入并用于解决监督学习任务。编码器模型由 Columnar 嵌入和 Contextual 嵌入两部分组成;解码器模型由一个针对解决回归任务调整过的多层感知机(MLP)组成。