2023数学建模国赛E题黄河水沙监测数据分析完整代码分析+处理结果+思路文档

news2024/11/13 12:49:27

已经写出国赛E题黄河水沙监测数据分析完整代码分析+处理结果+思路分析(30+页),包括数据预处理、数据可视化(分组数据分布图可视化、相关系数热力图可视化、散点图可视化)、回归模型(决策树回归模型、随机森林回归、GBDT回归、支持向量机回归、全连接神经网络),后续持续更新。

完整代码+结果+思路文档下载地址见文末

E题 黄河水沙监测数据分析.... 2

问题1 分析与研究.... 3

目标1: 含沙量与时间、水位、水流量的关系.... 3

目标2: 并估算近6年该水文站的年总水流量和年总排沙量.... 3

第一步:结合问题1的目标,对数据进行与处理操作.... 3

第二步:数据可视化分析,查看数据之间的关系.... 4

分组数据分布图可视化.... 6

相关系数热力图可视化.... 12

散点图可视化.... 14

目标1:解决方案,建立回归模型,分析他们之间的关系,预测含沙量.... 23

模型1:决策树回归模型.... 24

模型2:随机森林回归.... 27

模型3: GBDT回归.... 29

模型4:支持向量机回归.... 29

模型5:全连接神经网络.... 30

问题2:解决方案,(估算近6年该水文站的年总水流量和年总排沙量)31

国赛E题数学建模题目如下:黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变化和人民生活的影响,以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾等方面都具有重要的理论指导意义。

附件1给出了位于小浪底水库下游黄河某水文站近 6年的水位、水流量与含沙量的实际监测数据,附件 2给出了该水文站近 6年黄河断面的测量数据,附件 3给出了该水文站部分监测点的相关数据。请建立数学模型研究以下问题:

问题1 研究该水文站黄河水的含沙量与时间、水位、水流量的关系,并估算近 6年该水文站的年总水流量和年总排沙量。

问题2 分析近 6年该水文站水沙通量的突变性、季节性和周期性等特性,研究水沙通量的变化规律。

问题3 根据该水文站水沙通量的变化规律, 预测分析该水文站未来两年水沙通量的变化趋势 ,并 为该水文站制订未来两年最优的采样监测方案(采样监测次数和具体时间等),使其既能及时掌握水沙通量的动态变化情况,又能最大程度地减少监测成本资源。

问题4 根据该水文站的水沙通量和河底高程的变化情况,分析每年 6 7月小浪底水库进行“调水调沙”的实际效果。如果不进行“调水调沙”, 10年以后该水文站的河底高程会如何?

问题分析

问题1 研究该水文站黄河水的含沙量与时间、水位、水流量的关系,并估算近 6年该水文站的年总水流量和年总排沙量。(完整文档和代码见文末地址)

首先导入相关库:

## 设置图像显示情况
%config InlineBackend.figure_format = "retina"
%matplotlib inline    
import seaborn as sns  ## 设置中文字体显示
sns.set(font= "SimSun",style="whitegrid",font_scale=1.4)
import matplotlib  ## 解决坐标轴的负号显示问题
matplotlib.rcParams['axes.unicode_minus']=False 
## 导入需要的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import missingno as msno 
from scipy import stats
import statsmodels.api as sm
import statsmodels.formula.api as smf
from statsmodels.stats.multicomp import pairwise_tukeyhsd
import plotly.express as px

## 忽略提醒
import warnings
warnings.filterwarnings("ignore")

问题1 分析与研究

2023国赛数学建模E题问题1分析如下

首先是目标1: 含沙量与时间、水位、水流量的关系

子问题:含沙量与时间的关系、含沙量与水位的关系、含沙量与水流量的关系(注意,可以分别分析两者之间的关系建模,也可以分析一个和多个变量之间关系的建模)

分析方式和步骤可以是:(1)数据清洗与整理,得到感兴趣的数据,利用可视化辅助分析之间的关系,利用相关性分析、回归分析等模型,建立数据之间的定量关系。(完整文档和代码见文末地址)

接着是目标2: 并估算近6年该水文站的年总水流量和年总排沙量

子问题:总排沙量理论上可以通过水流量和含沙量计算得到。因此重点还是分析年总水流量与含沙量之间的情况。

