竞赛项目
🗒️数学建模C题流程体系
00 分钟
2023-8-21
2023-9-16
type
status
date
slug
summary
tags
category
icon
password
🧙🏻
本篇博客记录我们仨准备2023国赛C题的过程

一、数据处理

1.1 数据预处理

数据预处理
(1)不同数据类型的三值处理方式
重复值
异常值的识别与处理
缺失值处理
定量数据
定性数据
定序数据
带时间序列的数据
缺失值不仅包括横向上,每列特征缺失的样本数据,还包括纵向上,每个对象的数据列长不同:2020全国大学生数学建模竞赛论文展示(C109) - 2020全国大学生数学建模竞赛论文展示 - 中国大学生在线 (moe.gov.cn)
(2)数据规约、方向与其它
  1. 数据规约——min-max规约,均值—标准差规约
  1. 正向化——成本型、收益型、区间型数据
  1. 成分数据

1.2 插值与拟合

(1)插值:一般用于数据量较少的预测
线性插值
拉格朗日插值
三次样条插值
(2)拟合:一般要求数据量较大
多项式拟合
非多项式拟合

1.3 统计描述

  1. 均值
  1. 中位数
  1. 变异系数
  1. 偏度
  1. 峰度
统计描述

二、数据特征

2.1 特征工程(特征筛选)

2.1.1 以统计为基础的关键特征分析

  • 定类特征的重要程度
    • 利用卡方检定去计算各个类别型的输入属性与目标属性间的相关 程度 • 首先必需先计算其卡方值 • 然后根据卡方值查表算出P‐value • P‐value越小代表此属性与目标属性间的相关程度越大,也越重要 • 在95%的信心水平之下,P‐value<0.05则为显著(重要)的关键属性
  • 定量特征的重要程度
    • 利用ANOVA检定去计算各个数值型的输入属性与目标属性间的相 关程度 • 首先必需先计算其F‐value • 然后根据F‐value查表算出P‐value • P‐value越小代表此属性与目标属性间的相关程度越大,也越重要 • 在95%的信心水平之下,P‐value<0.05则为显著(重要)的关键属性 • 可接受标签是多分类
    • 利用T检定去计算各个数值型的输入属性与目标属性间的相关程度
      • P‐value越小代表此属性与目标属性间的相关程度越大,也越重要 • 在95%的信心水平之下,P‐value<0.05则为显著(重要)的关键属性 • 只接受标签是二分类

2.1.2 降维

降维是一种减少特征数量的方法,以减少计算时间并提高模型性能。这可以通过消除多余的、不重要的或冗余的特征来实现。
  • 主成分分析 (PCA)
    • 适用于连续数值型变量。
    • 将原始数据转化为一组新的维度(主成分),这些维度是原始特征的线性组合。
    • 第一主成分解释了数据中最大的方差,每个后续的主成分解释了尽可能多的剩余方差。
    • PCA可以用于数据可视化或作为预处理步骤。
  • 线性判别分析 (LDA)
    • 旨在找到最大化不同类之间的距离和最小化同一类中数据点之间距离的特征子集。
    • 主要用于分类问题。
  • t-分布随机近邻嵌入 (t-SNE)
    • 主要用于高维数据的可视化。
    • t-SNE是一种非线性降维方法,特别适用于将数据点聚类在二维或三维空间中。

2.1.3 利用算法输出关键特征

某些机器学习算法可以为输入特征提供重要性得分,这些得分可以用来选择最重要的特征。
  • 决策树/随机森林
    • 这些模型在构建过程中可以评估每个特征的重要性。
    • 在Scikit-learn中,可以通过feature_importances_属性获取。
  • 递归特征消除 (RFE)
    • 递归地考虑越来越少的特征。
    • 首先,模型在初始特征集上进行训练并为每个特征评分。然后,将最不重要的特征从当前的特征集中删除。这一过程递归地重复,直到达到所需的特征数。
  • 正则化方法 (Lasso, Ridge)
    • Lasso(L1正则化)可以用来选择关键特征,因为它倾向于使不重要的特征的权重为零。
    • Ridge(L2正则化)会惩罚特征,但不会完全消除它们。

2.2 指标体系合理性检验

