卫星图像多变量时间序列分类中少数类过采样方法咨询
针对极端类别不平衡的卫星时序数据过采样方案
针对你遇到的这种极端类别不平衡(少数类仅500样本,多数类超百万量级)的卫星图像时间序列分类问题,确实需要结合数据特性(像素级多变量时序)来选择合适的过采样策略,下面是几个适配场景的实用方案:
1. 时序专用SMOTE变体
普通SMOTE不考虑时间维度的连续性,直接在特征空间插值会破坏时序趋势,推荐用Time-SMOTE或SMOTE-TS这类专门针对时间序列的过采样方法:
- 核心逻辑:在少数类的时序样本中,基于时序相似度(比如DTW距离)找到近邻样本,然后在相邻时间步的特征值之间做线性插值,生成新的符合时序规律的样本。
- 实现:可以用
tslearn库中的TimeSeriesResampler结合SMOTE逻辑,或者自己基于DTW距离编写邻域插值代码,完美适配你的(4个日期,2个波段)的时序结构。
2. 结合卫星影像特性的空间+波段增强
既然你的数据是像素级卫星影像,可利用空间相关性和波段特性做针对性增强:
- 空间邻域融合:对于少数类的单个像素样本,取其周围3x3或5x5范围内的同类像素时序数据,做加权平均(比如距离越近权重越高)生成新样本,既利用了卫星影像的空间连续性,又能增加样本多样性。
- 波段噪声扰动:基于卫星影像的真实噪声分布(比如高斯噪声,方差参考原始数据的波段标准差),对少数类样本的2个波段数值做轻微扰动,生成新的时序样本——这种方法简单高效,且能保留原始数据的分布特征。
3. 时序生成模型合成样本
如果算力允许,用TimeGAN这类专门的时序生成模型来学习少数类样本的分布:
- TimeGAN能捕捉时间序列的长期依赖和波段间的相关性,生成的样本比插值法更贴近真实数据。针对你的小样本量(500个),训练成本不算高,因为每个样本只有8维(4日期×2波段)的特征。
- 训练时可以固定多数类数据作为判别器的真实样本输入,让生成器专注学习少数类的时序模式。
4. 采样+模型优化的混合策略
过采样配合模型调整能进一步提升效果:
- 类别权重加权:在TempCNN训练时设置
class_weight='balanced',让模型对少数类的分类错误赋予更高的惩罚,弥补样本量的不足。 - 分层验证:必须用分层交叉验证,确保每个验证 fold 的类别分布和原始数据集一致,避免过采样导致的评估偏差——绝对不能用采样后的数据集做验证!
注意事项
- 过采样比例要适度:建议先把少数类样本量提升到多数类的10%-20%,避免过度生成导致过拟合,再根据验证集效果调整。
- 避免空间自相关陷阱:如果少数类像素集中在特定区域,过采样时要尽量避免生成重复的空间模式,可以结合空间随机采样来保证多样性。
内容的提问来源于stack exchange,提问作者ala
相关产品推荐
相关产品推荐