分析方式和步骤可以是:(1)数据清洗与整理,得到感兴趣的数据,利用可视化辅助分析之间的关系,通过相应的计算,获取目标数据。

第一步:结合问题1的目标,对数据进行与处理操作

结合附件1中给出的数据特点,我们将提供的的数据量计精确到以天为单位的精度。

第二步:数据可视化分析,查看数据之间的关系

## 根据时间变量变化的数据散点图可视化

## 水位的变化情况
plt.figure(figsize=(12,3))
p = sns.lineplot(data=dfq1, x="日期", y="水位",lw = 2)
plt.xlabel("时间")
plt.ylabel("水位(m)")
plt.title("")
plt.savefig('figs/水位的变化情况.png', dpi=300, bbox_inches='tight')
plt.show()

## 流量的变化情况
plt.figure(figsize=(12,3))
p = sns.lineplot(data=dfq1, x="日期", y="流量",lw = 2)
plt.xlabel("时间")
plt.ylabel("流量("+"$m^3$"+"/s)")
plt.title("")
plt.savefig('figs/流量的变化情况.png', dpi=300, bbox_inches='tight')
plt.show()

## 含沙量的变化情况
plt.figure(figsize=(12,3))
p = sns.lineplot(data=dfq1, x="日期", y="含沙量",lw = 2)
plt.xlabel("时间")
plt.ylabel("含沙量(kg/"+"$m^3$"+")")
plt.title("")
plt.savefig('figs/含沙量的变化情况.png',dpi=300,bbox_inches='tight')
plt.show()


## 可以发现在含沙量等特征的变化情况

分组数据分布图可视化

针对含沙量数据,进一步的分析其随时间年份上的变化趋势

sns.swarmplot(data=dfq1, x="年", y="含沙量", hue="年")
plt.xlabel("年")
plt.ylabel("含沙量(kg/"+"$m^3$"+")")
plt.title("")
plt.savefig('figs/含沙量数据随时间年份上的变化趋势.png', dpi=300, bbox_inches='tight')
plt.show()

## 可以发现2018-2021年,含沙量普遍偏高

## 针对含沙量数据,进一步的分析其随时间月份上的变化趋势
plt.figure(figsize=(12,6))
sns.swarmplot(data=dfq1, x="月", y="含沙量", hue="月")
plt.xlabel("月")
plt.ylabel("含沙量(kg/"+"$m^3$"+")")
plt.title("")
plt.savefig('figs/含沙量数据随时间月份上的变化趋势.png', dpi=300, bbox_inches='tight')
plt.show()

从可视化图像,可以发现含沙量明显的受到年、月两个变量的影响,即受到时间的影响(完整代码见文末地址)

相关系数热力图可视化

(完整代码见文末地址)
Index(['年', '月', '日', '水位', '流量', '含沙量', '日期'], dtype='object')

## 可以计算几个特征之间的相关系数,从而展示相关性的大小

## 也可以特征之间的秩相关系数
corrdf = dfq1[["年","月","日","水位","流量","含沙量"]]
corrdfval = corrdf.corr(method = "pearson")
print(corrdfval)
## 可视化相关系数热力图
plt.figure(figsize=(10,8))
ax = sns.heatmap(corrdfval,square=True,annot=True,fmt = ".2f",
                 linewidths=.5,cmap="YlGnBu",
                 cbar_kws={"fraction":0.046, "pad":0.03})
ax.set_title("相关性(pearson)")
plt.savefig('figs/相关系数热力图.png', dpi=300, bbox_inches='tight')
plt.show()

可以发现, 含沙量与日无关,月年和月是弱相关性,与水位、流量的相关性较强(这里分析的是线性关系)

散点图可视化

2023数学建模国赛E题:可视化水位与含沙量之间的散点图

(完整代码见文末地址)
plt.figure(figsize=(12,6))
sns.scatterplot(data=dfq1,x="水位", y="含沙量",
                palette="Set1",s = 60)
plt.xlabel("水位(m)")
plt.ylabel("含沙量(kg/"+"$m^3$"+")")
plt.title("")
plt.savefig('figs/水位与含沙量之间的散点图1.png', dpi=300, bbox_inches='tight')
plt.show()

