数学建模--数据统计类赛题分析~~神经网络引入

1.缺失值的处理

(1)像在下面的这个表格里面,这个对于缺失的数据,我们需要分情况进行分析,如果这个数据就是一个数值型的数据,我们可以使用平均值进行处理;

(2)对于这个分类型数据,就是比如一个问题,你想要吃香蕉,苹果,还是梨,对于这个问题,要求我们必须要选择一个,这个时候,我们就可以依据这个大家的喜好程度,把这个众数作为这个填充值,这个时候是合理的;

(3)有些时候,如果我们有理由去说明这个数据的不存在是合理的,这个时候我们就可以不去处理这个缺失的数据;

2.异常值的处理

(1)对于这个异常值,我们可以使用正态分布的3西格玛原则进行检验,在这个μ+3西格玛之外的,我们就称之为异常值;

(2)对于这个箱线图,包括上面的两个孤立的数据点,我们把这个孤立的点就叫做异常值,上面的线就是极大值,下面的线就是极小值;

(3)对于这个异常值的处理方法,我们可以等同于这个缺失值的处理;

(4)箱型图(箱线图)的说明介绍

这个箱型图就是需要知道一个叫做分位数的东西,这个有上四分位数,下四分位数,这个4是因为我们把这个所有的区间划分为了4份,例如这个0~10的数据,我们生成4份,就是0~2.5,2.5~5,5~7.5,7.5~10,这个5就是中位数,这个是毋庸置疑的,但是这个上四分位数就是7.5,下四分位数就是2.5.仅此而已;

3.赛题分析--神经网络算法

(1)这个题目大概是要干什么,我们需要做什么,这个就是我们首先需要搞明白的,我在这个下面放了一张图片,这个里面就是让我们去探讨这个AQI(可以用来衡量空气质量的一种指标),我们想要探讨这个指标和PM2.5 PM10 SO2 CO NO2 O3这些物质的含量有没有关系,我们是否可以根据这个物质含量去预测这个AQI指标;

(2)我们在预测的时候使用到了下面的这个第一种数据处理的方法,就是数据的Min-Max规范化处理方法;因为这个神经网络需要分为这个数据集和训练集,以及这个相关的层,感兴趣的可以根据这个案例下去自主学习,

(3)我之前在我的主页专栏python人工智能有相关的介绍,但是还是浅显的,我自己对于这个方面也不是很了解,同学们可以自行学习,我也是第一次在这个matlab上面去运行这个代码,很多地方不是很了解,还是需要学习的,同学们可以自己下去学习;

(4)下面有这个源代码,前提这个需要有数据,但是这个数据是excel形式的,我在这个博客里面没有办法导入进来,想使用这个案例以及相关数据的小伙伴可以私信我,我觉得这个案例还是值得研究的;

复制代码
%%问题:
%      有一组北京空气质量数据,通过数据中空气中的各成分含量(PM2.5,PM10,SO2,
%   CO,NO,O3)预测空气评价指标AQI值。

%% 清空环境变量
warning off
clc;
clear;
close all;

%% 导入数据
date=xlsread("北京空气质量数据(1).xlsx");
%% 划分训练集和测试集
date1=randperm(126);
% date1=double(1:126);
P_train=date(date1(1:90),5:10)';
T_train=date(date1(1:90),1)';
M=size(P_train,2);                %返回行向量数

P_test=date(date1(91:end),5:10)';
T_test=date(date1(91:end),1)';
N=size(P_test,2);

%% 数据归一化
[P_train,ps_input]=mapminmax(P_train,0,1); %将最小值和最大值映射到[0,1]
P_test=mapminmax("apply",P_test,ps_input);

[~,ps_output]=mapminmax(T_train,0,1);
t_test=mapminmax("apply",T_test,ps_output);
%% 数据平铺
P_train=double(reshape(P_train,6,1,1,M));%将数据切割为6×1
P_test=double(reshape(P_test,6,1,1,N));

t_train=T_train';
t_test=t_test';
%% 数据格式转换(元胞数组)
p_train=cell(M,1);
for i=1:M
    p_train(i,1)=num2cell(P_train(:,:,1,i),1);
end

p_test=cell(N,1);
for i=1:N
    p_test(i,1)=num2cell(P_test(:,:,1,i),1);
end

%% 创建模型
layers=[
    sequenceInputLayer(6)           % 建立输入层

    lstmLayer(4,"OutputMode","last")  % LSTM层 
    reluLayer                         % Relu激活层
    
    fullyConnectedLayer(1)            % 全连接层
    regressionLayer];                 % 回归层
