一份简短又全面的数学建模技能图谱常用模型算法总结
一份简短又全面的数学建模技能图谱:常用模型&算法总结
声明一下:下述内容的多数链接出自一本教材: 司守奎《数学建模算法与应用》 第二版的PDF版本,改成转载需要给出原创链接;实属无意冒犯。
【pdf版教材链接-百度网盘: 【 提取码:7i0s】
本文总结了常用的数学模型方法和它们的主要用途,主要包括 数学和统计上的建模方法 ,关于在数学建模中也挺常用的机器学习算法暂时不作补充,以后有时间就补。至于究竟哪个模型更好,需要用数据来验证,还有求解方法也不唯一,比如指派问题,你可以用线性规划OR动态规划OR整数规划OR图与网络方法来解。
总的来说,常 用主成分分析来降维 , 综合评价 的方法有因子分析法、层次分析法、….,用 蒙特卡罗方法 来 随机模拟求解 ;还应掌握 数据变换 、 数据拟合 、参数估计、 插值 等数据处理, 线性规划、整数规划、目标规划、动态规划 类问题的求解要根据已知信息 找出约束条件与目标函数 , 图论算法也是非常常用的,组合优化算法 常用于很难求出最优解的NP问题,还有一些连续离散化的技术 eg. 通过 插值or拟合or光滑技术 【移动平均之类的】可以把 离散数据连续化 ,通过 分组 【把数据划分成不同的小区间】OR差分就可以把 连续数据离散化. …。此外的数值分析算法eg 方程组求解、矩阵运算、函数积分 等算法也经常用得到。
另:建议先读第 【3】数据的描述性统计分析 & 【4】数据预处理 这两部分,比较通用,而且算是数据处理的最基础的知识,
【挖坑】后期会再根据数模竞赛的常用模型和学习难易程度给出学习建议, 再补一份用 python进行数据分析 的资料。至于图像处理方法稍后再补。
目录
一、 教程
【0】python从入门到放弃:
1. python环境+IDE配置:安装Anaconda + Pycharm
代码编辑器推荐: Anaconda 的Spyder , Pycharm
数据探索与分析: Anaconda 的jupyter botebook
专业版的pycharm需要破解, 社区版的功能少了很多但基本够用!!
- 官网下载pycharm :
)
Anaconda 安装教程参考:
Anaconda详细安装及使用教程(带图文):
2.学习python 的大致路线
学习python 的大致路线可以归结为:基础语法,内置函数builtin.py ,常用包【numpy、pandas、matplolib、seaborn、sklearn,….】再操作数据,再高级编程面向对象、正则表达式、爬虫,、机器学习等再项目实战。
python基础–文字教程
python3 cookbook :
python3 学习爬虫:
; :这几个适合用来当作字典来查; 代码用到了就查!
贴一个python_600集基础的视频教程: 黑马程序员版:Python教程Python从入门到精通教程
但我 个人不建议看这么长的视频 ,很容易看了前面忘了后面,倍速播放也让你无法抓住重点:可以试试大致浏览文字版教程,用人眼去快速抓取要点,再练点python-100例打好基础。
【1】matlab教程
哎,MATLAB被禁用的话试试python吧、人生苦短!
【博文链接】
易百教程的matlab 入门:
【2】数据科学/数据分析教程:
【博文链接】
1. python 数据科学速查手册(中文版):
Github 上的一份数据科学相关的知识速查表, 标星17K多!! :
二、数据预处理与数据探索
【3】数据的描述性统计分析
基本的概念: 数据的 趋势、特征和数量关系, 包括描述性统计量【算术平均值、中位数、标准差、方差、极差、偏度和峰度】、参数估计、假设检验….分布函数、密度函数和分位数 、分布拟合检验、中位数检验….
【博文链接】 : 直接点这个链接进去看吧,就介绍了 概率论与数理统 计的基本知识 : 总体、样本、 频数表、直方图 、 统计量 、算术平均值、中位数 、标准差、方差和极差、偏度和峰度 、中心矩、分布函数、密度函数和分位数 ,正态分布 、卡方分布(Chi square) 、t分布 、F 分布;参数估计的 点估计 &区间估计 & Matlab 实现;假设检验:Z 检验、t检验、分布拟合检验 、 偏度、峰度检验Wilcoxon秩和检验、中位数检验。
一般如果有数据,就可以先查看数据的各维度的描述性统计信息,来查看数据的质量,并假设数据可能的分布。有了这些基本印象后,再对数据进行预处理。参考【0 python数据分析】中的 数据变换方法&预处理方法。
- 对 正态分布、均匀分布、指数分布、伽马分布、卡方分布与贝塔分布 作了大致的介绍,需要记住它们的参数、数学期望与方差、以及密度函数, 一个分布就是一个概率模型 。
【4】python数据预处理
数据预处理包括 数据的清洗、缺失值的处理、数据变换 、 数据平滑技术 、。。
对于归一化方式还有深度学习的 softmax 归一化【用作分类】 、 batch normalization批标准化 。它们是在神经网络模型内部的,不能算是数据预处理方法了。
【博文链接】
三、模型建立
1. 数学模型
【5】线性规划
线性规划问题的 目标函数及约束条件均为线性函数, 求解方法有单纯形法,matlab 中可用linprog函数求解。
【博文链接】
【6】图与网络模型及方法
图是指某类具体事物和这些事物之间的联系,最短路径问题、最大流问题、最小费用流问题和匹配问题 等都是图与网络的基本问题。图论对建模和解决实际问题都用处极大,数学专业的《数据结构》《离散数学》《运筹学》课程都会重点介绍它。
【博文链接】
:描述了图论中的常见问题eg最短路径问题、指派问题、中国邮递员问题、旅行商问题…
: 给出了一个连接若干个城镇的铁路网络,在这个网络的两个指定城镇间, 找一条最短铁路线。【就是从一个路线网络中,找出两个点之间的最短路径。】
: 欲修筑连接 n 个城市的铁路,已知i 城与 j 城之间的铁路造价为Cij ,设计一个线 路图,使总造价最低。这种 连线问题的数学模型是 在连通赋权图上求权最小的生成树 。
: 用于解决【人员分派问题】:给n个工作人员分配不同的n件工作,每个人都适合做其中的一件或几件,那么请问是否每人都有一份合适的工作?
这里面提到了一个【婚配定理:每个姑娘都结识k (k ≥ 1) 位小伙子,每个小伙子都结识k 位姑娘,则每位 姑娘都能和她认识的一个小伙子结婚,并且每位小伙子也能和他认识的一个姑娘结婚。】
:
Euler 图就是 从一顶点出发【每条边】恰通过一次能回到出发点的那种图 ,【中国邮递员问题】的数学模型是: 在一个赋权连通图上求一个含所有边的回路, 且使此回路的权最小 。 显然,若此连通赋权图是 Euler 图,则可用 Fleury 算法求 Euler 回路,此回路即为 所求。
Hamilton 图就是 从一顶点出发【每个顶点】恰通过一次能回到出发点的那种图。 【旅行商问题描述】一名推销员准备前往若干城市推销产品,然后回到他的出发地。如何为他设计一条 最短的旅行路线(从驻地出发,经过每个城市恰好一次,最后返回驻地)?。用图论的术语说,就是 在一个赋权完全图中,找出一个有最小权的 Hamilton 圈。称这种圈为最优圈 。
在运输问题中希望在完成运输任务的同时,寻求一个使总的运输费用最小的运输方案。
用来求解流量给定的网络中的可行流。
分享一个教程里面有讲图论:王铮的《数据结构与算法》-极客时间–音频+pdf教程: ;
见百度网盘【链接: 提取码: t2y8】
【7】插值与拟合
插值 : 求过已知有限个数据点的近似函数 。
拟合 :已知有限个数据点,求近似函数, 不要求过已知数据点 ,只 要求在某种意义下它在这些点上的总偏差最小 。
插值和拟合都是要 根据一组数据构造一个函数作为近似 ,由于近似的要求不同,二 者的数学方法上是完全不同的。
插值的方法多种多样,拟合问题除了用最小二乘,还可以 用机器学习OR深度学习算法 来实现,但要注意 过拟合问题 。
【博文链接】
【8】灰色预测
灰色系统是 部分信息已知而部分信息未知的系统 ,常常采用离散模型,建立一个 按时间逐段进行短期分析 的模型。其中的 关联度分析方法, 即 根据因素之间发展态势的相似或相异程度来衡量因素间关联的程度 。此外的灰色模型 GM 和离散形式的灰色模型 DGM 也在博文中有介绍。
【博文链接】
【9】动态规划
把多阶段过程转化为一系列单阶段问题再逐个求解;一些与时间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为 多阶段决策 过程,也可以用动态规划方法方便地求解,但是要 必须对具体问题进行具体分析处理。 可用于求解最短路线问题、 生产计划问题、资源分配问题等多阶段决策的优化问题;
【博文链接】
【10】层次分析法 AHP
特别适用于那些 难于完全定量分析 的问题,作出决策时又涉及许多 相互关联、相互制约的众多因素, 是一种简便、灵活而又实用的 多准则决策 方法。在这个模型下,复杂问题被分解为元素的组成部分【 目标层、准则层、方案层 】。
【博文链接】
【11】整数规划
规划中的 变量(部分或全部)限制为整数 时,称为整数规划。若在线性规划模型中, 变量限制为整数,则称为整数线性规划。目前 还没有一种方法能有效地求解一切整数规划 。 求解方法有 分枝定界法、割平面法、隐枚举法、匈牙利法( 解决 指派 问题) 、 蒙特卡洛法…
【博文链接】
【12】目标规划模型
线性规划只能解决 一组线性约束条件下,某一目标只能是一个目标的最大或最小值的问题, 而实际决策中, 衡量方案优劣考虑多个目标 ;这些目标中,有主要的,也有次要的;有最大值的,也有最小值的;有定量的, 也有定性的;有相互补充的,也有相互对立的…..求解目标规划可用 序贯式算法。
【博文链接】
【13】偏最小二乘回归
研究两组多重相关变量间的相互依赖关系,并研究用 一组变量(常称为自变量或预测变量)去预测另一组变量(常称为因变量或响应变量); 是一种多对多线性回归建模 ,特别 当两组变量的个数很多 ,且都 存在多重相关性,而观测数据的数量(样本量)又较少 时, 用偏最小二乘回归建立的模型 具有传统的经典回归分析等方法所没有的优点。 偏最小二乘回归分析在建模过程中 集中了主成分分析,典型相关分析和线性回归分析方法的特点。
【博文链接】
【14】微分方程模型
由微分方程可以 描述数学、力学、物理、化学等学科中许多自然现象所满足的规律 ,如牛顿第二定律、放射性物质的放射性规律等。也可根 据大量数据提出简化实际问题的微分方程模型 ,eg人口模型【Malthus 模型、阻滞增长模型(Logistic 模型)】、战争模型【正规战模型、游击战模型、混合战模型】。
【博文链接】
【15】博弈论 / 对策论
有竞争或对抗性质的对策 行为中,参加斗争或竞争的各方各自具有不同的目标和利益;对策论就是研究对策行为中斗争各方是否 存在着最合理的行动方案,以及如何找到这个合理的行动方案。对策问题的特征是 参与者为利益相互冲突的各方 ,其结局不取决于其中任意一方的努力而是 各方所采取的策略的综合结果。 比如囚徒困境;用 极大极小原理来判断某个对策是否有鞍点 ,【深度学习的 生成对抗网络的目标函数 就是这个原理: 二人零和博弈思想 】;零和对策、混合对策的求解问题详见下述链接
【博文链接】
【16】排队论模型
由于生活中常常有 服务的数量超过服务机构(服务台、服务员等)的容量 ;有形或无形的排队现象随处可见! 电话局的占线问题,车站、码头等交通枢纽的车船堵塞和疏导,故障机器的停机待修,水库的存贮调节等.
【博文链接】
【17】存储论
存贮论(或称为 库存论 )研究存贮系统的 性质、运行规律以及 如何寻找最优存贮策略。 所谓存贮实质上是将供应与需求两个环节以存贮中心联结起来,起到协调与缓和 供需之间矛盾的作用。
【博文链接】
【18】模糊数学模型
模糊是指客观事物差异的中间过渡中的“不分明性”或“亦此亦彼性”。如高个子 与矮个子、年轻人与老年人、热水与凉水、环境污染严重与不严重等,即 模型的背景及关系具有模糊性 。。统计数学是将数学的应用范围从确定性的领域扩大到了不确定性的领域,即从必然 现象到偶然现象,而模糊数学则是把数学的应用范围从确定领域扩大到了模糊领域,即 从精确现象到模糊现象。应用模糊数学方法进行的聚类分析即为 模糊聚类分析 。
【博文链接】
2. 统计模型
【19】主成分分析
目的是希望用较少的变量去解释原来资料中的大部分变异, 把相关性很高的变量转化成彼此相互独立或不相关的变量,是一种 降维方法。 在描述数据集中的样本时, 样本 又叫作 实例、观测 ,样本可以由 多个属性 来描述,这些又可以称为 特征、指标、变量、维度 , 比如描述某企业的员工信息时,数据集就是所有员工信息,每个员工就是一个样本,用来描述样本信息的性别、年龄、工龄、籍贯、工资….就是 特征, 这些指标可能有某种程度上的相关关系,就会存在 信息冗余 ,就需要 特征选择 ,也就是降维,常用的降维方法有 主成分分析pca, SVD奇异值分解,逐步回归 。。。
【博文链接】
主成分分析 (二): 特征值因子的筛选
其它相关:
【20】判别分析
根据所研究的个体的观测指标来 推断该个体所属类型 的一种统计方法.
【博文链接】
,机器学习中把它叫做LDA线性判别分析。
【21】聚类分析
“物以类聚、人以群分” 。聚类分析用数量化的方法 对事物进行分类 , 事物的类别标签未知(无监督学习) ,但 已知样本的多个特征取值 。常用的聚类方法有层次聚类法,基于网格 / 密度的聚类, DBSCAN聚类 , K-均值聚类 、谱聚类、模糊聚类 、……
以下博文中介绍了 样本之间的相似性度量 【闵氏距离、绝对值距离、欧氏距离、切比雪夫距离、马氏距离】、 类与类间的相似性度量 【最短距离法、最长距离法、重心法、类平均法、离差平方和法、Ward 方法】、 变量的相似性度量 【相关系数 、夹角余弦】, 变量聚类法 【最大系数法 、最小系数法】以及 对应的matlab代码实现
【博文链接】
【22】时间序列分析
时间序列是按 时间顺序排列 的、 随时间变化且相互关联 的数据序列(比如股票数据的收益就是每天都在变化);常认为一个时间序列可以分解为以下四大部分: 长期趋势变动、季节变动 , 循环变动、不规则变动。 时间序列中的数据平滑方法也经常用作 数据预处理的平滑技术: eg.移动平均法在深度学习中也有用到。
【博文链接】
【23】方差分析
通过 对影响产品质量的因素进行分析,找出有显著影响的那些因素 ,除了从机理方面进行研究外,常常要作许多试验, 对结果作分析、比较,寻求规律。 用数理统计分析试验结果、鉴别各因素对结果影响程度的方法称为方差分析 (Analysis Of Variance),记作 ANOVA。 人们 关心的试验结果 称为 指标 ,试验中 需要考察、可以控制的条件 称为 因素或因子。eg. 用几种化肥和几个小麦品种在 若干块试验田里种植小麦,要推断不同的化肥和品种对产量有无显著影响,化肥和品种就是两个不同的因素,所以称为双因素方差分析。。。注意【试验】和【实验】不是一个概念。这里的【因子】与【因子分析】也不是一个概念。
【博文链接】
【24】典型相关分析
研究 两组随机变量 之间的相关关系( 多对多 ),eg.考虑几种主要产品的价格(作为第一组变量)和相应这些产品的销售量(作为第二组变量)之间的相关关系;考虑投资性变量(如劳动者人数、货物周转量、生产建设投资等)与国民收入变量(如工农业国民收入、运输业国民收入、建筑业国民收入等)之间的相关关系等等.
【博文链接】
【25】因子分析
因子分析可以看成主成分分析的推广,它也是多元统计分析中
常用的一种降维方式。因子分析的首要任务就是估计因子载荷
的方差
,然后给因子
一个合理的解释,若难以进行合理的解释,则需要进一步作因子旋转,希望旋转后能发现比较合理的解释。
因子分析的前提条件是观测变量间有较强 的相关性,eg. 为了解学生的知识和能力,对学生进行了抽样命题考试,考题包括的面很广, 但总的来讲可归结为学生的语文水平、数学推导、艺术修养、历史知识、生活知识等五个方面,我们
把每一个方面称为一个(公共)因子
,显然每个学生的成绩均可由这五个 因子来确定. eg.通过因子分析将24个心理指标被归结为4个公共因子:词语因子、速度因子、 推理因子和记忆因子。
【博文链接】
3. 机器学习/数据挖掘模型
数据挖掘
100天精通机器学习 :
常用的机器学习方法 : 决策树、贝叶斯网络、近邻算法、朴素贝叶斯、支持向量机、异常检测、条件随机场、EM 等。
【稍后再补】
4. 深度学习模型
【26】神经网络模型
深度学习模型是“万能的函数近似器”,可 用于拟合各种非线性模型 。常用的有:卷积神经网络 CNN , RNN, FasterRCNN, GAN, 自编码器,DBN, LSTM, Boltzman 机 . ….可用于 训练一个分类/回归模型来作预测 。这里只提供一篇神经网络模型入门的简精明教程。
【博文链接】 [这篇文章的内容太老了,不建议看 ; 建议自己搜下CNN,RNN, lstm]
深度学习框架: tensorflow 、keras、 pytorch都行:【稍后再更】
NLP-GitHub项目:
四、模型求解与优化
【27】数值优化方法
如果 目标函数或约束条件中包含非线性函数的 规划问题为非线性规划,求解非线性规划可用梯度法、牛顿法、拟牛顿法、高斯·塞德尔迭代法,BFGS等一系列方法。
【博文链接】
【28】组合优化算法
一些用于 模型求解的启发式算法,主要针对很难求解的NP问题。
【博文链接】
【29】差分方程模型
差分方程是 包含未知函数的差分及自变数的方程 。主要用于 时间序列模型 和求解 常微分方程 。在求微分方程的数值解时,常 用差分来近似 微分,所导出的方程就是差分方程。通过 解差分方程来求微分方程的近似解, 是 连续问题离散化 的一个例子。
【博文链接】
【30】常微分方程的解法
建立微分方程只是解决问题的第一步,通常需要求出方程的解。而绝大多数 变系数方程、非线性方程 都是所谓“ 解不出来”的, 对于用微分方程解决实际问题来说,数值解法就是一个十 分重要的手段.
【博文链接】
【31】偏微分方程的数值解
自然科学与工程技术中, 事物运动发展过程与平衡现象的规律常是含有未知函数及其导数的方程 ,而偏微分方程是 只含有未知多元函数及其偏导数的方程。
【博文链接】
【32】稳定状态模型
对于某些主要研究 某种意义下稳定状态的特征 的实际问题,或 当时间充分长以后动态过程的变化趋势 ,为了分析这种稳定与不稳定的规律常常 不需要求解微分方程 ,而可以利 用微分方程稳定性理论直接研究平衡状态的稳定性。
【博文链接】
: 、 、 ;
【33】变分法模型
动态过程的另一类问题—— 动态优化问题 ,一般要归结为 求最优控制函数使某个泛函达到极值 。变分法是研究泛函极值问题的一种经典数学方法,博文中还介绍了 动态系统最优控制问题求解的必要条件和最大值原理。
【博文链接】
五、应用篇:历年数模真题与优秀论文
【34】数学建模在经济管理方面的运用
【博文链接】
每种产品都有不同方面的属性,例如价格、安 全性、外观、保质期等。 顾客对每种属性的各个选项的偏好程度 可以用 效用函数 来表示,即某种属性的不同选项对顾客的价值(效用)。 联合分析 就是 从这些具体 产品的效用信息中,反过来估计每个属性中各个选项的效用。
: 已知各条航线上顾客对舱位的需求,应该如何分配头等舱和经济舱的机票?
:即 生产和消费(供应能力和需求能力)达到平衡,不再发生变化 时,该商品的价格就是市场的 清算价格 。
:求清算价格。
已知道路上每辆汽车的平均行驶时间和汽车流量之间的关系,长期来看,汽车将如何在每条道路上的分布。
- 瓶颈设备是组装部件的最关键的设备,其生产能力非常紧张。
- 生产计划优化问题是在给定的外部需求和生产能力等限制条件下,按照一定的生产目标(通常是生产总费用 最小)编制未来若干个生产周期的最优生产计划。
:将不同种类的股票按某种比例组合到一起, 使得投资的收益回报尽可能最大,又要使风险尽可能小 。收益常用 均值 来衡量,风险可以用 方差OR绝对偏差 ….来衡量。我们的目标函数或约束条件就常常是与回报OR风险有关,而要 求解的就是各种股票在这个投资组合中占的这个比例 ,也就是 权重 。
10 、 :将原材料通过切割、剪裁、冲压等手段加工成所需大小的工艺品时, 确定下料方案, 使用料最省或利润最大 ,是典型的原料下料问题。
:对于不同轮 的面试, 多名同学所需时间不同,要如何安排 4 名同学的面试顺序,使完成全部面试所花费的时 间最少。
【35】历年竞赛题目
【1】
【2】
附录: 机器学习的特征工程-图片
附录:深度学习框架-以keras为例-图片
以后再更,目前上述内容只是 大致介绍了常用的数学方法 ,更详细的信息需要大家自己去深挖,我只是在尽力领着别人入门。
到此完结!希望能帮到你!