找回密码
 立即注册
查看: 170|回复: 5

数学建模中模型与算法?

[复制链接]
发表于 2024-7-15 17:33 | 显示全部楼层 |阅读模式
各位大佬,数学建模比赛中模型与算法是什么样的关系?
发表于 2024-7-15 17:34 | 显示全部楼层
最优化问题是数学建模中最常见的一类问题,适用于所有需要找出最优解的场景。下面介绍四种常见的解决方法,并分析各自的优缺点。供广大数学建模算法学习者参考。
1.1 使用MATLAB内置的优化类函数工具箱
解决范围:
无约束非线性规划:fminbnd(一元函数)、fminsearch、fminune(多元函数)
有约束非线性规划:fmincon
线性规划:linprog
整数规划:optimvar
缺点:在涉及复杂的目标函数和约束函数时,只能求得局部最优解。
优点:编程简单,只需一个函数即可实现。
1.2使用穷举法
优点:在确定具有最优解时,一定能找到规定范围内的最优解。
缺点:计算量大,需要人工编写程序。
1.3使用粒子群、模拟退火、遗传算法等优化算法
优点:适用范围广,某些时刻能找到全局最优解。
缺点:程序量大,运算时间长。
1.4使用BP神经网络等深度学习方法
优点:适用范围广,看起来很高大上(打建模比赛时有额外加成)。
缺点:需要人工调参,运算时间长。
发表于 2024-7-15 17:34 | 显示全部楼层
在数学建模中,插值和拟合是常用的数据分析技术,用于从给定的离散数据中推断出连续函数或曲线的近似形式。
插值是通过已知数据点之间的插值多项式来估计未知数据点的值。插值方法的目标是在给定数据点上准确地重现原始数据,以便在数据点之间进行插值时获得尽可能准确的结果。常用的插值方法包括线性插值、多项式插值(如拉格朗日插值和牛顿插值)、样条插值等。
拟合是通过选择一个数学模型来逼近离散数据的趋势。拟合方法的目标是找到一个函数或曲线,使其在给定数据点附近拟合得最好。常用的拟合方法包括最小二乘法拟合、多项式拟合、指数拟合、对数拟合等。
这是我自己总结的一些代码和资料(本文中的代码以及参考书籍等),放在github上供大家参考:https://github.com/HuaandQi/Mathematical-modeling.git

  1.插值与拟合的实现


以下是一个简单的示例,展示如何在Python中使用Scipy库进行插值和拟合:
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from scipy.interpolate import interp1d
  4. from scipy.optimize import curve_fit
  5. # 示例数据
  6. x = np.array([1, 2, 3, 4, 5])
  7. y = np.array([2, 4, 5, 4, 1])
  8. # 线性插值
  9. f_linear = interp1d(x, y, kind='linear')
  10. # 多项式插值
  11. f_poly = interp1d(x, y, kind='quadratic')
  12. # 绘制插值曲线
  13. x_new = np.linspace(1, 5, 100)
  14. plt.plot(x, y, 'ro', label='原始数据')
  15. plt.plot(x_new, f_linear(x_new), 'b-', label='线性插值')
  16. plt.plot(x_new, f_poly(x_new), 'g-', label='多项式插值')
  17. plt.legend()
  18. plt.show()
  19. # 多项式拟合
  20. def func(x, a, b, c):
  21.     return a * np.exp(-b * x) + c
  22. popt, pcov = curve_fit(func, x, y)
  23. # 绘制拟合曲线
  24. plt.plot(x, y, 'ro', label='原始数据')
  25. plt.plot(x_new, func(x_new, *popt), 'b-', label='拟合曲线')
  26. plt.legend()
  27. plt.show()
  28. # 输出拟合参数
  29. print("拟合参数:", popt)
复制代码
这个示例演示了如何进行线性插值、多项式插值以及多项式拟合。你可以根据自己的数据和需求选择合适的插值方法和拟合方法,并使用相应的函数进行计算和分析。
2.运行结果展示




  1. 拟合参数: [ 4.65895190e+03  4.29165904e-05 -4.65515211e+03]
复制代码
3.关于学习插值与拟合的建议