信效度检验是在统计和心理测量学中评估量表、问卷或其他测量工具的质量的标准方法。信效度检验通常涉及两个主要概念:信度(reliability)和效度(validity)。
  • 信度 (Reliability)
    • 信度衡量的是测量工具的一致性和稳定性。换句话说,如果我们多次使用同一测量工具,我们是否会得到相同或相似的结果?常用的信度检验方法有:
    • 内部一致性:例如Cronbach's α系数,用于评估测量工具中的各个项目(或问题)是否一致地测量同一概念。
    • 重复测量的稳定性:例如测试-重测信度,它涉及两次使用同一测量工具,并计算两次测量之间的相关性。
  • 效度 (Validity)
效度涉及测量工具是否真正测量它声称要测量的概念。常用的效度检验方法有:
  • 内容效度:涉及专家评审,确定测量工具是否包括了所需测量概念的所有关键方面。
  • 结构效度:检查测量工具是否测量了预期的因子或构念,常通过因子分析或结构方程模型来评估。
  • 标准效度:涉及与外部标准的相关性,看测量工具的得分是否与其他已知的、有效的测量结果有所关联。
  • 效标效度:这涉及看看测量工具的得分是否可以预测关于被测概念的某些未来的标准。

三、回归问题

3.1 假设检验与回归分析

3.1.1 假设检验

(1)相关性分析
定量数据
定类数据
定序数据
定量数据
皮尔森、斯皮尔曼
定类数据
斯皮尔曼、肯德尔
定序数据
肯德尔、斯皮尔曼
斯皮尔曼、肯德尔
肯德尔、斯皮尔曼
相关性分析
(2)差异性分析
  1. 独立样本t检验
  1. 配对样本t检验
  1. 方差分析
  1. 调节效应
  1. 中介效应
  1. 结构方程模型
差异性分析
(3)独立性
(4)因果性

3.1.2 回归分析

  1. 线性回归
  1. 逻辑回归
  1. 多元线性回归
 

3.2 时间序列

时间序列

3.2.1 时间序列建模的基本原则

时间序列建模是对时间序列数据进行分析和预测的方法。以下是时间序列建模的基本原则:
  1. 平稳性:大多数时间序列模型都要求数据是平稳的,即数据的统计特性(如均值、方差)在时间上是恒定的。如果数据不是平稳的,需要进行差分或其他转换来使其平稳。
  1. 季节性:如果数据存在季节性,需要考虑季节性因素。
  1. 趋势:数据中的长期趋势需要被识别并考虑。
  1. 自相关性:观察数据的自相关性,以确定数据中的循环模式或其他相关性。

3.2.2 移动平均与指数平滑

  1. 移动平均:是一种简单的时间序列平滑方法,通过计算数据的连续子集的平均值来预测未来的值。
  1. 指数平滑:与移动平均类似,但给予最近的观测值更大的权重。它使用一个平滑参数来决定过去观测值的权重。

3.2.3 ARIMA与自回归模型

  1. ARIMA(自回归差分移动平均模型):结合了自回归模型、差分和移动平均模型。它适用于非季节性数据,并且数据必须是平稳的。
  1. 自回归模型:预测未来的值基于过去的值。它使用数据的自相关性。

3.2.4 GARCH模型

GARCH(广义自回归条件异方差模型):用于预测金融时间序列的波动性。与ARIMA模型不同,GARCH模型可以捕捉到金融时间序列的波动聚集效应。

3.2.5 灰色预测与灰色关联

  1. 灰色预测:是一种基于生成数据的少量信息进行预测的方法。它特别适用于数据量少、不完整或不准确的情况。
  1. 灰色关联:分析变量之间的关联度,用于确定哪些变量对目标变量的影响最大。
 

3.2.6 投资选股模型

3.3 机器学习

notion image

3.3.1 模型分类

