2024 年第十四届 APMCM 亚太地区大学生数学建模竞赛B题超详细解题思路+数据预处理问题一代码分享

B题 洪水灾害的数据分析与预测

亚太中文赛事本次报名队伍约3000队,竞赛规模体量大致相当于2024年认证杯,1/3个妈杯,1/10个国赛。赛题难度大致相当于0.6个国赛,0.8个妈杯。该比例仅供大家参考。

本次竞赛赛题难度A:B:C=3:1:4,选题人数估计A:B:C=1:9:2。基于于本次比赛B题选题人数可能会占据很大的比例的现状,我们将提供两个版本论文,思路完全不同的B题资料【一篇论文+两套代码+售后群不禁言】。下面给大家带来详细的解题思路。

对于数据类型的题目,第一步一定是先进行数据处理,而非直接进行问题一的求解。

数据预处理

缺失值处理:

    - 检查数据中的缺失值情况。

    - 根据数据分布情况选择合适的填补方法,如均值填补、中位数填补或插值法。

异常值处理:

    - 绘制箱线图,识别和处理异常值。

- 根据数据的实际意义和分布情况决定是否去除或调整异常值。

数据标准化:

- 对所有数值型数据进行标准化处理,以消除量纲差异对分析结果的影响。

下面进行部分异常值展示,对于数据中提供的各项指标得分中取值区间均为0-17,其中“地形排水”,存在得分为18,该值可以认定为异常值。进行后续的相关处理即可。对于异常值处理的结果,我们可以采用克里斯插值、三次样条等相关处理进行插值即可

问题 1. 请分析附件 train.csv 中的数据,分析并可视化上述 20 个指标中,哪些指标与洪水的发生有着密切的关联?哪些指标与洪水发生的相关性不大?并分析可能的原因,然后针对洪水的提前预防,提出你们合理的建议和措施。

步骤 1: 相关性分析

1. 计算相关系数:

    - 使用皮尔逊相关系数计算各指标与洪水发生概率之间的相关性。

    - 可以选择使用Spearman或Kendall相关系数进行补充分析。

2. 可视化相关性:

    - 使用Seaborn绘制相关性矩阵热力图,直观展示各指标之间的相关性。

- 分析哪些指标与洪水发生概率的相关性较强,哪些指标相关性较弱。

 

步骤 2: 数据可视化

1. 散点图与回归分析:

    - 绘制每个指标与洪水发生概率的散点图,观察数据分布和趋势。

    - 使用线性回归或其他回归方法拟合数据,分析指标与洪水发生概率的关系。

2. 箱线图与分布图:

    - 使用箱线图展示不同指标在不同洪水发生概率区间内的分布情况。

- 使用直方图和密度图分析各指标的分布特征。

 步骤 3: 文字描述

1. 指标分析:

    - 根据相关性分析和可视化结果,讨论各指标对洪水发生的潜在影响机制。

    - 分析可能的人为因素和自然因素对洪水发生的影响。

2. 提出建议:

    - 针对高相关性指标,提出相应的洪水提前预防措施,如加强河流管理、改善排水系统、控制森林砍伐等。

问题 2. 将附件 train.csv 中洪水发生的概率聚类成不同类别,分析具有高、中、低风险的洪水事件的指标特征。然后,选取合适的指标,计算不同指标的权重,建立发生洪水不同风险的预警评价模型,最后进行模型的灵敏度分析。

步骤1: 聚类分析

1. K-means聚类:

    - 使用K-means算法将洪水发生概率分为高、中、低三个风险类别。

    - 对数据进行聚类前的标准化处理,以提高聚类效果。

2. 聚类结果分析:

    - 分析不同类别的指标特征,找出各类别之间的显著差异。

    - 使用可视化方法展示聚类结果,如雷达图、箱线图等。

步骤 2: 权重计算与模型建立

1. 特征选择与权重计算:

    - 使用信息增益、Gini系数等特征选择方法,计算不同指标的权重。

    - 选取重要指标,建立加权和的洪水风险评估模型。

2. 模型灵敏度分析:

    - 通过改变模型参数或去除某些指标,分析模型预测结果的变化。

- 评估模型的鲁棒性和敏感性,确保模型在不同条件下的稳定性。

特征重要性柱状图

问题 3. 基于问题 1 中指标分析的结果,请建立洪水发生概率的预测模型,从 20 个指标中选取合适指标,预测洪水发生的概率,并验证你们预测模型的准确性。如果仅用 5 个关键指标,如何调整改进你们的洪水发生概率的预测模型?

步骤1: 特征选择与模型建立