学习插值和拟合是数学建模中重要的技能之一。下面是一些建议,帮助你有效学习插值和拟合的理论和实践:
1. 理解基本概念:首先,确保你对插值和拟合的基本概念有清晰的理解。了解插值和拟合的目标、原理和应用场景,以及常用的方法和算法。
2. 学习数学知识:插值和拟合涉及到一些数学知识,如多项式、曲线拟合、最小二乘法等。建议学习相关的数学知识,包括线性代数、微积分、统计学等,以便更好地理解和应用插值和拟合方法。
3. 掌握相关工具和库:学习使用计算工具和编程语言中的插值和拟合库,如Python中的Scipy、Matlab中的Curve Fitting Toolbox等。熟悉这些工具的函数和用法,可以方便地进行插值和拟合的计算和分析。
4. 实践与应用:通过实际问题和案例进行实践和应用。选择一些具体的数据集或实际问题,尝试使用插值和拟合方法来分析和处理数据。实践中会遇到各种情况和挑战,从中学习和提高。
5. 阅读文献和案例:阅读相关的学术文献、教材和案例,了解最新的研究成果和应用实践。这些资源可以提供更深入的理论知识、实验验证和实际应用的经验。
6. 参与项目和竞赛:参与数学建模项目和竞赛,其中常常会涉及到插值和拟合的问题。通过与团队合作和实际竞争,锻炼和提升自己的插值和拟合能力。
记住,插值和拟合是实践性较强的技术,需要不断的学习、实践和实验,才能提高自己的能力和理解。保持兴趣和持续学习的态度,逐步掌握插值和拟合的技能,并将其应用于实际问题中。
这是我自己总结的一些代码和资料(本文中的代码以及参考书籍等),放在github上供大家参考:https://github.com/HuaandQi/Mathematical-modeling.git

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2024-7-15 17:34 | 显示全部楼层
今天一起学习第二个常用模型—插值与拟合。
01 何为插值与拟合

插值:求过已知有限个数据点的近似函数。
拟合:已知有限个数据点,求近似函数,可不过已知数据点,只要求在某种意义下它在这些点上的总偏差最小。

插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同的。而面对一个实际问题,究竟应该用插值还是拟合,有时容易确定,有时则并不明显。

常见的插值:拉格朗日多项式插值、牛顿插值、分段线性插值、 Hermite 插值和三次样条插值。
02 插值与拟合的实现

拟合:拟合的实现分为MATLAB和excel实现。 MATLAB的实现就是polyfit函数:主要是多项式拟合。

更复杂的函数拟合,使用的是最小二乘法,或者其他方法。但是需要经验公式:




此代码比较简单,大家自己看书就能立刻看明白。 关于拟合:拟合可以用excel,也可以用MATLAB,关于excel的用法。大家自己探索,提示:添加趋势线。

关于matlab,需要了解一些函数:
Polyfit、polyval其余参考MATLAB汇总中的MATLAB常用函数参考。
Polyfit是多项式拟合: 需要输入x,y的数据,x和y个数一致,然后polyfit(x,y,n)n表示需要拟合的次数。Polyval一般套用在polyfit后,用法看上图。

插值:插值是相对拟合略微麻烦一点点:

插值的函数 interp2,这个大家经常见,关于interp2的用法网上介绍的很多。这里有一个需要注意的事项就是:以下为例



03 meshgrid   intrerp  griddate

1、meshgrid

meshgrid用于从数组a和b产生网格。生成的网格矩阵A和B大小是相同的。它也可以是更高维的。

[A,B]=Meshgrid(a,b)

生成size(b)Xsize(a)大小的矩阵A和B。它相当于a从一行重复增加到size(b)行,把b转置成一列再重复增加到size(a)列。因此命令等效于:
A=ones(size(b))*a;
B=b'*ones(size(a))
举例如下:


2、 interp

interp1——一维数据插值函数

一维数据插值。该函数对数据点之间计算内插值,它找出一元函数f(x)在中间点的数值,其中函数表达式由所给数据决定。

yi=interp1(x,Y,xi):返回插值向量yi,每一元素对应于参量xi,同时由向量X与Y的内插值决定。参量x 指定数据Y的点。若Y为一矩阵,则按Y的每列计算。yi是阶数为length(xi)*size(Y,2)的输出矩阵。

yi=interp1(Y,xi):假定x=1:N,其中N为向量Y的长度,或者为矩阵Y的行数。

yi=interp1(x,Y,xi,method):用指定的算法计算插值。nearest为最近邻点插值,直接完成计算;linear为线性插值(默认方式),直接完成计算;spline为三次样条函数插值。

yi=interp1(x,Y,xi,method,'extrap'):对于超出x范围的xi中的分量将执行特殊的外插值法extrap。

yi=interp1(x,Y,xi,method,extrapval):确定超出x范围的xi中的分量的外插值extrapval,其值通常取NaN或0。

interp2函数——二维数据内插值

完成二维的数据插值。

ZI=interp2(X,Y,Z,XI,YI):返回矩阵ZI,其元素包含对应于参量XI与YI(可以是向量、或同型矩阵)的元素。用户可以输入行向量和列向量Xi与Yi,此时,输出向量Zi与矩阵meshgrid(xi,yi)是同型的。同时取决于由输入矩阵X、Y与Z确定的二维函数Z=f(X,Y)。

ZI=interp2(Z,XI,YI):默认地,X=1:n、Y=1:m,其中[m,n]=size(Z)。再按第一种情形进行计算。

ZI=interp2(Z,n):作n次递归计算,在Z的每两个元素之间插入它们的二维插值,这样,Z的阶数将不断增加。interp2(Z)等价于interp2(z,1)。