(1)监督学习
  • 回归任务
    • 算法
      类型
      工作原理
      优点
      缺点
      线性回归
      线性模型
      使用数据的线性关系预测目标值
      简单,解释性强
      对异常值和非线性关系敏感
      多项式回归
      非线性模型
      使用多项式方程预测非线性关系
      能处理非线性关系
      容易过拟合,模型复杂性高
      岭回归
      线性模型
      对线性回归进行L2正则化
      防止过拟合,适用于多重共线性
      增加了模型复杂性
      Lasso回归
      线性模型
      对线性回归进行L1正则化
      进行特征选择,防止过拟合
      可能会过度稀疏,丢弃某些变量
      弹性网络
      线性模型
      结合L1和L2作为正则项的线性回归
      结合了Lasso和岭回归的特点
      参数选择较为复杂
      决策树回归
      非线性模型
      使用决策树结构预测连续目标值
      易于理解,可以用于非线性关系
      可能过拟合,需要剪枝
      随机森林回归
      非线性模型
      使用多个决策树平均结果来预测目标值
      高准确性,能处理大数据
      可能会比简单模型复杂
      支持向量回归
      基于间隔的回归器
      使用SVM的原理找到一个超平面来预测连续的目标值
      可用于线性/非线性回归
      计算复杂度高,对大数据集不是很适合
      神经网络回归
      连接主义学习系统
      使用神经网络结构预测连续的目标值
      可以建模复杂的非线性关系
      训练时间长,需要大量数据
      梯度提升回归
      集成学习
      逐步添加树模型并进行调整以提高准确性
      通常提供高准确率
      训练时间可能较长,可能导致过拟合
  • 分类任务
    • 算法
      类型
      工作原理
      优点
      缺点
      C4.5
      决策树
      使用信息增益率选择最佳的分割属性
      生成清晰的规则,易于理解
      容易过拟合
      朴素贝叶斯
      基于概率的分类器
      基于贝叶斯定理,考虑特征之间的独立性
      简单,对大型数据集效果良好
      假设特征之间完全独立
      SVM
      基于间隔的分类器
      寻找能够最大化分类间隔的超平面
      对高维数据效果良好,泛化错误率低
      计算复杂度高,对非线性问题需选择核函数
      KNN
      基于实例的分类器
      基于它的K个最近邻的投票
      简单,无需训练
      计算成本高,需要大量存储空间
      Adaboost
      集成学习
      循环训练一系列的弱分类器,关注之前错误分类的样本
      高准确率,不容易过拟合
      对噪声数据和异常值敏感
      CART
      决策树
      使用基尼指数或均方误差作为划分准则
      生成决策树易于理解,可用于分类和回归
      容易过拟合,需要进行剪枝
      随机森林
      集成学习
      构建多个决策树并取其平均结果
      高准确率,能处理大数据源,能评估变量的重要性
      对于有不同级别的变量的数据,偏向于选择更多级别的变量
      逻辑回归
      基于概率的分类器
      估计变量与特定结果之间的概率关系
      输出值在0-1之间,概率分数很有用
      假设数据的特征空间线性可分
      神经网络
      连接主义学习系统
      由许多简单的处理单元组成的广泛并行互联网络
      可适应非线性问题,大规模网络处理复杂问题有效
      训练时间长,需要大量的数据
      梯度提升树
      集成学习
      逐步添加模型并进行调整以提高准确性
      通常提供高准确率
      训练时间可能较长,可能导致过拟合
