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检验),判断预测结果是否符合正态分布。
相关文章:
2024 年第十四届 APMCM 亚太地区大学生数学建模竞赛B题超详细解题思路+数据预处理问题一代码分享
B题 洪水灾害的数据分析与预测 亚太中文赛事本次报名队伍约3000队,竞赛规模体量大致相当于2024年认证杯,1/3个妈杯,1/10个国赛。赛题难度大致相当于0.6个国赛,0.8个妈杯。该比例仅供大家参考。 本次竞赛赛题难度A:B:C3:1:4&…...
Yarn有哪些功能特点
Yarn是一个由Facebook团队开发,并联合Google、Exponent和Tilde等公司推出的JavaScript包管理工具,旨在提供更优的包管理体验,解决npm(Node Package Manager)的一些痛点。Yarn的功能特点主要包括以下几个方面࿱…...
深度学习算法bert
bert 属于自监督学习的一种(输入x的部分作为label) 1. bert是 transformer 中的 encoder ,不同的bert在encoder层数、注意力头数、隐藏单元数不同 2. 假设我们有一个模型 m ,首先我们为某种任务使用大规模的语料库预训练模型 m …...
PyTorch - 神经网络基础
神经网络的主要原理包括一组基本元素,即人工神经元或感知器。它包括几个基本输入,例如 x1、x2… xn ,如果总和大于激活电位,则会产生二进制输出。 样本神经元的示意图如下所述。 产生的输出可以被认为是具有激活电位或偏差的加权…...
docker-compose搭建minio对象存储服务器
docker-compose搭建minio对象存储服务器 最近想使用oss对象存储进行用户图片上传的管理,了解了一下例如aliyun或者腾讯云的oss对象存储服务,但是呢涉及到对象存储以及经费有限的缘故,决定自己手动搭建一个oss对象存储服务器; 首先…...
vue3使用pinia中的actions,需要调用接口的话
actions,需要调用接口的话,假如页面想要调用actions中的方法获取数据, 必须使用try catch async await 进行包裹,详情看下面代码 import {defineStore} from pinia import {reqCode,reqUserLogin} from ../../api/hospital/i…...
Python酷库之旅-第三方库Pandas(003)
目录 一、用法精讲 4、pandas.read_csv函数 4-1、语法 4-2、参数 4-3、功能 4-4、返回值 4-5、说明 4-6、用法 4-6-1、创建csv文件 4-6-2、代码示例 4-6-3、结果输出 二、推荐阅读 1、Python筑基之旅 2、Python函数之旅 3、Python算法之旅 4、Python魔法之旅 …...
社交电商中的裂变营销利器,二级分销模式,美妆家具成功案例分享
二级分销返佣模式是一种帮助商家迅速扩大市场覆盖的有效营销策略,不仅能降低营销成本,还能提升品牌知名度。下面通过两个具体的案例来说明这种模式的好处和优势。 某知名美妆品牌在市场竞争日益激烈的情况下,决定采用二级分销返佣模式进行市场…...
【国产开源可视化引擎Meta2d.js】图层
独立图层 每个图元都有先后绘画顺序,即每个图元拥有一个独立图层,即meta2d.data().pens的数组索引。 可以通过meta2d.top/bottom/up/down等函数改变独立图层顺序。 分组图层 通过标签可以标识一个分组图层,通过meta2d.find(图层标签)获取…...
基于Redisson实现分布式锁
基于redisson实现分布式锁 之前背过分布式锁几种实现方案的八股文,但是并没有真正自己实操过。现在对AOP有了更深一点的理解,就自己来实现一遍。 1、分布式锁的基础知识 分布式锁是相对于普通的锁的。普通的锁在具体的方法层面去锁,单体应…...
Android Studio下载Gradle特别慢,甚至超时,失败。。。解决方法
使用Android studio下载或更新gradle时超级慢怎么办? 切换服务器,立马解决。打开gradle配置文件 修改服务器路径 distributionUrlhttps\://mirrors.cloud.tencent.com/gradle/gradle-7.3.3-bin.zip 最后,同步,下载,速…...
leetcode--二叉树中的最长交错路径
leetcode地址:二叉树中的最长交错路径 给你一棵以 root 为根的二叉树,二叉树中的交错路径定义如下: 选择二叉树中 任意 节点和一个方向(左或者右)。 如果前进方向为右,那么移动到当前节点的的右子节点&…...
c++ primer plus 第15章友,异常和其他:15.1.3 其他友元关系
c primer plus 第15章友,异常和其他:15.1.3 其他友元关系 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 15.1.3 其他友元关系 提示:写完文章后,目录可以自动生成,如何生成可…...
uniapp+vue3页面跳转和传参
页面跳转: uni.navigateTo({url: /pages/index}) 返回上一层: uni.navigateBack ({delta: 1 }) 页面跳转时传参: 跳转前的页面: uni.navigateTo({url: "/pages/index?id123"}) 跳转后的页面: onLoa…...
硬链接和软链接
在Linux系统中,链接(Link)是一种特殊的文件,它指向另一个文件或目录。链接分为两种类型:硬链接(Hard Link)和软链接(也称为符号链接,Symbolic Link)。 1. 硬…...
属性描述符初探——Vue实现数据劫持的基础
目录 属性描述符——Vue实现数据劫持的基础 一、属性描述符是什么? 编辑 1.1、属性描述符示例 1.2、用属性描述符定义属性及获取对象的属性描述符 1.3、带有读取器和设置器的属性描述符 二、使用属性描述符的情景 2.1、封装和数据隐藏 使用getter和setter…...
字节也没余粮了?天底下没有永远免费的GPT-4;AI产品用订阅制就不合理!让用户掏钱的N种定价技巧嘿嘿 | ShowMeAI日报
👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 当 Coze 也开始收费:天底下没有「永远」免费的 GPT-4 注:这里 Coze 指海外版。国内版 扣子 还是免费。 Coze (海外版) 官网链接 → htt…...
【Matlab 路径优化】基于蚁群算法的XX市旅游景点线路优化系统
基于蚁群算法的XX市旅游景点线路优化系统 (一)客户需求: ①考虑旅游景点的空间分布、游客偏好等因素,实现了旅游线路的智能规划 ②游客选择一景点出发经过所要游览的所有景点只一次,最后回到出发点的前提下…...
我关于Excel使用点滴的笔记
本篇笔记是我关于Excel使用点滴的学习笔记,摘要和地址链接列表。临时暂挂,后面可能在不需要时删除。 (笔记模板由python脚本于2024年06月28日 12:23:32创建,本篇笔记适合初通Python,熟悉六大基本数据(str字符串、int整型、float浮…...
【Java安装】windows10+JDK21+IDEA
文章目录 一、JDK安装1. 下载完成后按照自己需要的位置安装2. 配置环境变量2.1 JAVA_HOME变量2.2 PATH配置 3. 验证4. helloworld 二、IDEA安装三、IDEA-HelloWorld 一、JDK安装 JDK安装链接 1. 下载完成后按照自己需要的位置安装 2. 配置环境变量 2.1 JAVA_HOME变量 安装…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