## 可视化 水位月含沙量之间的散点图
# plt.figure(figsize=(12,6))
sns.lmplot(data=dfq1,x="水位", y="含沙量", 
                palette="Set1",height=6,aspect=1.5)
plt.xlabel("水位(m)")
plt.ylabel("含沙量(kg/"+"$m^3$"+")")
plt.title("")
plt.savefig('figs/水位与含沙量之间的散点图2.png', dpi=300, bbox_inches='tight')
plt.show()

plt.figure(figsize=(12,6))
sns.scatterplot(data=dfq1,x="水位", y="含沙量", hue="年",
                palette="Set1",s = 60)
plt.xlabel("水位(m)")
plt.ylabel("含沙量(kg/"+"$m^3$"+")")
plt.title("")
plt.savefig('figs/水位与含沙量之间的散点图3.png', dpi=300, bbox_inches='tight')
plt.show()

含沙量和流量之间可能并不是简单的线性关系,还受到其他特征的影响。而且和前面与水位之间的数据分布很相似(可能使用其中的一个就能很好的表达含沙量)

目标1:解决方案,建立回归模型,分析他们之间的关系,预测含沙量

from sklearn.ensemble import RandomForestRegressor,GradientBoostingRegressor
from sklearn.svm import SVR,LinearSVR
from sklearn.tree import *
from sklearn.metrics import *
from sklearn.neural_network import MLPRegressor
from sklearn.model_selection import  train_test_split
from sklearn.preprocessing import StandardScaler
import graphviz
import pydotplus
from IPython.display import Image  
from io import StringIO

模型1:决策树回归模型

建立决策树回归模型对数据进行预测,使用默认参数

从模型对因变量的预测效果可以知道,模型很好的预测了数据的变化趋势

分析不同深度下在训练集和测试机上的预测精度

除了模型1:决策树回归模型外,后续还有模型2:随机森林回归、模型3: GBDT回归、模型4:支持向量机回归、模型5:全连接神经网络。

完整代码+结果+思路文档下载:2023数学建模国赛E题完整代码和文档

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA培训-核心概念学习

JAVA培训-核心概念 1. SpringBoot 1.1 理清概念(Spring、SpringMvc、SpringBoot、SpringCloud) 1、Spring Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与…

【用unity实现100个游戏之10】复刻经典俄罗斯方块游戏

文章目录 前言网格生成Block方块脚本俄罗斯方块基类,绘制方块形状移动逻辑限制移动自由下落下落后设置对应风格为不可移动类型检查当前方块是否可以向指定方向移动旋转逻辑消除逻辑游戏结束逻辑怪物生成源码参考完结 前言 当今游戏产业中,经典游戏的复刻…

基于SSM的校园美食交流系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

开开心心带你学习MySQL数据库之第六篇下

