You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用RandomUnderSampler处理3D数组时遇维度错误求助

解决RandomUnderSampler处理3D特征数组的维度错误问题

问题原因

imblearn库的采样器(包括RandomUnderSampler)仅支持2D特征数组(格式为(样本数量, 特征数量)),而你的特征是3D结构(276216, 101, 4),直接传入会触发维度不匹配的报错。

解决步骤

核心思路是先将3D特征转换为2D完成采样,再恢复回3D结构:

  1. 将3D特征展平为2D
    把每个样本的(101,4)子数组展平为一维,得到2D数组:
X_2d = train['X'].reshape(train['X'].shape[0], -1)
  1. 执行欠采样
    注意使用fit_resample方法(而非fit)来获取采样后的数据:
from imblearn.under_sampling import RandomUnderSampler
undersample = RandomUnderSampler(sampling_strategy='majority')

# 若标签是二维格式,可先转为一维更稳妥
y_flat = train['y'].ravel()
X_2d_under, y_train_under = undersample.fit_resample(X_2d, y_flat)
  1. 恢复3D特征结构
    将采样后的2D数组重塑回原3D格式:
X_train_under = X_2d_under.reshape(X_2d_under.shape[0], 101, 4)

验证结果

检查处理后的维度是否符合预期:

print(X_train_under.shape)  # 输出格式:(采样后的样本数, 101, 4)
print(y_train_under.shape)  # 输出格式:(采样后的样本数,)

内容的提问来源于stack exchange,提问作者upendra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 01:00:58