在连接之前或之后使用 StandardScaler 缩放多个功能?

Scaling multiple features with StandardScaler, before or after concatenation?

我有一个图像数据集(像素值从 0 到 255),我想从中提取不同的特征,例如HOG 特征、Gabor 滤波器特征、LBP 和颜色直方图。 我想将这些特征连接成一个特征向量

feature_overall = np.concatenate((feat1, feat2, feat3, feat4), axis=1)

然后使用生成的整体特征向量训练 SVM。

我正在使用 Python 和 Scikit-Image (Skimage)。

我不确定,这里我必须在哪里使用标准定标器?分别针对每个特征,即在连接所有特征之前?还是将标准缩放器应用于连接的特征向量,即应用于生成的整体特征向量?

非常感谢您的帮助

StandardScaler 将每列缩放为均值为 0 和标准差为 1。从这个意义上说,无论您是在串联之前还是之后缩放特征都没有关系。

但是,如果您使用的是 sklern.preprocessing.Normalizer(),那就很重要了。 Normalizer() 使每一行在某些度量(例如欧几里德)中具有相同的大小。

如果是这样,我会在连接特征之前使用 Normalizer(),因为您可能希望 HOG 特征的总和在所有图像中保持不变,但您可能不希望 HOG 特征的总和,Gabor滤波器特征,LBP和颜色直方图保持不变