首页 > 解决方案 > 如何标准缩放 3D 矩阵?

问题描述

我正在研究信号分类问题,想先缩放数据集矩阵,但我的数据是 3D 格式(批次、长度、通道)。
我尝试使用 Scikit-learn Standard Scaler:

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

但我收到了这个错误信息:

找到暗淡为 3 的数组。StandardScaler 预期 <= 2

我认为一种解决方案是将矩阵按每个通道拆分为多个 2D 矩阵,分别缩放它们,然后以 3D 格式放回,但我想知道是否有更好的解决方案。
非常感谢。

标签: pythonmachine-learningkerasscikit-learndeep-learning

解决方案


只需 3 行代码...

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train.reshape(-1, X_train.shape[-1])).reshape(X_train.shape)
X_test = scaler.transform(X_test.reshape(-1, X_test.shape[-1])).reshape(X_test.shape)

推荐阅读