2023华中杯c题(答案)
大赛简介
第十五届“华中杯”大学生数学建模挑战赛(以下简称竞赛)于3月13日正式开启报名。举办竞赛的目的在于提升学生对数学科学理论及应用价值的认识,培养学生的创新意识与团队精神。竞赛由湖北省工业与应用数学学会主办,泰迪智能科技(武汉)有限公司承办,武汉大学、华中科技大学、华中师范大学、中南财经政法大学、华中农业大学、中国地质大学、武汉理工大学、湖北大学、武汉科技大学协办。
题目
空气污染对人类健康、生态环境、社会经济造成危害,其污染水平受诸多因素的影响, 如 PM2.5、PM10、CO、气温、风速、降水量等,探究 PM2.5 等污染物浓度的因素,更精 准的预测 PM2.5 浓度和 AQI 指数等是科学界和决策者共同关心的问题,对于解析污染影 响因素和有效制订控制策略具有重要意义
为了健全和针对完善重污染天气的应对处置机制,提高重污染天气预防预警、应急响 应能力和环境精细化管理水平,消除重度及以上污染天气,作为突发环境事件应急预案体 系的重要组成部分,某地发布污染天气应急预案,该预案将加强监测预警和节能减排,最 大程度降低污染天气的影响。其预警等级划分为四级应急响应:
蓝色预警:预测日 AQI>150 或日 AQI>100 持续 48 小时及以上。
黄色预警:预测日 AQI>200 或日 AQI>150 持续 48 小时及以上。
橙色预警:预测日 AQI>200 持续 48 小时或日 AQI>150 持续 72 小时及以上。
红色预警:预测日 AQI>200 持续 72 小时且日 AQI>300 持续 24 小时及以上。
请完成以下几个问题要求:
- 问题一:根据附件 1 和附件 2,对数据进行分析和处理,筛选出与 PM2.5 浓度变化有关的因素,并说明筛选出的因素对 PM2.5 浓度影响的程度。
附件一特征和示例数据如下:
年 月 日 AQI 质量等级 PM10 O3 SO2 PM2.5 NO2 CO
2015 1 1 85 良 119 74 41 46 58 1.1
2015 1 2 110 轻度污染 144 20 56 83 79 1.4
附件二特征和示例数据如下:
V01301 V04001 V04002 V04003 V13305 V10004_700 V11291_700 V12001_700 V13003_700
1 2015 1 1 0.0 1031.2 1.3 1.8 55.0
1 2015 1 2 0.0 1025.8 0.8 5.2 61.0
V01301 区站号(字符) -
V04001 年 年
V04002 月 月
V04003 日 日
V13305 降水量 毫米
V10004_700 平均气压 百帕
V11291_700 平均2分钟风速 米/秒
V12001_700 平均气温 摄氏度(℃)
V13003_700 平均相对湿度 百分率 - 问题二:自行划分训练集和测试集,根据附件 1 和附件 2,基于问题一构建 PM2.5 浓 度多步预测模型,分别使用均方根误差(RMSE)对 3 步、5 步、7 步、12 步预测效果进 行评估,其结果请用表 1 格式在正文中具体给出,并对测试集及其预测结果进行可视化。 同时,用该模型预测附件 3 所给定时间的 PM2.5 浓度,其结果请用表 2 格式在正文中具 体给出。
表 1 PM2.5 浓度预测的 RMSE 结果(样表)
预测步长 3 步预测 5 步预测 7 步预测 12 步预测
RMSE
RMSE 表 2 PM2.5 浓度预测结果(样表)
日期(年/月/日) 20**// 20**// … 20**//
PM2.5 - 问题三:构建 AQI 多步预测模型,使用均方根误差(RMSE)对建模效果进行评估, 并对测试集及其预测结果进行可视化。同时,用该模型预测附件 3 所给定时间的 AQI,并 给出每天空气质量的预警等级,其结果请用表 3 和表 4 格式在正文中具体给出。
表 3 AQI 预测结果(样表)
日期(年/月/日) 20**// 20**// … 20**//
AQI
预警等级颜色
表 4 预警等级颜色次数汇总 (样表)
预警等级颜色 蓝色 黄色 橙色 红色 无 合计
天数(天)
第一题
分析附件一和附件二可知,我们需要对这个两个附件的年月日数据进行合并。
第一步:导入数据
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.feature_selection import RFE
from sklearn.linear_model import LinearRegression, Lasso
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
加载附件一数据
data1 = pd.read_excel(“data/附件1.xlsx”)
加载附件二数据
data2 = pd.read_ex