我的数据形状为(400,93,32)。现在我想将数据标准化为均值为0且方差为1。应该如何操作呢?
我应该在哪个方向上进行标准化?是应该计算每一行或每一列的均值和方差,还是将93 x 32视为矩阵?我尝试使用Sklearn的StandardScaler函数,它接收的输入格式为(n_samples,n_features),而我的数据格式为(n_samples,Dim_1,Dim_2)。我尝试按行进行缩放,如[n_samples,0,1,3,…n, : ],但我不确定这样做是否正确。
非常感谢您的指导。
回答:
按行缩放是没有意义的,考虑两行数据:
[20,4,5] , [200,1,5]
如果我们按行缩放,那么第一行将根据该行本身进行转换,第二行也是如此:
[1,0.20,0.25] 和 [1,0.005,0.025]
这样做未能捕捉到同一列内值之间的关系。如果第三列的最高可能值是5,那么5应该被转换为1。然而,当应用按行缩放时,第三列的5在每一行上的值都会变化,无法保持信息的意义。