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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/795967.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux--USB驱动开发(二)USB总线程序

一、USB总线驱动程序的作用 a)识别USB设备 1.1 分配地址 1.2 并告诉USB设备(set address) 1.3 发出命令获取描述符 b)查找并安装对应的设备驱动程序 c)提供USB读写函数 二、USB设备工作流程 由于内核自带了USB驱动,所以我们先插入一个U…

【漏洞复现】飞企互联-FE企业运营管理平台 uploadAttachmentServlet—文件上传漏洞

声明:本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动,将与本文档的作者或发布者无关。 一、漏洞描述 企互联-FE企业运营管理平台是一个利用云计算、人工智能、大数据、物联网和移动互联网等现代技术构建的云…

不会编程怎么办?量化交易不会编程可以使用吗?

量化交易使用计算机模型程序代替人工进行交易,一般需要投资者自己编写程序建模,然后回测无误之后再进行实盘交易,那么不会编程的投资者能使用量化软件进行量化交易吗? 不会编程使用量化软件有两种方法 一种是请人代写代码&#x…

使用 Apache Pulsar 构建弹性可扩展的事件驱动应用

本视频来自 2024 Apache Pulsar 欧洲峰会,由 David Kjerrumgaard, 《Pulsar in Action》书作者给大家带来的《使用 Apache Pulsar 构建弹性可扩展的事件驱动应用》分享。 嘉宾|David Kjerrumgaard,Apache Pulsar Committer,《Pul…

音视频开发—使用FFmpeg从纯H264码流中提取图片 C语言实现

文章目录 1.H264码流文件解码流程关键流程详细解码流程详细步骤解析 2.JPEG编码流程详细编码流程详细步骤解析 3.完整示例代码4.效果展示 从纯H.264码流中提取图片的过程包括解码和JPEG编码两个主要步骤,以下是详细阐述 1.H264码流文件解码流程 关键流程 查找编解…

css横向滚动条支持鼠标滚轮

在做视频会议的时候&#xff0c;标准模式视图会有顶部收缩的一种交互方式&#xff0c;用到了横向滚动&#xff1b;一般情况下鼠标滚轮只支持竖向滚动&#xff0c;这次写个demo是适配横向滚动&#xff1b; 效果图展示 实现横向滚动条顶部显示 <div className{style.remote_u…

手机和电脑通过TCP传输

一.工具 手机端&#xff1a;网络调试精灵 电脑端&#xff1a;野火网络调试助手 在开始通信之前&#xff0c;千万要查看一下电脑的防火墙是否关闭&#xff0c;否则可能会无法通信 在开始通信之前&#xff0c;千万要查看一下电脑的防火墙是否关闭&#xff0c;否则可能会无法通信…

Qt QChart 曲线图表操作

学习目标&#xff1a;QChart 曲线图表操作 学习内容 QT中的QChart类提供了一个功能强大的图表绘制框架,可以根据需求方便高效地绘制各种类型的图表,主要特点如下: 支持多种常见图表类型,如线图、条形图、饼图、散点图等各种类型。开发者只需要选择合适的图表类和数据即可绘制…

MT6825磁编码IC在智能双旋机器人中的应用

MT6825磁编码IC在智能双旋机器人中的应用&#xff0c;无疑为这一领域的创新和发展注入了新的活力。作为一款高性能的磁性位置传感器&#xff0c;MT6825以其独特的优势&#xff0c;在智能双旋机器人的运动控制、定位精度以及系统稳定性等方面发挥了关键作用。 www.abitions.com …

Web3 社交领域的开发技术

Web3 社交领域的开发技术主要包括以下几种&#xff0c;随着 Web3 技术的不断发展&#xff0c;Web3 社交领域将会出现更多新的技术和应用场景。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1. 区块链技术 区块链技术是 Web3 社交的…

Objective-C 自定义渐变色Slider

