江苏气象AI算法挑战赛亚军比赛攻略_DontMind队

2024-05-06 22:12

本文主要是介绍江苏气象AI算法挑战赛亚军比赛攻略_DontMind队,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关联比赛:  2022江苏气象AI算法挑战赛-AI助力强对流天气预报

江苏气象AI算法挑战赛亚军比赛攻略_DontMind队

成员介绍

enter image description here

一、赛题分析

本次比赛主要是针对大风/雷达回波/降水的短临预报,属于典型的时空序列预测问题,此类问题可以从分类和回归预测两个角度来解决。

  • 按照各气象要素阈值区间进行分类,可以转化为分类预测问题;
  • 从回归预测的角度又分为单变量回归预测和多变量回归预测。

由于大风和降水预测很难转换为分类预测问题,而且我们经过大量的模型试验表明,多变量回归预测很难同时达到最优,且很难超越单变量回归预测。
因此,我们最终采用了单变量回归预测思路,并利用过去一小时数据预测未来两小时各气象要素的时空演变。以下将围绕我们决赛最终采用的模型和策略进行介绍

enter image description here

二、总体设计思路

enter image description here

三、数据预处理

数据清洗: 去除雷达回波低值伪影以及异常降水值。
样本重采样和降采样: 由于数据分布不平衡问题,根据各要素阈值区间分布情况对样本进行重采样和降采样,以平衡不同强度样本占比。
数据集调整: 由于所给的数据集中相邻个例仅相差一帧,重复率过高,因此我们将临近个例的间隔调整为5帧,降低样本重叠率,提升模型训练稳定性。

enter image description here

四、模型选择与优化

风速预测—— SEResNet

enter image description here

雷达回波预测模型——TrajGRU

enter image description here

降水预测模型:双模型融合

模型一:U2Net

enter image description here

模型二:PhyDNet

enter image description here


双模型融合:两个模型预测结果取平均

五、损失函数

enter image description here


针对不同模型,设计不同损失函数,由于本赛题预测对象均有严重不平衡问题,因此针对MSE和MAE类型损失函数需要给与相应权重设置。而DiceLoss本身仅针对目标区域计算损失,因此无需再给定权重。
此外,针对降水,加入了60/90/120min的累计降水的损失作为正则项。

六、性能提升策略

  • Two-stage优化: 冻结模型部分层,调整损失函数权重,调低学习率,进行模型参数微调,提高强回波/降水的预测技能评分
  • 模型集成: 针对降水预测,融合U2Net与PhyDNet预测,提升模型泛化能力和稳定性
  • 偏差订正: 考虑了预测能力的时间衰减和阈值的影响,对模型预测进行偏差订正,提高强回波/降水的预测技能评分

    enter image description here

七、官方个例真实性

风速预测

enter image description here

 

enter image description here

雷达回波

enter image description here

 

enter image description here

降水预测

enter image description here

 

enter image description here


 

enter image description here

 

enter image description here

八、总结

  • 样本不平衡: 样本重采样+损失加权和正则/类别不平衡损失+Two-stage优化减轻类别极度不平衡导致的强回波/降水难预测问题
  • 模型性能及稳定性: 多模型集成进一步提高降水的整体预报技能评分及模型的稳定性
  • 后处理方法: 引入模型预测偏差订正后处理方法提高强回波/降水预报技能评分

    enter image description here


    本次比赛我们初赛和复赛均为第二,其中复赛实时评测阶段22天大部分时段取得前6成绩,其中10天取得第1,模型总体表现较为稳定

查看更多内容,欢迎访问天池技术圈官方地址:2022江苏气象AI算法挑战赛亚军比赛攻略_DontMind队_天池技术圈-阿里云天池

这篇关于江苏气象AI算法挑战赛亚军比赛攻略_DontMind队的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/965518

相关文章

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为