ZI=interp2(X,Y,Z,XI,YI,method):用指定的算法method计算二维插值。linear为双线性插值算法(默认算法),nearest为最临近插值,spline为三次样条插值,cubic为双三次插值。

interp3函数——三维数据插值

完成三维数据插值。

VI=interp3(X,Y,Z,V,XI,YI,ZI):求出由参量X,Y,Z决定的三元函数V=V(X,Y,Z)在点(XI,YI,ZI)的值。参量XI,YI,ZI是同型阵列或向量。若向量参量XI,YI,ZI是不同长度、不同方向(行或列)的向量,这时输出参量VI与Y1,Y2,Y3为同型矩阵。Y1,Y2,Y3为用函数meshgrid(XI,YI,ZI)生成的同型阵列。若插值点(XI,YI,ZI)中有位于点(X,Y,Z)之外的点,则相应地返回特殊变量值NaN。

VI=interp3(V,XI,YI,ZI):默认地,X=1:N,Y=1:M,Z=1:P,其中,[M,N,P]=size(V),再按上面的情形计算。

VI=interp3(V,n):作n次递归计算,在V的每两个元素之间插入它们的三维插值。这样,V的阶数将不断增加。interp3(V)等价于interp3(V,1)。

VI=interp3(...,method):用指定的算法method做插值计算。linear为线性插值(默认算法),cubic为三次插值,spline为三次样条插值,nearest为最邻近插值。

interpn函数——n维数据插值

完成n维数据插值。

VI=interpn(X1,X2,...,Xn,V,Y1,Y2,..,Yn):返回由参量X1,X2,..,Xn,V确定的n元函数V=V(X1,X2,..,Xn)在点(Y1,Y2,...,Yn)处的插值。参量Y1,Y2,...,Yn是同型的矩阵或向量。若Y1,Y2,...,Yn是向量,则可以是不同长度,不同方向(行或列)的向量。

VI=interpn(V,Y1,Y2,...,Yn):默认地,X1=1:size(V,1),X2=1:size(V,2),...,Xn=1:size(V,n),再按上面的情形计算。

VI=interpn(V,ntimes):作ntimes递归计算,在V的每两个元素之间插入它们的n维插值。这样,V的阶数将不断增加。interpn(V)等价于interpn(V,1)。


  • griddata    功能 数据格点

格式

(1)ZI = griddata(x,y,z,XI,YI)
用二元函数z=f(x,y)的曲面拟合有不规则的数据向量x,y,z。griddata 将返回曲面z 在点(XI,YI)处的插值。曲面总是经过这些数据点(x,y,z)的。输入参量(XI,YI)通常是规则的格点(像用命令meshgrid 生成的一样)。XI 可以是一行向量,这时XI 指定一有常数列向量的矩阵。类似地,YI 可以是一列向量,它指定一有常数行向量的矩阵。

(2)[XI,YI,ZI] = griddata(x,y,z,xi,yi)
返回的矩阵ZI 含义同上,同时,返回的矩阵XI,YI 是由行向量xi 与列向量yi 用命令meshgrid 生成的。

(3)[XI,YI,ZI] = griddata(.......,method)
用指定的算法method 计算:
‘linear’:基于三角形的线性插值(缺省算法);
‘cubic’:基于三角形的三次插值;
‘nearest’:最邻近插值法;
‘v4’:MATLAB 4 中的griddata 算法。


  • matlab二维插值--interp2与griddata

二者均是常用的二维差值方法,两者的区别是,interp2的插值数据必须是矩形域,即已知数据点(x,y)组成规则的矩阵,或称之为栅格,可使用meshgid生成。而griddata函数的已知数据点(X,Y)不要求规则排列,特别是对试验中随机没有规律采取的数据进行插值具有很好的效果。griddata(X,Y,XI,YI,'v4') v4是一种插值算法,没有具体的名字,原文称为“MATLAB 4 griddata method”,是一种很圆滑的差值算法,效果不错。X和Y提供的已知数据点,XI和YI是需要插值的数据点,一般使用meshgrid生成,当然也可以其他数据,但是那样绘图的时候就比较麻烦,不能使用mesh等,只能使用trimesh。