(2)无监督学习
  • 聚类任务
    • 算法
      类型
      工作原理
      优点
      缺点
      K-均值
      基于分区
      将数据划分为K个簇,使簇内方差最小,簇间方差最大
      简单,广泛使用
      需要预先指定K值,对初始值敏感,可能陷入局部最优
      层次聚类
      基于层次
      创建数据的层次化树状结构,可以进行自下而上(凝聚)或自上而下(分裂)的方式
      结果易于理解,产生树状图 (dendrogram)
      计算复杂度高,不适合大数据集
      DBSCAN
      基于密度
      根据密度将数据点连接到簇中,能够找出任意形状的簇
      能找出任意形状的簇,不需要指定簇的数量
      密度概念可能难以确定,对于具有不同密度的簇可能不太适用
      谱聚类
      基于图论
      利用数据的相似性矩阵进行特征分解并在变换后的空间进行聚类
      能够识别复杂的簇结构
      计算复杂度较高,可能不适合非常大的数据集
      GMM (高斯混合模型)
      基于模型
      用多个高斯分布来逼近数据,并使用EM算法进行优化
      软聚类,模型灵活
      计算复杂度高,可能需要预先确定组件数量
      Agglomerative
      基于层次
      从每个数据点作为单独的簇开始,然后合并到其他簇中
      适合于较小的数据集,直观
      不适合大数据集,选择合适的连接标准可能是个挑战
      BIRCH
      平衡迭代减少计算和压缩的层次聚类
      在存储和计算能力有限的情况下对大数据进行聚类
      适用于大数据,扩展性好
      对高维数据的处理能力有限
      OPTICS
      基于密度
      类似于DBSCAN,但考虑到了可变的密度
      不需要预先指定簇的大小,可以处理不同密度的簇
      计算复杂度高,对参数选择敏感
      Affinity Propagation
      基于消息传递
      通过传递消息来确定数据的"示例"和相应的簇
      不需要预先指定簇的数量
      计算复杂度较高,可能不适用于大数据集
      Mean Shift
      基于密度
      通过向数据密度的高点移动来寻找簇的中心
      可以找到任意形状的簇,不需要指定簇的数量
      计算复杂度高,选择带宽参数可能是个挑战
  • 异常值检测
    • 噪声消除
      • 噪声包含错误值(类别型字段)及离群值(数值型字段) 检查方法有三,分别是:①剔除[min,5%]和[95%,max]的部分;②只保留平均值±3x标准差;③四分位数法:[Q1-1.5x(Q3-Q1),Q3-1.5x(Q3-Q1)]
    • 空值(Missing Value)填补
      • 直接忽略
      • 自动填补:填入通用常数(Unknown/0等)、填入众数、XGBoost方法、python自带用KNN模型填充
(3)集成学习
算法
工作原理
优点
缺点
Bagging (如随机森林)
通过自助采样法(bootstrap sampling)创建多个数据集,并在每个数据集上训练一个基学习器,最后的预测是基学习器预测的平均或多数票决定的。
减少过拟合,提高准确性,可以并行训练
可能增加计算成本,难以解释
Boosting (如AdaBoost, Gradient Boosting, XGBoost)
迭代地训练一系列的弱学习器,每一次迭代都根据前一个学习器的错误来调整样本的权重,强迫新的学习器更加关注错误的预测。
增强预测性能,减少偏差
可能会过拟合,训练时间可能较长,参数调优复杂
Stacking
在多个不同的学习器上训练数据,然后使用一个新的学习器(meta-learner)来组合这些学习器的预测。
利用多种模型的优势,提高泛化能力
计算成本高,模型可能变得复杂难以解释
Bootstrap Aggregating (Bagging)
从原始数据中重复随机采样(有放回),对每个样本训练一个模型,然后对所有模型的预测结果进行平均或投票。
减少模型的方差,降低过拟合的风险
可能会丢失模型的解释性
Voting
结合多个模型的预测,通常采用简单的多数投票机制。可以是相同的模型类型或不同的模型类型。
利用多个模型的优势,减少单一模型的缺陷
模型的选择和权重设定是关键,需要仔细的实验验证
Random Subspace Method
在数据的随机子空间(特征的子集)上训练多个模型,然后组合它们的预测。
提高模型的多样性,减少过拟合
要求数据有足够多的有意义的特征,否则可能会导致性能下降
(4)关联关系挖掘

3.3.2 模型性能的评估与改进:

(1)连续数据模型的评估方法
连续数据模型通常指回归模型,其评估方法包括:
  • 均方误差 (MSE):计算真实值与预测值之间的差的平方的平均值。
  • 均方根误差 (RMSE):MSE的平方根,与原始数据在同一尺度上。
  • 平均绝对误差 (MAE):计算真实值与预测值之间的差的绝对值的平均。
  • R-squared:衡量模型解释的方差比例。
(2)离散数据模型的评估方法
离散数据模型通常指分类模型,其评估方法包括:
  • 混淆矩阵 (Confusion Matrix):描述模型的真实分类与预测分类的关系。
  • 准确率 (Accuracy):正确预测的样本数占总样本数的比例。
  • 召回率 (Recall) / 灵敏度 (Sensitivity):正类中被正确预测的比例。
  • 精确率 (Precision):预测为正的样本中真正为正的比例。
  • F1得分 (F1 Score):精确率和召回率的调和平均。
  • ROC 曲线 & AUC:接受者操作特性曲线及其下面的面积,用于衡量模型性能。
