第1篇详细介绍了4种数学建模中常用的预测模型,包括:
1.时间序列ARIMA模型
2.灰色预测模型GM(1,1)
3.BP神经网络
4.支持向量机回归(SVR)
本篇我们将继续介绍数学建模中常用的其他预测模型,包括:
5.线性回归(最小二乘法)
6.决策树回归
7.随机森林回归
8.XGBoost回归
5、线性预测——线性回归(最小二乘法)
线性回归是一种基础的统计方法,用于建立自变量(解释变量)与因变量(响应变量)之间的线性关系模型。最小二乘法则是求解线性回归模型参数的一种常用方法,其核心思想是通过最小化误差的平方和来找到最佳拟合的直线或超平面。该模型在处理线性关系时具有显著优势,但在面对非线性关系、异常值、多重共线性等问题时则存在不足。
01、模型关键术语
(1)最小二乘法:当你尝试用一条直线去拟合一组数据时,你会发现这条直线不可能完美地穿过每一个点。因此,你会想要找到一条直线,使得这条直线与每个点之间的“差距”(误差)的平方和最小。这就是最小二乘法的核心思想——通过最小化误差的平方和来找到最佳拟合直线。
(2)回归系数:回归系数就像是直线的斜率和截距。在一元线性回归中,有一个斜率和一个截距,斜率表示了X每变化一个单位时,Y平均会变化多少个单位;截距则表示了当X=0时,Y的值是多少(但需要注意的是,在实际问题中X=0可能没有实际意义);在多元线性回归中,会有多个斜率(每个自变量对应一个斜率)和一个截距。
(3)误差项:由于数据中存在随机噪声和不确定性因素,因此即使你找到了最佳拟合直线,也总会有一些点会偏离这条直线。这些偏离就是误差项所表示的。误差项的存在是不可避免的,但我们希望它越小越好,因为这意味着我们的模型能够更好地解释数据。
02、模型理论
回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析;如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
线性回归模型试图找到自变量(解释变量)X和因变量(响应变量)Y之间的线性关系。这种关系可以表示为数学方程:
其中:
Y是因变量(响应变量)。
X1,X2,…,Xk 是自变量(解释变量)。
β0,β1,…,βk 是未知参数(回归系数)。
ϵ 是误差项,代表模型未能解释的变异性,通常假设它服从均值为0的正态分布。
在多元线性回归中,自变量可能有多个;而在一元线性回归中,只有一个自变量。
为了简化计算和求解过程,我们通常使用矩阵来表示这个问题。定义设计矩阵(自变量矩阵)X和因变量向量Y如下:
我们的目标是找到一组回归系数 β,使得模型预测值 Y^=Xβ 与实际观测值Y之间的误差平方和最小。即求解以下优化问题:
通过数学推导(涉及对误差平方和关于 β 的偏导数并令其为0),我们可以得到回归系数的解析解:
但需要注意的是,当 XTX不可逆(即存在多重共线性或特征数多于样本数)时,上述公式不能直接应用。此时,我们可以使用伪逆(Moore-Penrose伪逆)来求解,或者采用正则化方法(如岭回归或Lasso回归)来避免这个问题。
一旦我们得到了回归系数 β,就可以用它来预测新的因变量值或评估模型的拟合优度。预测值Y^ 可以通过将新的自变量值代入模型方程中来计算。模型的拟合优度可以通过各种统计指标来评估,如决定系数(R2)、均方误差(MSE)、均方根误差(RMSE)等。
03、模型优缺点分析
优点:简单易懂,计算方便,通过模型中的系数,可以清晰地了解自变量对因变量的影响程度和方向。
缺点:模型假设自变量和因变量之间存在线性关系,这在实际应用中可能不成立;模型对异常值较为敏感;无法处理自变量之间的交互作用和非线性关系。
04、模型SPSSPRO实现
基于1985-2021年某杂志的销售量,预测某商品的未来七年的销售量。
案例数据:
操作步骤:
部分结果展示:
6、树状决策——决策树回归
决策树回归通过构建树状结构对数据进行建模,每个内部节点表示一个属性上的判断条件,叶子节点存储预测值。决策树直观易懂,能够处理非线性和交互作用,但容易过拟合,对输入变量的尺度敏感。
01、模型关键术语
(1)决策树:决策树就像一棵真正的树,但它不是用来结果实的,而是用来帮助我们做决策的。在决策树回归中,这棵树通过一系列的“如果-那么”规则来预测数值(比如房价)。从树的根部开始,每个分叉点都是一个决策点,最后到达的叶子则给出了预测的答案。
(2)划分准则:当我们想要把数据集分成两部分时,需要一个标准来决定怎么分。在决策树回归中,这个标准通常是让分出来的两部分数据里的预测值与实际值的差异(也就是误差)尽可能小。最常用的划分准则是均方误差(MSE),它衡量了预测值与实际值之间差异的平方的平均值。
(3)递归构建:构建决策树是一个不断重复的过程,就像我们小时候玩的“套娃”一样,一个里面套一个。在决策树中,我们从根节点开始,不断地把数据集分成更小的部分,直到满足某个停止条件(比如不能再分或者分出来的部分已经足够小了)。
(4)剪枝:有时候,为了让决策树更加简单、更加准确,我们需要去掉一些不必要的“树枝”,这个过程就叫做剪枝。就像我们修剪花园里的树枝一样,去掉那些对结果影响不大的部分,让树看起来更加整洁、更加有用。剪枝可以防止决策树过于复杂,从而避免过拟合。
(5)过拟合:过拟合就像是我们在学习的时候,把课本上的每一个字都背下来了,但是却没有真正理解其中的意思。在决策树回归中,如果树长得太茂盛了,它就会记住训练数据中的每一个细节,甚至是噪声,这样在新的数据上它就会表现得不好了。为了防止过拟合,我们可以通过剪枝来简化决策树。
(6)停止条件:在构建决策树的过程中,我们需要知道什么时候该停下来。停止条件就是用来告诉我们什么时候可以停止继续分割数据集的规则。比如,当某个节点下的样本数量太少时,或者当继续分割不能显著降低误差时,我们就可以停止分割了。
02、模型理论
决策树回归模型通过构建一个树状结构来对数据进行建模,树的每个内部节点表示一个属性(或特征)上的判断条件,每个叶子节点则存储一个预测值(对于回归问题,这个预测值通常是该叶子节点下所有样本目标变量的均值)。模型通过从根节点到叶子节点的路径,对新的输入样本进行预测。
决策树回归模型构建主要步骤:
步骤1:初始化数据。创建根节点,将训练集作为根节点的数据集。
步骤2:递归构建过程。
先检查停止条件:如果当前节点 N 下的样本数 ∣DN∣ 小于预定阈值 τ,或节点内样本的方差 Var(yDN) 小于预定阈值 ϵ,则停止划分,并将该节点设为叶子节点。叶子节点的预测值计算为:
其中 yi 是节点N下第i个样本的目标变量值。
再选择最佳划分属性:对每个特征A和其所有可能的划分点a,计算将数据集DN 划分为两个子集DN1(A,a)和DN2(A,a)后的均方误差(MSE)之和:
其中yN1和yN2分别是子集DN1和DN2内样本目标变量的均值。选择使得MSE(A,a) 最小的特征A∗和划分点a∗。
接着划分数据集。根据选定的最佳划分属性A∗和划分点a∗,将当前节点N下的数据集DN划分为两个子集DN1和DN2。
最后是递归构建子树:对每个子集DNi(i=1,2),重复执行步骤2(从检查停止条件开始),构建子树。
步骤3:剪枝
预剪枝:在构建决策树的过程中,根据预设的停止条件(如树的深度、节点内样本数等)提前停止树的生长。
后剪枝:在决策树完全生长后,通过评估剪枝前后模型在验证集上的性能(如MSE)来剪去一些不必要的子树。
步骤4:模型评估。使用测试集评估决策树回归模型的性能,计算预测值与实际值之间的误差(如MSE)。
步骤5:模型应用。将训练好的决策树回归模型应用于新的数据样本,进行预测。
03、模型优缺点分析
优点:模型直观,易于理解和解释;对异常值不敏感,能够处理非线性和交互作用。
缺点:容易过拟合,尤其是当树的深度过大时;对输入变量的尺度敏感。
04、模型SPSSPRO实现
根据房子的户型、电梯、面积、房龄、装修程度、容积率和绿化率,使用决策树方法预估该房子的房价。
案例数据:
案例操作:
部分结果展示:
7、集成稳健——随机森林回归模型
随机森林回归通过构建多棵决策树并集成它们的预测结果,提高整体预测准确性和稳定性。每棵树都是基于随机抽取的训练样本和随机选择的特征构建的,有效避免了过拟合现象。随机森林能够处理高维数据,具有较高的预测准确性,但模型复杂度高,计算量大。
01、模型关键术语
(1)随机森林:顾名思义,就是一片由多棵决策树组成的“森林”。这里的“随机”体现在两个方面:一是每棵树都是基于随机抽取的训练样本构建的;二是每棵树在生长过程中,会随机选择部分特征进行分裂。
(2)集成学习:集成学习是指通过构建并结合多个学习器来完成学习任务。在随机森林中,这些学习器就是多棵决策树。通过集成多棵决策树的预测结果,随机森林能够提高整体的预测准确性和稳定性。
(3)袋外数据(OOB):在随机森林的构建过程中,由于采用了有放回的随机抽样技术,因此会有一些样本没有被某棵树选中作为训练样本。这些没有被选中的样本被称为袋外数据(OOB)。袋外数据可以用于评估模型的性能,而无需额外的测试集。
02、模型理论
随机森林回归模型通过构建多棵决策树,并集成它们的预测结果来提高模型的预测准确性和稳定性。每棵决策树都是基于随机抽样的训练样本和随机选择的特征构建的。
具体来说,随机森林回归模型的构建过程包括以下几个关键步骤:
步骤1:构建多棵决策树。
首先随机抽取训练样本:对于每棵树,都从原始训练集中随机抽取一部分样本(有放回抽样)作为该树的训练集。这样,每棵树都是在不同的样本集上进行训练的。
接着随机选择特征:在构建每棵树的过程中,对于每个节点,都会随机选择一部分特征作为候选分裂特征。然后从这些候选特征中选择最优特征进行分裂。
最后进行决策树生长:按照上述方式递归地构建决策树,直到满足停止条件(如树的最大深度、节点内样本数小于预定阈值等)。
步骤2:集成预测。对于新的输入样本,每棵树都会给出一个预测结果。在随机森林回归中,通常通过计算所有树的预测结果的平均值来得到最终的预测结果。
步骤3:模型评估与调优。
评估:使用袋外数据或测试集来评估模型的性能。评估指标可以包括均方误差(MSE)、平均绝对误差(MAE)等。
调优:根据评估结果对模型进行调优。可以通过调整随机森林的参数(如决策树的数量、树的最大深度、节点分裂的最小样本数等)来改善模型的性能。
步骤4:模型应用:在模型评估和调优后,可以使用训练好的随机森林回归模型进行实际的预测任务。
03、模型优缺点分析
优点:能够处理高维数据,具有较高的预测准确性;通过集成多棵决策树,提高了模型的稳定性和泛化能力。
缺点:模型复杂度高,计算量大;对于某些噪声较大的数据,可能会出现过拟合现象。
04、模型SPSSPRO实现
根据房子的户型、电梯、面积、房龄、装修程度、容积率和绿化率,使用随机森林方法预估该房子的房价。
案例数据:
案例操作:
部分结果展示:
8、梯度增强—— XGBoost回归模型
XGBoost是一种基于梯度提升的集成学习算法,通过不断添加决策树来优化模型预测能力。XGBoost支持多种类型的损失函数,性能高效,具有良好的扩展性和灵活性。然而,其模型复杂度高,参数较多,需要仔细调整以达到最佳性能。
01、模型关键术语
(1)基函数:基函数是XGBoost模型中的基本构建块,通常是CART(分类与回归树)决策树。XGBoost通过不断添加这些基函数(决策树)来优化模型的预测能力。
(2)梯度提升:梯度提升是一种特殊的集成学习技术,它通过迭代地训练基学习器来不断修正前一个学习器的预测错误。在XGBoost中,每次迭代都会根据之前的预测误差来训练一棵新的决策树。
(3)泰勒展开:泰勒展开是一种用函数在某点的信息来描述其附近取值的数学方法。在XGBoost中,为了高效地优化目标函数,会对目标函数进行二阶泰勒展开,从而近似地找到使目标函数最小化的参数。
(4)学习率:学习率是一个控制每棵新树对最终预测结果影响的超参数。较小的学习率意味着每棵新树对模型的修正较小,这有助于模型的稳定性,但也可能导致模型训练时间较长。
(5)正则化:正则化是一种防止模型过拟合的技术。在XGBoost中,通过在目标函数中加入正则项来控制模型的复杂度,比如树的深度、叶节点的数量等,以降低过拟合的风险。
(6)残差:残差是指模型在当前迭代下的预测值与实际值之间的差异。在XGBoost中,每次迭代都会根据当前模型的残差来训练一棵新的决策树,以期能够更准确地拟合数据。
02、模型理论
XGBoost是"极端梯度上升"(Extreme Gradient Boosting)的简称,XGBoost算 法是一类由基函数与权重进行组合形成对数据拟合效果佳的合成算法。由于XGBoost模型具有较强的泛化能力、较高的拓展性、较快的运算速度等优势, 从2015年提出后便受到了统计学、数据挖掘、机器学习领域的欢迎。
对于包含n条m维的数据集 ,XGBoost模型可表示为:
其中,
是CART决策树结构集合,q为样本映射到叶子节点的树结构,T为叶子节点数,w为叶节点的实数分数。
构建XGBoost模型时,需要根据目标函数最小化的原则寻找最优参数,以建立最优模型。XGBoost模型的目标函数可分为误差函数项L和模型复杂度函数项Ω。目标函数可写为:
其中,复杂度函数项Ω分别由L1正则项和L2正则项组成。
在使用训练数据对模型进行优化训练时,需要保留原有模型不变,加入一个新的函数f到模型中,使目标函数尽可能大的减少,具体过程为:
其中:为第t次模型的预测值,ft(xi)为第t次加入的新函数。此时目标函数表示为:
当去掉常数项后可知:目标函数仅仅与误差函数的一阶和二阶导数相关。此时,目标函数表示为:
若树的结构部分q已知,可使用目标函数寻找最优Wj,并得到最优目标函数值。其本质可归为二次函数的最小值求解问题。解得:
Obj是可作为评价模型的打分函数,Obj值越小则模型效果越好。通过递归调用上述树的建立方法,可得到大量回归树结构,并使用Obj搜索最优的树结构,将其放入已有模型中,从而建立最优的XGBoost模型。
03、模型优缺点分析
优点:性能高效,支持多种类型的损失函数;具有良好的扩展性和灵活性,可以自定义基函数和优化算法。
缺点:模型复杂度高,参数较多,需要仔细调整以达到最佳性能;对于大规模数据集,训练时间较长。
04、模型SPSSPRO实现
研究“幸福感”的影响因素,有四个变量可能对幸福感有影响,它们分别是:经济收入、受教育程度、身体健康、情感支持。建立xgboost模型来预测幸福度。
案例数据:
案例操作:
部分结果展示:
数学建模中常见的预测模型介绍到这里就结束啦~每种模型都有其独特的优势和适用场景,在实际应用中,我们应根据具体问题和数据特点选择合适的模型,并通过实践不断优化和完善。
版权归原作者 华如锦 所有, 如有侵权,请联系我们删除。