1. 特征选择:

    - 根据问题1的分析结果,选取与洪水发生概率关系密切的指标。

    - 尝试多种机器学习模型,如线性回归、决策树、随机森林、XGBoost等,建立洪水发生概率的预测模型。

2. 模型训练与优化:

    - 使用交叉验证和网格搜索优化模型参数,选择最优模型。

    - 评估模型的预测精度,确保模型的泛化能力。

步骤2: 模型验证与改进

1. 模型验证:

    - 使用 `train.csv` 中的部分数据进行训练,其余数据进行验证,评估模型的预测精度。

    - 分析预测误差,优化模型结构和参数。

2. 关键指标模型:

    - 如果仅使用5个关键指标,调整模型结构,重新训练和验证模型。

    - 比较不同模型的预测效果,选择最佳方案。

 

问题 4. 基于问题 2 中建立的洪水发生概率的预测模型,预测附件 test.csv 中

所有事件发生洪水的概率,并将预测结果填入附件 submit.csv 中。然后绘制这 74

多万件发生洪水的概率的直方图和折线图,分析此结果的分布是否服从正态分布。

 步骤1: 预测与提交结果

1. 模型预测:

    - 使用问题3中选定的最佳模型,预测 `test.csv` 中每个事件的洪水发生概率。

    - 将预测结果填入 `submit.csv` 文件中。

 步骤2: 分布分析

1. 直方图与折线图:

    - 绘制74万件洪水事件的概率直方图和折线图,分析洪水发生概率的分布情况。

    - 使用正态性检验方法(如Shapiro-Wilk检验),判断预测结果是否符合正态分布。

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

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

相关文章

C语言程序是怎么在计算机中运行起来的

hello.c #include <stdio.h>int main(){printf("hello,world\n");return 0; }这段 C语言程序的代码能被编程人员读懂&#xff0c;但是计算机系统读不懂。C语言、C、java 这些高级编程语言本质上还是人类用的语言而不是计算机用的语言。 为了能在计算机上运行这…

无忧易售功能:刊登页面文本翻译,无缝对接全球买家

每一个词语&#xff0c;每一句话&#xff0c;都承载着产品的灵魂和品牌的故事&#xff0c;无忧易售的刊登页面文本翻译服务&#xff0c;一键操作即可将你的产品介绍、详情或广告文案转化为多语言版本&#xff0c;轻松管理&#xff0c;高效发布。 一、Allegro、OZON、Coupang、…

第7章:Electron文件系统操作(2)

7.2 文件对话框 Electron 提供了 dialog 模块用于显示文件打开和保存对话框。 7.2.1 显示文件打开对话框 主进程代码&#xff1a; const { app, BrowserWindow, ipcMain, dialog } require(electron); const path require(path);let mainWindow;const createMainWindow …

盘点2024年最新鼠标连点器推荐

电脑鼠标连点器是一种可以帮助用户自动化点击操作的小工具&#xff0c;广泛应用于游戏、自动化办公和测试等领域。选择一款合适的鼠标连点器能够提高工作和娱乐的效率&#xff0c;避免重复点击带来的疲劳。小编将为您介绍电脑鼠标连点器的产品特点、推荐几款实用的鼠标连点器并…

一览 Anoma 上的有趣应用概念

撰文&#xff1a;Tia&#xff0c;Techub News 本文来源香港Web3媒体&#xff1a;Techub News Anoma 的目标是为应用提供通用的意图机器接口&#xff0c;这意味着使用 Anoma&#xff0c;开发人员可以根据意图和分布式意图机编写应用&#xff0c;而不是根据事务和特定状态机进行…

Java增加线程后kafka仍然消费很慢

文章目录 一、问题分析二、控制kafka消费速度属性三、案例描述 一、问题分析 Java增加线程通常是为了提高程序的并发处理能力&#xff0c;但如果Kafka仍然消费很慢&#xff0c;可能的原因有&#xff1a; 网络延迟较大&#xff1a;如果网络延迟较大&#xff0c;即使开启了多线…

新手拍短视频的些许建议

1、尽早行动&#xff0c;拒绝完美主义&#xff0c;有手机就能上车&#xff0c;一开始别花太多时间在打磨细节上。总是要准备好了后再做&#xff0c;就总比别人慢一步&#xff0c;可能永远也追不上了&#xff1b; 2、坚持发&#xff0c;度过难熬的启动期就行&#xff0c;不要走…

启明智显Model3A芯片方案7寸高清触摸屏ZX7D00CM21S:开箱、设置与实操全攻略指南

一、背景 本指南将详细介绍启明智显的Model3A芯片方案下的7寸高清触摸屏ZX7D00CM21S的开箱步骤、基础设置以及实操应用。无论您是电子爱好者、开发者还是工程师&#xff0c;这份指南都能助您快速上手并充分利用这款触摸屏的各项功能。 二、硬件介绍 ZX7D00CM21S 7寸高清触摸屏是…