%% 参数设置
options=trainingOptions("adam",...          % adam 梯度下降法
    "MiniBatchSize",15,...                  % 批大小
    "MaxEpochs",2000,...                    % 最大迭代次数
    "InitialLearnRate",8e-2,...             % 初始学习率
    "LearnRateSchedule","piecewise" ,...    % 学效率下降
    "LearnRateDropFactor",0.08,...           % 学效率下降因子
    "LearnRateDropPeriod",1000,...           % 经过1000次训练后 
    "Shuffle","every-epoch",...             % 每次训练打乱数据集
    "Plots","training-progress",...         % 画出曲线
    "Verbose",false); 
%% 训练模型
net=trainNetwork(p_train,t_train,layers,options);


%% 仿真测试
t_sim1=predict(net,p_train);
t_sim2=predict(net,p_test );

%% 格式转换(double)
t_sim1=double(t_sim1);
t_sim2=double(t_sim2);

%% 数据反归一化
T_sim1=mapminmax("reverse",t_sim1,ps_output);
T_sim2=mapminmax("reverse",t_sim2,ps_output);

%% 均方根误差
error1=sqrt(sum((t_sim1'-t_train).^2)./M);
error2=sqrt(sum((t_sim2'-t_train).^2)./N);

%% 查看网络结构
analyzeNetwork(net)

%% 相关指标计算
% R
R1=1-norm(T_train-t_sim1')^2/norm(T_train-mean(T_train))^2;
R2=1-norm(T_test-t_sim2)^2/norm(T_test-mean(T_test))^2;

disp("训练集数据R2:", num2str(R1));
disp("训练集数据R2:", num2str(R2));

%% MAE
mae1=sum(abs(t_sim1'-T_train)./M);
mae2=sum(abs(t_sim2-T_train)./N);

disp(["训练集数据的MAE:",num2str(mae1)]);
disp(["训练集数据的MAE:",num2str(mae2)]);

%% MBE
mbe1=sum(t_sim1'-T_train)./M;
mbe2=sum(t_sim2-T_test)./N;

disp(["训练集数据的MBE:", num2str(mbe1)]);
disp(["训练集数据的MBE:", num2str(mbe2)]);

%% 绘图
figure
plot(1:M,T_train,"r-*",1:M,t_sim1,"b-o","LineWidth",1)
legend("真实值","预测值")
xlabel("预测样本")
ylabel("预测结果")
grid

figure
plot(1:N,t_sim2,"b-o","LineWidth",1)
legend("预测值")
xlabel("预测样本")
ylabel("预测结果")
grid
相关推荐
做cv的小昊1 天前
【TJU】研究生应用统计学课程笔记(8)——第四章 线性模型(4.1 一元线性回归分析)
笔记·线性代数·算法·数学建模·回归·线性回归·概率论
AI科技星2 天前
光子本源三元结构定理(《全域数学·物理原本》)【乖乖数学】
人工智能·机器学习·数学建模·数据挖掘·agi
AI科技星2 天前
全域数学·72分册·射影原本 无穷维射影几何卷细化子目录【乖乖数学】
人工智能·线性代数·算法·机器学习·数学建模·数据挖掘·量子计算
AI科技星3 天前
全域数学·第二部 几何本原部 《无穷维射影几何原本》合订典藏版【乖乖数学】
人工智能·线性代数·数学建模·矩阵·量子计算
AI科技星4 天前
精细结构常数α作为SI 7大基本量纲统一耦合常数的量子几何涌现理论
算法·机器学习·数学建模·数据挖掘·量子计算
一只小小的土拨鼠4 天前
全网首发】2026五一杯数学建模C题满分解析:多源数据融合下边坡形变预警的“时序变点-分阶预测”全链路方案
数学建模
maligebilaowang4 天前
【2026年华东杯数学建模A题游览路线规划问题】完整思路+论文+可运行代码
数学建模·2026华东杯·游览路线规划
AI科技星4 天前
全域数学·数术本源·第四卷《分析原本》【乖乖数学】
人工智能·机器学习·数学建模·数据挖掘·agi
超级码力6664 天前
【Latex文件架构】Latex文件架构模板
算法·数学建模·信息可视化
热心网友俣先生4 天前
2026年第二十三届五一数学建模竞赛赛题浅析-助攻快速选题
数学建模