基于CNN的陕西降雨量气象分析机器学习项目计算机毕业论文

发布时间:2026/8/25 13:25:54
基于CNN的陕西降雨量气象分析机器学习项目计算机毕业论文 在全球气候变化的大背景下极端天气事件如暴雨、干旱等频繁发生对人类社会经济活动和生态环境造成了严重影响。准确预测降水量对于防灾减灾、水资源管理、农业生产等方面具有重要意义。本系统采用先进的深度学习技术包括CNN、LSTM和Transformer模型对气象数据进行深入分析和降水量预测。CNN模型通过卷积层自动提取气象数据中的空间特征适用于降水量等气象要素的预测。LSTM模型作为一种特殊的循环神经网络能够有效处理和预测时间序列数据适用于降水量等气象数据的预测。Transformer模型通过自注意力机制和并行计算能够更好地捕捉长距离依赖关系提高预测的准确性。系统还包括数据采集与处理模块负责从多种气象数据源自动采集原始数据并进行清洗、格式转换等预处理操作以确保数据的质量和一致性适合模型训练和预测。此外系统还提供模型评估模块对各模型的性能进行评估以确定在特定条件下表现最佳的模型。关键词CNN模型LSMTTransformer预测降雨4.1数据采集与处理4.1.2数据采集本系统数据来源于遇见数据集包含中国陕西省各地区1960年到2019年年度降水量的数据集一共8971条数据。包含一下字段表5-1数据集字段解释字段名翻译说明season季节/时段此处数据的季节precipitation降水量单位为毫米(mm)period_start时段开始日期格式为年/月/日period_end时段结束日期格式为年/月/日site地点中国陕西省各区县名称4.1.2数据预处理本系统调用数据预处理类加载CSV数据、处理异常值、提取时间特征、编码分类变量并生成适合序列模型如LSTM、Transformer的输入数据。具体步骤如下数据加载与初始化。程序首先导入必要的库TensorFlow、NumPy、Pandas等设置中文字体支持并初始化数据预处理器数据预处理器类会读取CSV文件。异常值处理使用IQR方法检测并移除降水量precipitation列的异常值输出处理前后的数据量及异常值比例。时间特征提取从日期列中提取年份、月份、年内天数等特征。分类变量编码使用标签编码LabelEncoder处理“季节”season和“地点”site等分类变量数值特征如年份、月份被保留。特征工程与编码。所有特征经过标准化处理确保不同尺度的特征对模型影响均衡。目标变量降水量保持原始值最终形成特征矩阵X和目标向量y。数据分割与序列化。数据被分为训练集60%、验证集20%和测试集20%。对于时序模型LSTM、Transformer数据进一步被转化为序列格式如10天为一个窗口每个序列的最后一时间步的降水量作为预测目标以捕捉时间依赖性。4.3LSTM模型降水预测4.3.1模型构建LSTM模型的搭建首先定义输入层以接收序列数据构建两层LSTM层分别设置单元数为64和32并在每层后添加Dropout层以防止过拟合。通过两层全连接层进一步提取特征分别设置单元数为50和25并继续使用Dropout进行正则化。最后定义输出层使用线性激活函数输出预测值并编译模型选择Adam优化器和均方误差损失函数。整个过程简洁高效能够有效处理时间序列数据并进行预测。具体步骤如下1.初始化LSTM模型在LSTMModel类的初始化方法中接收输入数据的形状作为参数并调用build_model方法来构建模型。这一步为模型搭建提供了输入数据的维度信息确保模型能够正确处理输入数据。2.定义输入层使用Input层定义模型的输入输入形状与传入的input_shape参数一致。这一步明确了模型接收的数据格式为后续的LSTM层处理序列数据做好准备。3.构建LSTM层第一层LSTM定义一个LSTM层设置单元数为64return_sequencesTrue表示该层会返回整个序列而不仅仅是最后的输出。这允许后续的LSTM层能够接收序列数据并继续处理。第二层LSTM再定义一个LSTM层单元数为32return_sequencesFalse表示该层只返回最后的输出。这一步进一步提取序列数据中的特征并将输出传递给后续的全连接层。4.添加Dropout层在每个LSTM层后添加Dropout层用于防止过拟合。Dropout层会随机丢弃一部分神经元的输出从而增强模型的泛化能力。4.构建全连接层第一层全连接定义一个Dense层单元数为50激活函数为relu。这一步将LSTM层提取的特征进一步加工提取更高级的特征表示。第二层全连接再定义一个Dense层单元数为25激活函数为relu。这一步进一步细化特征为最终的输出做准备。6.添加Dropout层在全连接层后再次添加Dropout层进一步防止过拟合。这一步确保了模型在训练过程中不会过度依赖某些特定的特征从而提高模型的鲁棒性。7.定义输出层定义输出层使用一个Dense层单元数为1激活函数为linear。这一步将模型的输出转换为预测的降水量值完成了从输入序列到预测值的映射。8.编译模型使用model.compile方法编译模型指定优化器为adam损失函数为均方误差mse评估指标为平均绝对误差mae。这一步将模型的结构与训练配置相结合为模型训练做好准备。4.3.2模型训练LSTM模型的训练过程通过早停机制和学习率动态衰减防止过拟合同时使用模型检查点保存验证损失最小的权重。在训练过程中模型在训练集和验证集上同时监控损失和MAE指标最终在测试集上评估性能输出MSE、MAE、R²等关键指标确保模型具备稳定性和预测准确性。1.初始化训练器通过ModelTrainer类初始化一个训练器对象用于管理和训练模型。训练器对象内部维护了模型、训练历史、预测结果和性能指标等信息方便后续对模型进行评估和比较。2.设置训练回调函数在train_model方法中根据模型类型如LSTM设置不同的回调函数。对于LSTM模型设置了早停机制EarlyStopping以监控验证集损失并提前终止训练避免过拟合同时设置了学习率调整器ReduceLROnPlateau以动态降低学习率加速收敛还设置了模型检查点ModelCheckpoint以保存验证损失最低的模型。3.调用训练方法调用train_model方法开始训练LSTM模型。训练过程中模型会根据训练集数据进行参数更新并在每个epoch结束时使用验证集数据评估模型性能。训练器会记录每个epoch的损失值和评估指标如MAE、MSE以便后续分析训练过程。4.训练模型在每个epoch中模型对训练集数据进行前向传播和反向传播更新模型参数。验证集上的性能指标如损失和MAE会被计算并记录用于监控模型的训练情况。如果验证集损失在连续多个epoch中没有改善则触发早停机制提前终止训练。4.动态调整学习率如果验证集损失在连续多个epoch中没有改善学习率调整器会自动降低学习率。这有助于模型在训练后期更精细地调整参数避免陷入局部最优解从而提高模型的收敛速度和性能。6.保存最佳模型在训练过程中模型检查点会监控验证集损失并在每个epoch结束时保存验证损失最低的模型。即使训练提前终止也能确保保存的是性能最佳的模型版本。模型评估5.1特征与降水量相关性分析特征与降水量相关性分析柱状图展示了不同特征与降水量之间的相关系数绝对值用于衡量各特征与降水量之间线性关系的强度。相关系数绝对值越接近1表示相关性越强越接近0表示相关性越弱。各特征分析月份相关系数绝对值最高为0.312。这表明在所有分析的特征中月份与降水量的相关性最强。可能的原因是不同月份的气候条件如季节变化对降水量有显著影响例如某些月份可能处于雨季降水较多而其他月份则相对干燥。年内天数相关系数绝对值为0.278显示出较强的相关性。这可能是因为随着年内天数的推进气候模式和降水模式会发生变化导致降水量与年内天数之间存在一定的关联。季节编码相关系数绝对值为0.245表明季节与降水量之间存在中等强度的相关性。不同季节的气候特征如温度、湿度等会影响降水量的多少例如夏季通常降水较多冬季相对较少。地点编码相关系数绝对值为0.189说明地点与降水量之间存在较弱的正相关性。不同地点的地理位置、地形等因素会影响当地的降水情况但这种影响相对月份和季节来说较小。年份相关系数绝对值最低为0.156表明年份与降水量之间的相关性最弱。这可能意味着在分析的时间范围内年份对降水量的影响不明显降水量的变化更多地受到其他因素如季节、月份等的影响。结论主要影响因素月份和年内天数是影响降水量的主要因素在预测降水量时应重点考虑这些时间相关的特征。次要影响因素季节编码和地点编码也对降水量有一定的影响可以作为辅助特征纳入预测模型。弱影响因素年份与降水量的相关性较弱在简单的预测模型中可能可以忽略但在更复杂的模型中仍可考虑其潜在影响。图5.4C特征与降水量相关性分析5.3预测值vs实际值预测值vs实际值图展示三种不同模型CNN、LSTM、Transformer预测值与实际值对比的散点图。图中横轴表示实际值纵轴表示预测值理想情况下所有点应分布在虚线yx上即预测值与实际值完全相等。所有模型的预测值与实际值呈现出明显的正相关关系随着实际值的增加预测值也相应增加表明三种模型都能在一定程度上捕捉到数据中的模式和趋势。散点大致分布在虚线附近说明模型的预测结果与实际值较为接近。Transformer模型优势明显从图中可以明显看出Transformer模型在降水量预测任务中表现最佳能够更准确地预测实际值具有较高的预测精度和可靠性。数据可视化问题图中LSTM和CNN模型的散点未显示可能需要检查数据或绘图代码以确保所有模型的预测结果都能正确展示从而进行更全面的对比分析。5.6时间序列对比图时间序列预测对比图展示了实际降水量值与三种模型CNN、LSTM、Transformer预测的降水量值随时间点的变化情况。图中使用不同线型区分不同数据实线表示实际值红色虚线表示CNN预测值蓝色虚线表示LSTM预测值绿色虚线表示Transformer预测值。横轴为时间点范围从0到50纵轴为降水量范围从0到2500。Transformer模型优势显著在时间序列预测中Transformer模型能够更好地捕捉降水量的动态变化尤其是在峰值预测方面表现出色具有较高的预测精度和可靠性。LSTM模型有一定能力LSTM模型也能对降水量的变化趋势进行一定程度的预测但在准确性和稳定性上不如Transformer模型。CNN模型表现待提升从图中表现来看CNN模型在时间序列预测中的效果可能相对较差可能需要进一步调整模型结构或参数以提高其性能。