2022小美赛赛题+思路+代码已发布!
A题 翼龙是如何飞行的
B题 序列的遗传过程
C题 对人类活动进行分类
D题 是否应长期禁止野生动物贸易
从赛题难度来看B>A>C>D,其中CD属于ICM交叉学科类赛题,难度系数相对较小,建议小白同学可以选择C或D,其中D题目虽然多,但每一问基本都很简单,预计选的人会比较多
本次平台将会提供C和D的参考思路和资料,接下来将会陆续更新,请点击下方文章领取
数学建模KEEP:2022年数学建模小美赛解题思路资料汇总!
2022小美赛C题参考思路!
C题本质上来说属于分类问题,而且属于有导师分类问题,其中首先需要进行数据的预处理工作,这是因为题目给的数据很多都是量级和单位不一样的,如果不对数据进行处理就贸然分类将导致结果的不准确。
数据预处理包括:
数据清理(清洗):去掉数据中的噪声,纠正不一致。
数据集成:将多个数据源合并成一致的数据存储,构成一个完整的数据集,如数据仓库。
数据归约(消减):通过聚集、删除冗余属性或聚类等方法来压缩数据。
数据变换(转换):将一种格式的数据转换为另一格式的数据(如规范化)。
在这里需要做的主要是数据清理和数据变换,其中数据清理是将数据集中额异常数据和缺失数据进行处理,数据变化常见的是归一化处理
数学建模KEEP:2022年数学建模小美赛解题思路资料汇总!
将数据缩放到0和1之间,公式如下:
![]()
标准归一化
将数据所缩放为均值是0,方差为1的状态,公式如下:
其缩放结果为:
![]()
均值归一化
将数据缩放到-1和1之间,公式如下:
![]()
数据处理完成后即可进行分类工作,分类模型由于第三问牵扯到过拟合问题,所以这里我比较推荐神经网络,因为神经网络很容易出现过拟合行为,但也可以对过拟合行为进行修正。
![]()
BP算法是一种有监督式的学习算法,其主要思想是:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能地接近,当网络输出层的误差xx小于指定的误差时训练完成,保存网络的权值和偏差。具体步骤如下:
(1)初始化,随机给定各连接权[w],[v]及阀值θi,rt。
(2)由给定的输入输出模式对计算隐层、输出层各单元输出
(3)计算新的连接权及阀值,计算公式如下:
(4)选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。
对于第二问评价模型的泛化能力:
神经网络的泛化能力(generalization),是指BP神经网络在学习完成以后,BP神经网络的推广应用能力。泛化能力是衡量BP神经网络性能优劣的一个重要方面。这里可以选择数据分段的判别方式
所谓数据分段指的是将数据按照不同的比例进行验证,如7:3、6:4、5:5等划分为训练数据和验证数据,然后分别计算验证数据的误差即可。误差可以用MSE(均方误差)计算
对于第三问请研究并克服过拟合问题,这里可以推荐的方法是基于遗传算法的BP神经网络算法,以下是优化的过程
![]()
1 模型与数据介绍
下面以MATLAB官方提供的化学传感器的数据集为例,进行建模。
2 数据介绍:采集某个实验过程的数据,将8个传感器的采样数据作为输入(x),第9个传感器的采样数据作为输出(y)。请替换为题目给的数据
2. 数据格式如下:
![]()
3 读取数据:
3.1 %% 读取读取
data=xlsread('数据.xlsx','Sheet1','A1:I498'); %%使用xlsread函数读取EXCEL中对应范围的数据即可
%输入输出数据
input=data(:,1:end-1); %data的第一列-倒数第二列为特征指标
output=data(:,end); %data的最后面一列为输出的指标值
N=length(output); %全部样本数目
testNum=100; %设定测试样本数目
trainNum=N-testNum; %计算训练样本数目
4 GA与BP参数设置
1) BP参数设置
对权重和阈值有关的参数进行说明:
a). 输入层和输出层节点使用size函数直接获取。函数用法:[M,N]=size(A),M为A的行数,N为A的列数。size(A,2)得到的是第二个参数N,即列数。此数据中,输入8个维度指标,输出的为1个维度指标。即输入层节点为8,输出层节点为1。
1. inputnum=size(input,2); %输入层神经元节点个数
2. outputnum=size(output,2); %输出层神经元节点个数
b). 隐含层节点的确定过程,使用循环来遍历范围内的隐含层节点与训练误差情况。因为要找最小的误差,所以初始化训练误差时,将MSE设置较大的数字,用于在循环中确定最佳的隐含层节点。
1. %确定隐含层节点个数
2. %采用经验公式hiddennum=sqrt(m+n)+a,m为输入层节点个数,n为输出层节点个数,a一般取为1-10之间的整数
3. MSE=1e+5; %初始化最小误差
4. for hiddennum=fix(sqrt(inputnum+outputnum))+1:fix(sqrt(inputnum+outputnum))+10
5.
c). 其他BP参数,学习速率,训练次数,训练的目标误差等
1. % 网络参数
2. net.trainParam.epochs=1000; % 训练次数
3. net.trainParam.lr=0.01; % 学习速率
4. net.trainParam.goal=0.000001; % 训练目标最小误差
2)遗传算法GA参数设置
1. %初始化ga参数
2. PopulationSize_Data=30; %初始种群规模
3. MaxGenerations_Data=50; %最大进化代数
4. CrossoverFraction_Data=0.8; %交叉概率
5. MigrationFraction_Data=0.2; %变异概率
3.3 遗传算法优化BP的设计
1)优化变量的设计
使用遗传算法求解优化问题时,对于决策变量(优化变量)有三种编码方式:二进制编码,向量形式编码,矩阵形式编码。
由于权重和阈值分别以m×n维的矩阵,向量形式存在与BP神经网络结构(net)中。为方便对每个元素都进行优化,先将元素分别取出,然后按取的顺序放入到向量(染色体)中,完成编码。权重和阈值的经验范围为[-1,1],可适当将寻优的范围放宽,取[-3,3]。
优化变量(元素)个数的计算如下:
1.nvars=inputnum*hiddennum_best+hiddennum_best+hiddennum_best*outputnum+outputnum; %变量维度
2. lb=repmat(-3,nvars,1); %自变量下限 %repmat得到一个nvars×1维的向量,每个元素的值都为-3,即优化变量下限
3. ub=repmat(3,nvars,1); %自变量上限
2)适应度函数的设计
采用以下公式计算适应度值。
![]()
式中,TraingingSet,TestingSet,分别为训练集和测试集的样本。因为预测精度越高,说明误差越低,所以公式设计为求解最小的均方误差。使用遗传算法后,适应度函数值越小,表明训练越准确,且兼顾模型的预测精度更好。
3)算法设计
将遗传算法视为一个“黑箱”优化器。在确定了优化的变量与目标适应度函数后,只需要经过该“黑箱”,即可输出最小的误差(精度最好值)和最优解变量,再把变量赋给BP神经网络的权值矩阵与阈值向量的相应位置,进行优化后的BP训练与测试即可。说明:在遗传算法的“黑箱”求解器中进行的算法操作为:选择、交叉与变异。
数学建模KEEP:2022年数学建模小美赛解题思路资料汇总!
D题参考思路
小美赛D题是关于野生动物保护的,其中第一问和第二问都是数据分析类赛题,从第三问开始有些难度,
其中第三问是 在过去的二十年里(2003-2022年),贸易发生了什么变化?
参考思路:这里是分析近20年的贸易数据,这里可以建立一个回归拟合模型用于分析数据的变化(理论上分析变化将数据做成图进行描述即可,但这样也太简单了,所以选择回归拟合模型即可)找到各类野生动物近20年的贸易总额后,建立回归拟合模型即可用于分析数据的变化。
野生动物贸易是否与重大传染病的疫情情况有关?
这里主要是建立传染病与野生动物贸易之间的关系,理论上野生动物贸易额越多传染病死亡人数可能就越高,因此可以建立一个野生动物贸易额与传染病疫情死亡人数或感染人数的相关性分析:
在变量的相关性检验中,相关系数通常常用来表示两组变量相关的程度,取值范围是。该值等于0时表示两变量互不相关,大于0时表示正相关,小于0时表示负相关。皮尔逊(Pearson)和斯皮尔曼(Spearman)这两种相关系数最为常用,连续型变量使用皮尔逊相关系数,定序变量或非正态分布的变量使用斯皮尔曼相关系数。
皮尔逊相关系数
由于协方差的值会受X和Y本身的波动范围影响,不能绝对的表现两变量的相关性,因此对协方差进行标准化后,得到皮尔逊相关系数:
![]()
斯皮尔曼相关系数又叫斯皮尔曼等级相关系数,该相关系数计算公式为:
![]()
![]()
对于后面的几问:你同意长时间禁止野生动物贸易吗?它是否会对经济和社会产生巨大的影响,为什么?
思路:答案肯定是同意长期封禁的,这里可以采取类比法,将其他国家针对野生动物禁止使用但并未对经济产生影响的证据来表明即可;
另一种思路是建立模型来证明,中国在2020年、2021年均对野生动物进行了立法,新冠肺炎是由野生动物贸易导致的,因此可以先将中国前20年的经济数据找出来,例如找到2000~2019年的经济数据,然后建立灰色预测模型或其他预测模型对2020、2021经济进行预测,再和实际经济数据进行对比,如果发现预测的高于实际经济数据表明新冠肺炎对经济发展产生了很大的影响,间接可以推导野生动物贸易导致新冠肺炎而对经济社会产生了很严重的影响,因此需要禁止!
数学建模KEEP:2022年数学建模小美赛解题思路资料汇总! |