2大突破:BasicTS如何用选择性学习解决时间序列预测难题?
时间序列预测一直面临过拟合和异常值干扰的双重挑战。传统模型在处理复杂时序数据时,往往像海绵一样吸收所有信息,导致在噪声数据上"学偏"。BasicTS 1.0版本推出的Selective Learning技术,通过智能筛选训练数据,让模型学会"取舍",在多个权威数据集上实现15-20%的性能提升。
时间序列预测的核心痛点
在现实场景中,时间序列数据往往包含大量噪声和异常值。比如电力负荷预测中可能出现突发停电记录,交通流数据会受到交通事故的干扰。这些异常数据会严重影响模型的学习效果,就像学生在学习时被错误答案误导。
传统解决方案存在明显局限:
- 固定阈值过滤:无法适应数据分布变化,容易误删有效信息
- 简单平均处理:会模糊数据特征,降低预测精度
- 后处理修正:滞后性强,无法实时响应异常模式
Selective Learning的突破性创新
Selective Learning技术通过动态双掩码机制,让模型像经验丰富的老师一样,能够辨别数据中的"有效知识"和"干扰信息"。这一技术已集成到src/basicts/runners/callback/selective_learning.py模块中,支持即插即用。
双掩码智能筛选机制
该技术的核心在于同时运用两种互补的筛选策略:
不确定性掩码:通过计算预测残差的熵值来判断模型对样本的把握程度。就像学生做选择题时,对不确定的题目会标记跳过。当设置r_u=0.2时,模型会自动过滤掉20%最不确定的样本。
异常掩码:利用预训练的估计模型作为"参考标准",识别明显偏离正常模式的数据点。如同质检员通过标准样本比对来发现残次品,r_a=0.1参数可过滤10%的异常样本。
核心实现逻辑
下面是选择性学习的核心代码逻辑,展示了双掩码如何协同工作:
# 双掩码协同筛选机制
if self.r_u is not None:
# 计算残差熵值,识别高不确定性样本
res_entropy = self._compute_entropy(self.history_residual)
# 保留80%低不确定性样本(当r_u=0.2时)
thresholds = torch.quantile(res_entropy, 1 - self.r_u, dim=0, keepdim=True)
self.uncertainty_mask = res_entropy < thresholds
if self.r_a is not None:
# 使用预训练估计模型检测异常
with torch.no_grad():
est_foward_return = runner._forward(self.estimation_model, data, step=0)
# 计算偏离程度,过滤异常值
residual_lb = torch.abs(est_foward_return["prediction"] - forward_return["targets"])
dist = residual - residual_lb
thresholds = torch.quantile(dist, self.r_a, dim=1, keepdim=True)
ano_mask = dist > thresholds
实测性能提升验证
在公开数据集上的对比实验表明,Selective Learning技术能够显著提升模型性能。特别是在处理含噪声较多的真实世界数据时,优势更加明显。
长时序预测任务表现
在Electricity和Weather数据集上,采用Selective Learning的模型在WAPE指标上相对基线模型提升了15-20%,同时保持了计算效率。这意味着模型能够更精准地捕捉长期趋势,减少异常波动带来的干扰。
短时预测效率优化
在交通流预测任务中,集成Selective Learning的模型在参数规模仅为0.12M的情况下,MAE指标达到2.88,推理速度保持在7.50帧/秒,实现了精度与效率的双重优化。
快速集成使用指南
基础配置步骤
要在BasicTS中使用Selective Learning功能,只需三步即可完成集成:
- 导入回调模块
from basicts.runners.callback.selective_learning import SelectiveLearning
- 配置参数
# 初始化选择性学习回调
callback = SelectiveLearning(
r_u=0.2, # 不确定性掩码比例,保留80%低不确定性样本
r_a=0.1, # 异常掩码比例,过滤10%异常样本
estimator=SomePretrainedModel, # 预训练估计模型类
estimator_config=estimator_config, # 估计模型配置
ckpt_path="path/to/estimator/ckpt" # 估计模型 checkpoint 路径
)
- 添加到训练流程
# 将回调添加到runner
runner.add_callback(callback)
参数调优技巧
- r_u参数:数据噪声较多时建议设为0.2-0.3,干净数据可设为0.1
- r_a参数:异常值比例高的场景可提高至0.15,平稳数据建议0.05
- 估计模型:优先选择在同类数据上预训练的简单模型,如线性回归或轻量级神经网络
未来展望与行动指南
Selective Learning技术为时间序列预测提供了一种通用的性能优化方案,不仅适用于预测任务,还可扩展到时间序列分类、填补等场景。未来版本将进一步优化动态阈值调整策略,并探索与注意力机制的融合。
立即体验Selective Learning带来的性能提升:
git clone https://gitcode.com/gh_mirrors/v41/v4
通过智能筛选数据,让你的时间序列预测模型更专注于有效信息,性能更上一层楼!📈
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
atomcodeAn open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust013
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
HY-Embodied-0.5这是一套专为现实世界具身智能打造的基础模型。该系列模型采用创新的混合Transformer(Mixture-of-Transformers, MoT) 架构,通过潜在令牌实现模态特异性计算,显著提升了细粒度感知能力。Jinja00
LongCat-AudioDiT-1BLongCat-AudioDiT 是一款基于扩散模型的文本转语音(TTS)模型,代表了当前该领域的最高水平(SOTA),它直接在波形潜空间中进行操作。00
ERNIE-ImageERNIE-Image 是由百度 ERNIE-Image 团队开发的开源文本到图像生成模型。它基于单流扩散 Transformer(DiT)构建,并配备了轻量级的提示增强器,可将用户的简短输入扩展为更丰富的结构化描述。凭借仅 80 亿的 DiT 参数,它在开源文本到图像模型中达到了最先进的性能。该模型的设计不仅追求强大的视觉质量,还注重实际生成场景中的可控性,在这些场景中,准确的内容呈现与美观同等重要。特别是,ERNIE-Image 在复杂指令遵循、文本渲染和结构化图像生成方面表现出色,使其非常适合商业海报、漫画、多格布局以及其他需要兼具视觉质量和精确控制的内容创作任务。它还支持广泛的视觉风格,包括写实摄影、设计导向图像以及更多风格化的美学输出。Jinja00