文章目录 一、前情概要二、具体实现 一、前情概要 系统提供UISlider&#xff0c;但在开发过程中经常需要自定义&#xff0c;本次需求内容是实现一个拥有渐变色的滑动条&#xff0c;且渐变色随着手指touch的位置不同改变区域&#xff0c;类似如下 可以使用CAGradientLayer实现渐…

印尼Facebook直播网络需要达到什么要求?

在全球化浪潮的推动下&#xff0c;海外直播正受到企业、个人和机构的广泛关注和青睐。无论是用于营销、推广还是互动&#xff0c;海外直播为各种组织提供了更多机会和可能性。本文将探讨在进行印尼Facebook直播前&#xff0c;需要满足哪些网络条件以确保直播的质量和用户体验。…

五、 计算机网络(考点篇)

1 网络概述和模型 计算机网络是计算机技术与通信技术相结合的产物&#xff0c;它实现了远程通信、远程信息处理和资源共享。计算机网络的功能&#xff1a;数据通信、资源共享、管理集中化、实现分布式处理、负载均衡。 网络性能指标&#xff1a;速率、带宽(频带宽度或传送线路…

【密码学】实现消息认证或数字签名的几种方式

消息认证的目的是验证消息的完整性和确认消息的来源。数字签名的目的是不仅验证消息的完整性和来源&#xff0c;还提供了不可否认性。此外&#xff0c;数字签名还可以验证消息的创建时间&#xff0c;防止重放攻击。那么具体有哪些实现的方式呢&#xff1f; 一、仅提供消息认证…

RTC纽扣电池方案

目录 一、能量消耗因素分析 1.1 单片机的RTC 1.2 二极管漏电流 1.3 锂纽扣电池自放电 1.4 STM32-ADC监测纽扣电池电压 二、不可充电纽扣电池 三、可充电纽扣电池 一、能量消耗因素分析 1.1 单片机的RTC 如上图是STM32H743IIT6的数据手册截取的VBAT消耗的电流说明&#x…

气膜建筑的消防应急门:安全与保障—轻空间

气膜建筑&#xff0c;作为一种现代化的建筑形式&#xff0c;以其独特的结构和多功能用途受到广泛欢迎。然而&#xff0c;消防安全作为任何建筑的核心问题&#xff0c;尤其受到关注。为了确保在紧急情况下的安全疏散&#xff0c;气膜建筑在设计和建设过程中&#xff0c;特别重视…

2024 China Joy 前瞻 | 腾讯网易发新作,网易数智携游戏前沿科技、创新产品以及独家礼盒,精彩不断!

今年上半年&#xff0c;CES、MWC和AWE三大国际科技展轮番轰炸&#xff0c;吸引全球科技爱好者的高度关注&#xff0c;无论是新潮的科技产品&#xff0c;还是对人工智能的探索&#xff0c;每一项展出的技术和产品都引起了市场的热议。而到了下半年&#xff0c;一年一度的China J…

全国大学生数据建模比赛c题——基于蔬菜类商品的自动定价与补货决策的研究分析

基于蔬菜类商品的自动定价与补货决策的研究分析 摘要 商超蔬菜不易保存&#xff0c;其质量会随着销售时间的增加而变差&#xff0c;影响商超收益&#xff0c;因此&#xff0c;基于各蔬菜品类的历史销售数据&#xff0c;制定合理的销售策略和补货决策对商超的营收十分关键。本文…

gin源码分析

一、高性能 使用sync.pool解决频繁创建的context对象&#xff0c;在百万并发的场景下能大大提供访问性能和减少GC // ServeHTTP conforms to the http.Handler interface. // 每次的http请求都会从sync.pool中获取context&#xff0c;用完之后归还到pool中 func (engine *Engin…

2024年公共文化与社会服务国际会议(ICPCSS 2024)

2024年公共文化与社会服务国际会议 2024 International Conference on Public Culture and Social Services 【1】会议简介 2024年公共文化与社会服务国际会议是一个集学术性、实践性和国际性于一体的盛会。我们期待与您共同探讨公共文化与社会服务的未来发展方向&#xff0c;为…