如何使用MinMaxScaler一次标准化所有训练样本

时间:2018-03-14 16:51:22

标签: machine-learning scikit-learn keras

我有1320个训练样本(海面温度),每个样本是2d阵列(160,320),因此最终阵列的形状为(1320,160,320)。我想使用MinMaxScaler()将它们标准化为0到1之间的值。我得到了错误"找到了昏暗的数据3.MinMaxScaler预期< = 2。"。我的代码如下。我可以循环遍历所有1320个样本,逐个标准化,但我想知道是否有办法将所有样本归一化,因为每个样本的Max和Mix不一样。

scaler = prep.MinMaxScaler()
sst = scaler.fit_transform(sst)

1 个答案:

答案 0 :(得分:1)

据我所知,只有使用MinMaxScaler()才能真正做到这一点。由于您希望在2D切片上应用最小 - 最大缩放器,因此np.apply_along_axis不会有用。一种解决方案可能是这样的:

import numpy as np
a = np.random.random((2, 3, 3))

def customMinMaxScaler(X):
    return (X - X.min()) / (X.max() - X.min())

np.array([customMinMaxScaler(x) for x in a])  

但我想它不会比迭代样本快得多。