示例如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2024-7-15 17:35 | 显示全部楼层
模型是将实际问题转换为数学问题,算法是求解模型的方法
通过这篇文章,想要给冲刺下个月数维杯数学建模竞赛中算法模型学习方面提供一些帮助,还没有报名的抓紧时间啦
第七届数维杯倒计时17天,你参加了吗数模竞赛中必须熟练掌握的十个算法
一、蒙特卡罗算法
1946年,美国拉斯阿莫斯国家实验室的三位科学家JohnvonNeumann, Stan Ulam和Nick Metropolis共同发明了蒙特卡罗方法。
蒙特卡罗方法(Monte Carlo method),又称随机抽样或统计模拟方法,是一种以概率统计理论为指导的一类非常重要的数值计算方法。此方法使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。
由于传统的经验方法由于不能逼近真实的物理过程,很难得到满意的结果,而蒙特卡罗方法由于能够真实地模拟实际物理过程,故解决问题与实际非常符合,可以得到很圆满的结果。
蒙特卡罗方法的基本原理及思想如下:
当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。
有一个例子可以使你比较直观地了解蒙特卡洛方法:
假设我们要计算一个不规则图形的面积,那么图形的不规则程度和分析性计算(比如,积分)的复杂程度是成正比的。蒙特卡洛方法是怎么计算的呢?假想你有一袋豆子,把豆子均匀地朝这个图形上撒,然后数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面积。当你的豆子越小,撒的越多的时候,结果就越精确。在这里我们要假定豆子都在一个平面上,相互之间没有重叠。
蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。
蒙特卡罗方法与一般计算方法有很大区别,一般计算方法对于解决多维或因素复杂的问题非常困难,而蒙特卡罗方法对于解决这方面的问题却比较简单。其特点如下:
1. 直接追踪粒子,物理思路清晰,易于理解。
2. 采用随机抽样的方法,较真切的模拟粒子输运的过程,反映了统计涨落的规律。
3. 不受系统多维、多因素等复杂性的限制,是解决复杂系统粒子输运问题的好方法。
二、数据拟合、参数估计、插值等数据处理算法
我们通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具。
数据拟合在数学建模比赛中中有应用,与图形处理有关的问题很多与拟合有关系,一个例子就是98年数学建模美国赛A题,生物组织切片的三维插值处理,94年A题逢山开路,山体海拔高度的插值计算,还有吵的沸沸扬扬可能会考的“非典”问题也要用到数据拟合算法,观察数据的走向进行处理。
此类问题在MATLAB中有很多现成的函数可以调用,熟悉MATLAB,这些方法都能游刃有余的用好。
三、线性规划、整数规划、多元规划、二次规划等规划类问题
数学建模竞赛中很多问题都和数学规划有关,可以说不少的模型都可以归结为一组不等式作为约束条件、几个函数表达式作为目标函数的问题。
遇到这类问题,求解就是关键了,比如98年B题,用很多不等式完全可以把问题刻画清楚,因此列举出规划后用Lingo来进行解决比较方便,所以还需要熟悉这个软件。
四、图论算法
这类问题算法有很多,包括:Dijkstra、Floyd、Prim、Bellman-Ford,最大流,二分匹配等问题。
关于此类图论算法,可参考IntroductiontoAlgorithms--算法导论,关于图算法的第22章-第26章。
五、动态规划、回溯搜索、分治算法、分支界定等计算机算法
在数学建模竞赛中,如:92年B题用分枝定界法,97年B题是典型的动态规划问题,
此外98年B题体现了分治算法。
这方面问题和ACM程序设计竞赛中的问题类似,推荐看一下算法导论,与《计算机算法设计与分析》(电子工业出版社)等与计算机算法有关的书。
六、最优化理论的三大经典算法:模拟退火、神经网络、遗传算法
这十几年来最优化理论有了飞速发展,模拟退火法、神经网络、遗传算法这三类算法发展很快。在数学建模竞赛中:比如97年A题的模拟退火算法,00年B题的神经网络分类算法,01年B题这种难题也可以使用神经网络。还有美国竞赛89年A题也和BP算法有关系,当时是86年刚提出BP算法,89年就考了,说明赛题可能是当今前沿科技的抽象体现。03年B题伽马刀问题也是目前研究的课题,目前算法最佳的是遗传算法。
七、网格算法和穷举法
网格算法和穷举法一样,只是网格法是连续问题的穷举。
比如要求在N个变量情况下的最优化问题,那么对这些变量可取的空间进行采点,比如在[a;b]区间内取M+1个点,那么这样循环就需要进行(M+1)N次运算,所以计算量很大。
在数学建模竞赛中:比如97年A题、99年B题都可以用网格法搜索,这种方法最好在运算速度较快的计算机中进行,还有要用高级语言来做,最好不要用MATLAB做网格,否则会算很久。
穷举法大家都熟悉,自不用多说了。
八、一些连续离散方法
大部分物理问题的编程解决,都和这种方法有一定的联系。物理问题是反映我们生活在一个连续的世界中,计算机只能处理离散的量,所以需要对连续量进行离散处理。
这种方法应用很广,而且和上面的很多算法有关。事实上,网格算法、蒙特卡罗算法、模拟退火都用了这个思想。
九、数值分析算法
数值分析(numericalanalysis),是数学的一个分支,主要研究连续数学(区别于离散数学)问题的算法。
如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用。
这类算法是针对高级语言而专门设的,如果你用的是MATLAB、Mathematica,大可不必准备,因为像数值分析中有很多函数一般的数学软件是具备的。
十、图像处理算法
在数学建模竞赛中:比如01年A题中需要你会读BMP图象、美国赛98年A题需要你知道三维插值计算,03年B题要求更高,不但需要编程计算还要进行处理,而数模论文中也有很多图片需要展示,
因此图象处理就是关键。做好这类问题,重要的是把MATLAB学好,特别是图象处理的部分。
常见的四大模型有哪些?
1 优化模型
1.1 数学规划模型


