Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 如何使用MinMaxScaler一次规范化所有训练样本_Machine Learning_Scikit Learn_Keras - Fatal编程技术网

Machine learning 如何使用MinMaxScaler一次规范化所有训练样本

Machine learning 如何使用MinMaxScaler一次规范化所有训练样本,machine-learning,scikit-learn,keras,Machine Learning,Scikit Learn,Keras,我有1320个训练样本(海面温度),每个样本是一个2d数组(160320),因此最终的数组是形状(1320160320)。我想使用MinMaxScaler()将它们规格化为0到1之间的值。我得到了错误“Find array with dim 3.MinMaxScaler expected据我所知,您不能仅使用MinMaxScaler()。np。沿轴应用\u也不会有用,因为您希望在二维切片上应用min-max scaler。一种解决方案可能是这样的: import numpy as np a =

我有1320个训练样本(海面温度),每个样本是一个2d数组(160320),因此最终的数组是形状(1320160320)。我想使用MinMaxScaler()将它们规格化为0到1之间的值。我得到了错误“Find array with dim 3.MinMaxScaler expected据我所知,您不能仅使用MinMaxScaler()。
np。沿轴应用\u也不会有用,因为您希望在二维切片上应用min-max scaler。一种解决方案可能是这样的:

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])  

但我想这不会比在样本上迭代快多少。

不要忘记,定标器需要存储最小值和最大值,因此它总是对同一数据集的不同部分(如训练和测试)使用相同的最小值和最大值。我想不允许三维的直觉是因为它们假设数据具有相同的形状(样本,特征)。它们根据每个特征进行缩放,因此所有通道都从它们自己的数据范围映射到范围(0,1);在我的例子中,我一直在努力,因为我得到了形状(样本,时间戳,特征),但根据之前收集的知识,我假设您需要合并样本和时间戳,然后再次拆分。
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])