(3)模型存在的两类问题以及对应的处理方式
  • 欠拟合
    • 增加模型的复杂度
    • 添加更多特征
    • 减少正则化
    • 使用更复杂的算法
  • 过拟合
    • 增加训练数据
    • 使用正则化技术
    • 减少模型复杂度
    • 使用验证集进行早停
    • 采用特征选择来减少不必要的特征

3.4 评价模型

  1. 熵权法
    1. 一种基于信息熵原理的权重确定方法,通过考虑所有指标的变异情况来确定权重。
  1. TOPSIS
    1. Technique for Order of Preference by Similarity to Ideal Solution。通过计算各方案与正、负理想解的距离来对方案进行排序。
  1. 秩和比法
    1. 对每个评价对象按每个指标进行排序,然后根据排序结果计算其秩和,根据秩和确定各评价对象的优劣。
  1. 数据包络分析
    1. 一种评价决策单元(如公司、部门等)相对效率的非参数方法,主要用于评估资源的有效使用。
notion image

四、优化问题

4.1 组合优化

4.1.1 模型建立

(1)单目标优化
(2)多目标优化

4.1.2 模型求解算法

1. 遗传算法
(1)流程
  • 初始化:随机生成一个种群。
  • 评估:计算种群中每个个体的适应度。
  • 选择:根据适应度选择个体进行交叉和变异。
  • 交叉:按照某种概率交换两个个体的部分基因,产生新的个体。
  • 变异:按照某种概率改变个体的某些基因。
  • 替换:用新生成的个体替换旧的个体。
  • 终止:当满足某种条件(如迭代次数、适应度达到某个阈值等)时,算法终止。
(2)影响算法性能的关键指标
种群大小、交叉概率、变异概率、选择策略、编码方式
(3)优缺
  • 具有全局搜索能力,能够处理复杂的优化问题。算法简单,易于实现。
  • 对于某些问题可能陷入局部最优。参数选择对算法性能有很大影响。
2. 粒子群算法
(1)流程
  • 初始化:随机生成一个粒子群。
  • 评估:计算每个粒子的适应度。
  • 更新速度和位置:根据粒子的历史最佳位置和全局最佳位置更新粒子的速度和位置。
  • 终止:当满足某种条件时,算法终止。
(2)影响算法性能的关键指标
粒子群大小、学习因子、惯性权重
(3)优缺
  • 算法简单,易于实现。具有较好的全局搜索能力。
  • 对于高维问题,收敛速度可能较慢。参数选择对算法性能有很大影响。
3. 模拟退火算法
(1)流程
  • 初始化:选择一个初始解和初始温度。
  • 产生新解:在当前解的邻域中随机选择一个新解。
  • 接受准则:根据适应度和温度决定是否接受新解。
  • 降温:按照某种策略降低温度。
  • 终止:当温度低于某个阈值或满足其他条件时,算法终止。
(2)影响算法性能的关键指标
初始温度、降温策略、邻域定义
(3)优缺
  • 能够跳出局部最优,具有全局搜索能力。适用于各种优化问题。
  • 参数选择对算法性能有很大影响。对于大规模问题,计算时间可能较长。
4. 动态规划与贪心算法
(1)流程
动态规划:
  • 定义状态和状态转移方程。
  • 初始化边界条件。
  • 按照某种顺序计算每个状态的值。
  • 返回最终状态的值。
贪心算法:
  • 按照某种策略选择当前最优的选择。
  • 更新问题为子问题。
  • 重复上述步骤直到问题被完全解决。
(2)影响算法性能的关键指标
  • 状态定义、状态转移方程
  • 选择策略
(3)优缺
动态规划优点:
  • 能够确保找到最优解。适用于具有最优子结构和无后效性的问题。
动态规划缺点:
  • 空间和时间复杂度可能较高。
贪心算法优点:
  • 算法简单,计算速度快。对于某些问题能够得到最优解。
贪心算法缺点:
  • 不能保证总是得到最优解。只适用于具有贪心选择性质的问题。

五、模型检验

5.1 模型合理性检验

  1. 评价指标
    1. 例1:银行基于大数据挖掘对中小微企业的信贷决策问题(主成分分析法对于守约率计算的合理性检验)
  1. 结合其它论文或者相关经验进行语文建模

5.2 模型敏感性分析

六、工具

6.1 数据可视化相关库

6.2 论文插图制作


评论
Loading...