线性规划、整数线性规划、非线性规划、多目标规划、动态规划。
1.2 微分方程组模型

阻滞增长模型、SARS传播模型。
1.3 图论与网络优化问题

最短路径问题、网络最大流问题、最小费用最大流问题、最小生成树问题(MST)、旅行商问题(TSP)、图的着色问题。
1.4 概率模型

决策模型、随机存储模型、随机人口模型、报童问题、Markov链模型。
1.5 组合优化经典问题

1.5.1 多维背包问题(MKP)

背包问题:个物品,对物品,体积为,背包容量为。如何将尽可能多的物品装入背包。
多维背包问题:个物品,对物品,价值为,体积为,背包容量为。如何选取物品装入背包,是背包中物品的总价值最大。
多维背包问题在实际中的应用有:资源分配、货物装载和存储分配等问题。该问题属于难问题。
1.5.2 二维指派问题(QAP)

工作指派问题:个工作可以由个工人分别完成。工人完成工作的时间为。如何安排使总工作时间最小。
二维指派问题(常以机器布局问题为例):台机器要布置在个地方,机器与之间的物流量为,位置与之间的距离为,如何布置使费用最小。
二维指派问题在实际中的应用有:校园建筑物的布局、医院科室的安排、成组技术中加工中心的组成问题等。
1.5.3 旅行商问题(TSP)

旅行商问题:有个城市,城市与之间的距离为,找一条经过个城市的巡回(每个城市经过且只经过一次,最后回到出发点),使得总路程最小。
1.5.4 车辆路径问题(VRP)

车辆路径问题(也称车辆计划):已知个客户的位置坐标和货物需求,在可供使用车辆数量及运载能力条件的约束下,每辆车都从起点出发,完成若干客户点的运送任务后再回到起点,要求以最少的车辆数、最小的车辆总行程完成货物的派送任务。
TSP问题是VRP问题的特例。
1.5.5 车间作业调度问题(JSP)

车间调度问题:存在个工作和台机器,每个工作由一系列操作组成,操作的执行次序遵循严格的串行顺序,在特定的时间每个操作需要一台特定的机器完成,每台机器在同一时刻不能同时完成不同的工作,同一时刻同一工作的各个操作不能并发执行。如何求得从第一个操作开始到最后一个操作结束的最小时间间隔。
2 分类模型
判别分析是在已知研究对象分成若干类型并已经取得各种类型的一批已知样本的观测数据,在此基础上根据某些准则建立判别式,然后对未知类型的样品进行判别分析。
聚类分析则是给定的一批样品,要划分的类型实现并不知道,正需要通过局内分析来给以确定类型的。


2.1 判别分析

2.1.1 距离判别法

基本思想:首先根据已知分类的数据,分别计算各类的重心即分组(类)的均值,判别准则是对任给的一次观测,若它与第类的重心距离最近,就认为它来自第类。
至于距离的测定,可以根据实际需要采用欧氏距离、马氏距离、明科夫距离等。
2.1.2 Fisher判别法