插入查询结果 把查询和新增联合起来. 把查询结果作为新增的数据 例子:把student1表的查询结果作为新增数据插入到student2表中. create table student1(id int, name varchar(20));create table student2(id int, name varchar(20));insert into student1 values(1, 张三), (2…

NFT 合约部署教程

本篇文章主要介绍如何将您的 NFT(ERC-721 Token) 通过智能合约部署到去中心化网络中 Init Project //创建一款ocean的NFT mkdir nft-ocean//进入目录 cd nft-ocean//初始化项目,根据提示填写即可,packname和description填写即可 npm init//添加hardhat…

【JAVA】Object类与抽象类

作者主页:paper jie_的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和…

批量剪辑神器:AI智剪技巧全攻略

在视频剪辑的工作流程中,效率和质量都是至关重要的。有时候,我们需要对大量的视频进行剪辑,这可能会耗费大量的时间和人力。然而,随着技术的发展,AI智能剪辑工具如固乔智剪软件的出现,大大提高了剪辑的效率…

架构师之如何定位问题

1. 什么是问题 很多人对问题的理解不一样,有人认为问题就是解决方案中的难点,有人认为问题是现实和目标的差距,这些解读我觉得都还不够精确,尝试从毛主席的矛盾论中得到比较合理的解释: 问题就是事物的矛盾。哪里有没…

Ubuntu22.04 安装 MongoDB 7.0

稍微查了一些文章发现普遍比较过时。有的是使用旧版本的Ubuntu,或者安装的旧版本的MongoDB。英语可以的朋友可以移步Install MongoDB Community Edition on Ubuntu — MongoDB Manual,按照官方安装文档操作。伸手党或者英语略差的朋友可以按照本文一步步…

计算机重点学科评级B-,山东省属重点高校考情分析

山东科技大学(B-) 考研难度(☆☆) 内容:23考情概况(拟录取和复试分析)、院校概况、23专业目录、23复试详情、各专业考情分析、各科目考情分析。 正文1175字预计阅读:3分钟 2023考情概况 山东科技大学计…

stable diffusion webui升级bug问题解决思路(纯干货)

个人网站:https://tianfeng.space/ 文章目录 一、前言二、个人方案1.扼杀在萌芽中A.解压后点击启动器运行依赖,然后点击A启动器B.更新本体和扩展(全部到最新版本)C.把controlnet1.1放入stable diffusion 中D.插件转移E.模型转移F…

怎么选动捕设备?惯性动作捕捉还是光学动捕?

动捕设备在3D角色动画、影视制作中使用,通过动捕设备记录真人演员的动作,然后将其转换为数字模型的动作生成三维的计算机动画,使用动捕设备可以让动画角色更逼真地移动。 目前市面上主要分为光学动捕设备与惯性动作捕捉设备,这二…

基于SSM的学生课外知识学习网站

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

电水壶上要求亚马逊美国站SOR/2016-181和CSA22.1标准?

电水壶作为一种常见的小家电,受到了广大消费者的喜爱。然而,由于安全问题的日益重视,亚马逊加拿大站决定加强对电水壶产品的审核,以确保消费者的安全和权益。 近日,亚马逊平台发布公告,要求在加拿大站销售…

跨越时空,亲临其境:3D展示技术让你在家就能游览全球旅游景区

随着科技的不断发展,3D虚拟现实技术在文旅景区中的应用越来越广泛。相比传统的游览方式,3D展示技术具有以下优点: 一、真实感强 3D全景展示可以将文旅景区的真实场景以三维的方式呈现出来,让游客可以在虚拟的环境中感受到真实的场…

电子产品出口欧盟做什么认证?电子产品CE认证标准有哪些?

CE认证是产品出口到欧盟的通行证,没有CE认证标志的产品是不允许在欧盟市场上销售的,今天就给大家介绍常见的电子产品的CE认证标准有哪些? 电子产品CE认证标准有哪些? 常见的电子产品办理CE认证,做的认证指令是EMC指令…

方案丨TSINGSEE青犀视频AI智能算法助力智慧农业高质量建设

我国是农业大国,随着AI等新兴技术的飞速发展,大数据、互联网等技术业运用到了农业生产的各个环节,为提高土地利用率、减少热工成本,提高生产效率,智慧农业应运而生。 旭帆科技TSINGSEE青犀视频AI智慧农业解决方案&…

如何在SOLIDWORKS中更改单位-硕迪科技

SOLIDWORKS中的单位系统 SOLIDWORKS中的单位系统可以针对单个文件修改、一次修改多个文件以及在默认模板中进行修改。每个SOLIDWORKS文件都有一个单位系统,该单位系统由该文件的文档属性控制。默认情况下,SOLIDWORKS零件、装配体和工程图模板各自规定了…

外贸erp软件条码管理解决方案,应对外贸客户变化多样性

在国际贸易市场下,仓库对于市场和企业之间是商品的流量和储存是必不可少的。其中,条形码在仓储物流中,主要的作用是对物料跟踪管理、建立完整的产品档案,保障仓储的稳定运行,利用仓储空间,提高服务质量。 …

(DXE_DRIVER)PciHostBridge

UEFI-PciHostBridge 1、PciHostBridge简介 PciHostBridge: 提供PCI配置空间,IO,MEM空间访问接口以及统一维护平台相关的PCI资源,提供gEfiPciHostBridgeResourceAllocationProtocolGuid,创建RootBridge等为PciBusDxe提供服务; 2、PciHostBridge 配置空间 PCI桥可管理其下PCI子…