谷歌正在试行人脸识别办公室安全系统

内容提要&#xff1a; &#x1f9ff;据美国消费者新闻与商业频道 CNBC 获悉&#xff0c;谷歌正在为其企业园区安全测试面部追踪技术。 &#x1f9ff;测试最初在华盛顿州柯克兰的一间办公室进行。 &#x1f9ff;一份内部文件称&#xff0c;谷歌的安全和弹性服务 (GSRS) 团队将…

【android】【adb shell】写一个shell脚本,监听进程pid变化

前言 当前业务&#xff0c;需要写一个脚本&#xff0c;不断监视com.android.phone 进程是否异常死掉 脚本 #!/system/bin/sh last_pid"" current_pid"" while(true){current_pidps -A | grep com.android.phone | awk {print $2}if [ -n "$current…

uni-appx,实现登录功能,弹窗功能。组件之间传值

这篇文章的内容使用组合式API实现的&#xff0c;只有弹窗部分有选择式API的写法介绍。如果想要看其他选择式API&#xff0c;还请下载官方的hello-uni-appx源码进行学习&#xff0c;查看。想要看组合式API的写法&#xff0c;请查看源码 hello-uvue。 hello-uni-appx源码 相比于…

Vue + Element UI + JSEncrypt实现简单登录页面

安装依赖 npm install jsencrypt --save局部引入 import JSEncrypt from jsencrypt/bin/jsencrypt;登录页面index.vue <template><div class"loginbody"><div class"logindata"><div class"logintext"><h2>Wel…

Uncaught (in promise) RangeError: Offset is outside the bounds of the DataView

问题 通常发生在Failed to load resource: the server responded with a status of 404 (Not Found) 后&#xff0c;资源读取错误导致的问题。 解决 Failed to load resource: the server responded with a status of 404 (Not Found)_unity webgl failed to load resource:…

LVS-DR群集

LVS-DR集群 LVS-DR(Linux Virtual Server DIrector Server)工作模式&#xff0c;是生产环境中最常用的一种工作模式。 LVS-DR工作原理 LVS-DR模式&#xff0c;Director Server作为群集的访问入口&#xff0c;不作为网关使用&#xff0c;节点DirectorServer与Real Server需要…

TensorRT-Int8量化详解

int8量化是利用int8乘法替换float32乘法实现性能加速的一种方法 对于常规模型有&#xff1a;y kx b&#xff0c;此时x、k、b都是float32, 对于kx的计算使用float32的乘法 对于int8模型有&#xff1a;y tofp32(toint8(k) * toint8(x)) b&#xff0c;其中int8 * int8结果为in…

Python列表创建使用心得详解

概要 列表是Python中最常用的数据结构之一,它用于存储有序的元素集合。Python提供了多种方式来创建和操作列表,使得列表在数据处理、存储和操作中非常灵活。本文将详细介绍Python列表创建的各种技巧,包括基础创建方法、列表推导式、内置函数和高级创建技巧,并包含具体的示…

初出茅庐的小李博客之C语言文件操作

C语言文件操作 在C语言中&#xff0c;文件操作主要是通过标准库函数来实现的。 今天有时间就来学习下一些常用的文件操作函数&#xff1a; C 语言提供了一个 FILE 数据结构&#xff0c;记录了操作一个文件所需要的信息。该结构定义在头文件stdio.h&#xff0c;所有文件操作函…

python库(3):Cerberus库

1 Cerberus简介 Cerberus 是一个Python数据验证库&#xff0c;设计用于验证数据结构的有效性和一致性。它提供了一种简单而强大的方式来定义和应用验证规则&#xff0c;特别适用于处理用户输入的验证、配置文件的检查以及API的参数验证等场景。下面将详细介绍 Cerberus 的特点…

伦敦金价格走势图的资金管理怎么进行?

要成熟地交易伦敦金价格走势图&#xff0c;其实并不是一件容易的事情。其一&#xff0c;我们在很多广告或者周边朋友的宣传之下&#xff0c;觉得它能够帮助我们很快之内实现很多的财富增值&#xff0c;其二&#xff0c;很多投资者觉得伦敦金交易虽然不错&#xff0c;但是风险好…

对象被优化以后才是高效的C++编程

课程总目录 文章目录 一、对象会调用哪些方法、对象优化的三个原则二、CMyString的代码问题三、四、添加带右值引用参数的拷贝构造和赋值函数五、CMyString在vector上的应用六、move移动语义和forward类型完美转发七、再聊vector容器使用对象过程中的优化 一、对象会调用哪些方…