基本思想:从两个总体中抽取具有个指标的样品观测数据,借助方差分析的思想构造一个判别函数或称判别式。其中系数确定的原则是使两组间的区别最大,而使每个组内部的离差最小。
对于一个新的样品,将它的p个指标值代人判别式中求出 y 值,然后与判别临界值(或称分界点(后面给出)进行比较,就可以判别它应属于哪一个总体。在两个总体先验概率相等的假设下,判别临界值一般取:
最后,用统计量来检验判别效果,若则认为判别有效,否则判别无效。
以上描述的是两总体判别,至于多总体判别方法则需要加以扩展。
Fisher判别法随着总体数的增加,建立的判别式也增加,因而计算比较复杂。
2.1.3 Bayes判别法

基本思想:假定对所研究的对象有一定的认识,即假设个总体中,第个总体的先验概率为,概率密度函数为。利用bayes公式计算观测样品来自第个总体的后验概率,当时,将样本判为总体。
2.1.4 逐步判别法

基本思想与逐步回归法类似,采用“有进有出”的算法,逐步引入变量,每次引入一个变量进入判别式,则同时考虑在较早引入判别式的某些作用不显著的变量剔除出去。
2.2 聚类分析

聚类分析是一种无监督的分类方法,即不预先指定类别。
根据分类对象不同,聚类分析可以分为样本聚类(Q型)和变量聚类(R型)。样本聚类是针对观测样本进行分类,而变量聚类则是试图找出彼此独立且有代表性的自变量,而又不丢失大部分信息。变量聚类是一种降维的方法。
2.2.1 系统聚类法(分层聚类法)

基本思想:开始将每个样本自成一类;然后求两两之间的距离,将距离最近的两类合成一类;如此重复,直到所有样本都合为一类为止。
适用范围:既适用于样本聚类,也适用于变量聚类。并且距离分类准则和距离计算方法都有多种,可以依据具体情形选择。
2.2.2 快速聚类法(K-均值聚类法)

基本思想:按照指定分类数目,选择个初始聚类中心;计算每个观测量(样本)到各个聚类中心的距离,按照就近原则将其分别分到放入各类中;重新计算聚类中心,继续以上步骤;满足停止条件时(如最大迭代次数等)则停止。
使用范围:要求用户给定分类数目,只适用于样本聚类(Q型),不适用于变量聚类(R型)。
2.2.3 两步聚类法(智能聚类方法)

基本思想:先进行预聚类,然后再进行正式聚类。
适用范围:属于智能聚类方法,用于解决海量数据或者具有复杂类别结构的聚类分析问题。可以同时处理离散和连续变量,自动选择聚类数,可以处理超大样本量的数据。
2.2.4 模糊聚类分析

2.2.5 与遗传算法、神经网络或灰色理论联合的聚类方法

2.3 神经网络分类方法

3 评价模型
3.1 层次分析法(AHP)


基本思想:是定性与定量相结合的多准则决策、评价方法。将决策的有关元素分解成目标层、准则层和方案层,并通过人们的判断对决策方案的优劣进行排序,在此基础上进行定性和定量分析。它把人的思维过程层次化、数量化,并用数学为分析、决策、评价、预报和控制提供定量的依据。
基本步骤:构建层次结构模型;构建成对比较矩阵;层次单排序及一致性检验(即判断主观构建的成对比较矩阵在整体上是否有较好的一致性);层次总排序及一致性检验(检验层次之间的一致性)。
优点:它完全依靠主观评价做出方案的优劣排序,所需数据量少,决策花费的时间很短。从整体上看,AHP在复杂决策过程中引入定量分析,并充分利用决策者在两两比较中给出的偏好信息进行分析与决策支持,既有效地吸收了定性分析的结果,又发挥了定量分析的优势,从而使决策过程具有很强的条理性和科学性,特别适合在社会经济系统的决策分析中使用。
缺点:用AHP进行决策主观成分很大。当决策者的判断过多地受其主观偏好影响,而产生某种对客观规律的歪曲时,AHP的结果显然就靠不住了。
适用范围:尤其适合于人的定性判断起重要作用的、对决策结果难于直接准确计量的场合。要使AHP的决策结论尽可能符合客观规律,决策者必须对所面临的问题有比较深入和全面的认识。另外,当遇到因素众多,规模较大的评价问题时,该模型容易出现问题,它要求评价者对问题的本质、包含的要素及其相互之间的逻辑关系能掌握得十分透彻,否则评价结果就不可靠和准确。
改进方法:
(1) 成对比较矩阵可以采用德尔菲法获得。
(2) 如果评价指标个数过多(一般超过9个),利用层次分析法所得到的权重就有一定的偏差,继而组合评价模型的结果就不再可靠。可以根据评价对象的实际情况和特点,利用一定的方法,将各原始指标分层和归类,使得每层各类中的指标数少于9个。
3.2 灰色综合评价法(灰色关联度分析)

基本思想:灰色关联分析的实质就是,可利用各方案与最优方案之间关联度大小对评价对象进行比较、排序。关联度越大,说明比较序列与参考序列变化的态势越一致,反之,变化态势则相悖。由此可得出评价结果。
基本步骤:建立原始指标矩阵;确定最优指标序列;进行指标标准化或无量纲化处理;求差序列、最大差和最小差;计算关联系数;计算关联度。
优点:是一种评价具有大量未知信息的系统的有效模型,是定性分析和定量分析相结合的综合评价模型,该模型可以较好地解决评价指标难以准确量化和统计的问题,可以排除人为因素带来的影响,使评价结果更加客观准确。整个计算过程简单,通俗易懂,易于为人们所掌握;数据不必进行归一化处理,可用原始数据进行直接计算,可靠性强;评价指标体系可以根据具体情况增减;无需大量样本,只要有代表性的少量样本即可。
缺点:要求样本数据且具有时间序列特性;只是对评判对象的优劣做出鉴别,并不反映绝对水平,故基于灰色关联分析综合评价具有“相对评价”的全部缺点。
适用范围:对样本量没有严格要求,不要求服从任何分布,适合只有少量观测数据的问题;应用该种方法进行评价时,指标体系及权重分配是一个关键的问题,选择的恰当与否直接影响最终评价结果。
改进方法:
(1) 采用组合赋权法:根据客观赋权法和主观赋权法综合而得权系数。
(2) 结合TOPSIS法:不仅关注序列与正理想序列的关联度,而且关注序列与负理想序列的关联度,依据公式计算最后的关联度。
3.3 模糊综合评价法

基本思想:是以模糊数学为基础,应用模糊关系合成的原理,将一些边界不清、不易定量的因素定量化,从多个因素对被评价事物隶属等级(或称为评语集)状况进行综合性评价的一种方法。综合评判对评判对象的全体,根据所给的条件,给每个对象赋予一个非负实数评判指标,再据此排序择优。
基本步骤:确定因素集、评语集;构造模糊关系矩阵;确定指标权重;进行模糊合成和做出评价。
优点::数学模型简单,容易掌握,对多因素、多层次的复杂问题评判效果较好。模糊评判模型不仅可对评价对象按综合分值的大小进行评价和排序,而且还可根据模糊评价集上的值按最大隶属度原则去评定对象所属的等级,结果包含的信息量丰富。评判逐对进行,对被评对象有唯一的评价值,不受被评价对象所处对象集合的影响。接近于东方人的思维习惯和描述方法,因此它更适用于对社会经济系统问题进行评价。
缺点:并不能解决评价指标间相关造成的评价信息重复问题,隶属函数的确定还没有系统的方法,而且合成的算法也有待进一步探讨。其评价过程大量运用了人的主观判断,由于各因素权重的确定带有一定的主观性,因此,总的来说,模糊综合评判是一种基于主观信息的综合评价方法。
应用范围:广泛地应用于经济管理等领域。综合评价结果的可靠性和准确性依赖于合理选取因素、因素的权重分配和综合评价的合成算子等。
改进方法:
(1) 采用组合赋权法:根据客观赋权法和主观赋权法综合而得权系数。
3.4 BP神经网络综合评价法

基本思想:是一种交互式的评价方法,它可以根据用户期望的输出不断修改指标的权值,直到用户满意为止。因此,一般来说,人工神经网络评价方法得到的结果会更符合实际情况。
优点:神经网络具有自适应能力,能对多指标综合评价问题给出一个客观评价,这对于弱化权重确定中的人为因素是十分有益的。在以前的评价方法中,传统的权重设计带有很大的模糊性,同时权重确定中人为因素影响也很大。随着时间、空间的推移,各指标对其对应问题的影响程度也可能发生变化,确定的初始权重不一定符合实际情况。再者,考虑到整个分析评价是一个复杂的非线性大系统,必须建立权重的学习机制,这些方面正是人工神经网络的优势所在。针对综合评价建模过程中变量选取方法的局限性,采用神经网络原理可对变量进行贡献分析,进而剔除影响不显著和不重要的因素,以建立简化模型,可以避免主观因素对变量选取的干扰。
缺点:ANN在应用中遇到的最大问题是不能提供解析表达式,权值不能解释为一种回归系数,也不能用来分析因果关系,目前还不能从理论上或从实际出发来解释ANN的权值的意义。需要大量的训练样本,精度不高,应用范围是有限的。最大的应用障碍是评价算法的复杂性,人们只能借助计算机进行处理,而这方面的商品化软件还不够成熟。
适用范围:神经网络评价模型具有自适应能力、可容错性,能够处理非线性、非局域性的大型复杂系统。在对学习样本训练中,无需考虑输入因子之间的权系数,ANN通过输入值与期望值之间的误差比较,沿原连接权自动地进行调节和适应,因此该方法体现了因子之间的相互作用。
改进方法:
(1) 采用组合评价法:对用其它评价方法得出的结果,选取一部分作为训练样本,一部分作为待测样本进行检验,如此对神经网络进行训练,知道满足要求为止,可得到更好的效果。
3.5 数据包络法(DEA)

3.6 组合评价法

4 预测模型
定性研究与定量研究的结合,是科学的预测的发展趋势。在实际预测工作中,应该将定性预测和定量预测结合起来使用,即在对系统做出正确分析的基础上,根据定量预测得出的量化指标,对系统未来走势做出判断。


4.1 回归分析法

基本思想:根据历史数据的变化规律,寻找自变量与因变量之间的回归方程式,确定模型参数,据此预测。回归问题分为一元和多元回归、线性和非线性回归。
特点:技术比较成熟,预测过程简单;将预测对象的影响因素分解,考察各因素的变化情况,从而估计预测对象未来的数量状态;回归模型误差较大,外推特性差。
适用范围:回归分析法一般适用于中期预测。回归分析法要求样本量大且要求样本有较好的分布规律,当预测的长度大于占有的原始数据长度时,采用该方法进行预测在理论上不能保证预测结果的精度。另外,可能出现量化结果与定性分析结果不符的现象,有时难以找到合适的回归方程类型。
4.2 时间序列分析法

基本思想:把预测对象的历史数据按一定的时间间隔进行排列,构成一个随时间变化的统计序列,建立相应的数据随时间变化的变化模型,并将该模型外推到未来进行预测。
适用范围:此方法有效的前提是过去的发展模式会延续到未来,因而这种方法对短期预测效果比较好,而不适合作中长期预测。一般来说,若影响预测对象变化各因素不发生突变,利用时间序列分析方法能得到较好的预测结果;若这些因素发生突变,时间序列法的预测结果将受到一定的影响。
4.3 灰色预测法

基本思想:将一切随机变量看作是在一定范围内变化的灰色变量,不是从统计规律角度出发进行大样本分析研究,而是利用数据处理方法(数据生成与还原),将杂乱无章的原始数据整理成规律性较强的生成数据来加以研究,即灰色系统理论建立的不是原始数据模型,而是生成数据模型。
适用范围:预测模型是一个指数函数,如果待测量是以某一指数规律发展的,则可望得到较高精度的预测结果。影响模型预测精度及其适应性的关键因素,是模型中背景值的构造及预测公式中初值的选取。
4.4 BP神经网络法

人工神经网络的理论有表示任意非线性关系和学习等的能力,给解决很多具有复杂的不确定性和时变性的实际问题提供了新思想和新方法。
利用人工神经网络的学习功能,用大量样本对神经元网络进行训练,调整其连接权值和闭值,然后可以利用已确定的模型进行预测。神经网络能从数据样本中自动地学习以前的经验而无需繁复的查询和表述过程,并自动地逼近那些最佳刻画了样本数据规律的函数,而不论这些函数具有怎样的形式,且所考虑的系统表现的函数形式越复杂,神经网络这种特性的作用就越明显。
误差反向传播算法(BP算法)的基本思想是通过网络误差的反向传播,调整和修改网络的连接权值和闭值,使误差达到最小,其学习过程包括前向计算和误差反向传播。它利用一个简单的三层人工神经网络模型,就能实现从输入到输出之间任何复杂的非线性映射关系。目前,神经网络模型已成功地应用于许多领域,诸如经济预测、财政分析、贷款抵押评估和破产预测等许多经济领域。
优点:可以在不同程度和层次上模仿人脑神经系统的结构及信息处理和检索等功能,对大量非结构性、非精确性规律具有极强的自适应功能,具有信息记忆、自主学习、知识推理和优化计算等特点,其自学习和自适应功能是常规算法和专家系统技术所不具备的,同时在一定程度上克服了由于随机性和非定量因素而难以用数学公式严密表达的困难。
缺点:网络结构确定困难,同时要求有足够多的历史数据,样本选择困难,算法复杂,容易陷入局部极小点。
4.5 支持向量机法

支持向量机是基于统计学习的机器学习方法,通过寻求结构风险化最小,实现经验风险和置信范围的最小,从而达到在统计样本较少的情况下,亦能获得良好统计规律的目的。
其中支持向量机是统计学习理论的核心和重点。支持向量机是结构风险最小化原理的近似,它能够提高学习机的泛化能力,既能够由有限的训练样本得到小的误差,又能够保证对独立的测试集仍保持小的误差,而且支持向量机算法是一个凸优化问题,因此局部最优解一定是全局最优解,支持向量机就克服了神经网络收敛速度慢和局部极小点等缺陷。
核函数的选取在SVM方法中是一个较为困难的问题,至今没有一定的理论方面的指导。
4.6 组合预测法

在实际预测工作中,从信息利用的角度来说,就是任何一种单一预测方法都只利用了部分有用信息,同时也抛弃了其它有用的信息。为了充分发挥各预测模型的优势,对于同一预测问题,往往可以采用多种预测方法进行预测。不同的预测方法往往能提供不同的有用信息,组合预测将不同预测模型按一定方式进行综合。根据组合定理,各种预测方法通过组合可以尽可能利用全部的信息,尽可能地提高预测精度,达到改善预测性能的目的。
优化组合预测有两类概念,一是指将几种预测方法所得的预测结果,选取适当的权重进行加权平均的一种预测方法,其关键是确定各个单项预测方法的加权系数;二是指在几种预测方法中进行比较,选择拟合度最佳或标准离差最小的预测模型作为最优模型进行预测。组合预测是在单个预测模型不能完全正确地描述预测量的变化规律时发挥其作用的。
发表于 2024-7-15 17:35 | 显示全部楼层
算法本身是数学模型,算法可以包含多个数学模型;
数学模型可以包含多个算法,也可以不包含算法;
算法是可以由输入到输出产出结果的,但是数学模型不一定,数学模型也可以是定性的。
将篮球扔进篮筐的算法:双手握住球,弯曲膝盖,保持肘部伸直,投篮,跟进;
将篮球扔进篮筐的模型:基于抛物线模型对篮球飞行轨迹的研究。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-17 03:32 , Processed in 0.111441 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表