Part1 精读baseline——如何针对降水预测问题搭建模型
我对该任务浅显的理解是在task1的基础上深化模型以及理解代码用处
1、跑通baseline
准备工作与环境搭建
Datawhale官方有提供详细的速通文档:Docs
按照文档步骤可以速通baseline。
Step 1:在运行环境中安装相关库并进行相应文档解压
Step 2:导入运行需要的库函数
Step 3:数据集路径配置
- 比赛的数据部分分为**数据特征**和**数据真值**两部分,数据特征是模型训练的**输入**,数据真值是模型训练的**标签**
- 其中数据特征部分 输入的路径目录下包含年份文件夹
- 例如示例给出的 "输入路径/2021/..." 各年份文件夹下包含从官网下载的压缩包(e.g. weather.round1.train.ft.2021.1.zip) 解压后文件夹下有不同时段的数据文件夹(e.g. 20210101-00), 内部包含6个nc文件, 是从伏羲大模型中获取的从第6小时到第72小时的数据
- 数据真值部分 输入的路径目录下包含3个年份的.nc数据, 其中选择哪些年份的特征数据作为输入, 就在years中添加哪些年份
- fcst_steps指预测的时间步长, 从第1小时到第72小时, 间隔为1小时
Step 4&Step5:掌握定义
Feature类和GroundTruth类是数据集的定义
方便后续自定义数据集和数据加载类, 方便我们训练时取数据
mydataset类的定义, 整合了加载特征和特征对应真值的功能, 方便后续训练时取数据
Step6:实例化mydataset类来查看数据数量
同时完成数据集的构建后, 我们可以通过DataLoader来查看数据集的数据
Step7:构建模型
Model这个类, 对我们的模型进行定义, 方便后续训练时调用,在本次比赛中, 我们的输入数据维度是(1, 24, 72, W, H), 输出数据维度是(1, 72, W, H) 可以在赛题中查看,这里采用使用更深的网络,或其他更适合解决此类问题的网络也可以加深模型。
Step8:
定义模型的损失函数部分, 用于模型训练做反向传播
Step9:模型训练部分
Step10:模型推理部分
通过加载模型使用测试数据作为输入, 得到预测结果
-这里需要注意其中test_data_path需要给出从下载测试数据解压后的目录路径,但是我在更改这一部分的时候如果使用新解压的2021.1.zip文件则一直报错,还需要找到问题的原因
我们可以尝试使用并导入更多的数据,但是也要注意数据内的噪声也对分数有着负影响并且在模型训练要保证模型训练到收敛, loss逐渐稳定时, 同时也要注意在训练数据上过拟合会对预测数据有负影响。
在终端中使用代码
wget -O weather.round1.train.ft.2020.1.zip 'https://tianchi-race-prod-sh.oss-cn-shanghai.aliyuncs.com/file/race/documents/532234/bigFile/weather.round1.train.ft.2020.1.zip?Expires=1722464336&OSSAccessKeyId=LTAI5t7fj2oKqzKgLGz6kGQc&Signature=WoUdJUibkM2QoORJuYH%2BWIC9yFU%3D&response-content-disposition=attachment%3B%20'(这里的链接需要替换成你下载时候的链接,但可以不用在电脑网页中直接进行下载)即可导入更多的数据
Part2 伏羲大模型初探
在前面的探索中,我们的输入数据源即为伏羲气象大模型的输入。
伏羲大模型是由复旦大学主力研发,并得到Shanghai AI Lab(上海人工智能实验室)创新孵化研究院的助力推出。该模型采用独特的级联架构,能够提供长达15天的全球预报,拥有6小时的时间分辨率和0.25°的空间分辨率。
论文原文:https://arxiv.org/pdf/2306.12873
Github:https://github.com/tpys/FuXi
模型、数据获取渠道(百度网盘):https://pan.baidu.com/share/init?surl=PDeb-nwUprYtu9AKGnWnNw&pwd=fuxi#list/path=/ 模型、数据获取渠道(Zenodo):https://zenodo.org/records/10401602
Part3 时间序列分析入门
降水预测、风速预测、海浪预测等等, 这些气象预测任务都与着时间序列分析有密不可分的关系。在传统的气象预测任务例如降水预测中, 科学家们总会根据云层反射率的变化, 进行严谨的数学建模,输出预报的结果. 然而现如今深度学习强大的数据拟合能力能帮助科学家们更为快速和精准的找到最佳拟合的模型, AI+气象预测领域就越发受到气象专家们的关注.
课后问题:
1.观察数据的组成结合时间序列分析, 你认为本次赛题数据中有哪些值得改进的地方, 或者如果赛题方将每个时间节点的数据作为赛题数据, 你会如何制作数据集?
可以将每一个时间周期(例如一个月一年几年)为单位,作为样本划分依据。
或者根据24节气创建特征,根据各个节气观察天气变化
或者对于每个时间点,不仅预测下一个时间点的值,还可以预测未来多个时间点的值。
2.本次赛题你认为是否是时间序列预测问题, 并给出相应的理由
是时间序列预测问题:天气预测涉及预测未来时间点的天气状况,这需要利用历史数据中的天气状况以及当下进行预测。
理由:随时间变化,存在明显的季节性和趋势,因此需要用时间序列方法来捕捉这些特性。
仅为个人乱七八糟的小看法,不予参考意见。