当数据看起来像3D阵列时,如何平衡数据?

2024-05-13 04:01:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个大小为(3275412, 50, 22)的numpy\u数组,它表示为LSTM目的而重塑的数据,我得到了一个形状为(3275412,)的目标向量。你知道吗

我想平衡我的数据,使目标01的数据数量大致相同。 我准备数据的方式使我无法在重塑之前进行这种平衡操作。你知道吗

首先,我想应用make_imbalance函数(有关详细信息,请参见this link),但我无法将其应用于二维数组(出现错误)。你知道吗

我的问题是:对于3D阵列,最有效的方法是什么?你知道吗

我的想法:我想先把我的三维数组“展平”成二维数组,把第二和第三维度“连接起来”(但不知道怎么做到的,请告诉我??)然后应用make_imbalance,然后将结果重塑为一个三维数组(同样,不知道如何做)。这似乎有点棘手,但。。。你知道吗

因此,任何帮助,无论是对其他不平衡的方法或帮助重塑三维->;二维或反之亦然,都将不胜感激


Tags: 数据方法函数目的numpy目标数量make
1条回答
网友
1楼 · 发布于 2024-05-13 04:01:04

对于未知的维度大小,可以使用np.reshape-1。你知道吗

data2d = data3d.reshape(data3d.shape[0], -1)

会给你一个二维数组的形状(n_samples, n_features) 第二维度和第三维度合并。你知道吗

data2d_new, y_new = make_imbalance(data2d, y) 

调用make_imbalance之后,您将得到一个形状为(n_samples_new, n_features)的2d数组,其中行数“未知”,但您知道原始3d数组的其他两个“特征”维度,因此

data3d_new = data2d.reshape(-1, data3d.shape[1], data3d.shape[2])

会还给你平衡的3d数据集。你知道吗

相关问题 更多 >