将数据规范化到 [-1, 1] 范围

Normalizing data to [-1, 1] range

我有一个大小为 NxD 的训练数据集和一个大小为 AxD 的测试数据集。行是数据点,列是特征。

现在我想将每个特征(列)变换到 [-1, 1] 范围内。此外,测试集中特征的缩放应该使用训练集上估计的参数来完成。例如,如果我通过减去均值除以标准差来进行标准化,我会计算训练集的均值和标准差,并使用它们来标准化测试集。我现在想做的同样是缩放到范围 [-1, 1].

如何做到这一点?

像这样:

mins = min(trainingDataset);
maxs = max(trainingDataset);
testDataset = 2*bsxfun(@rdivide, bsxfun(@minus,testDataset,mins), maxs-mins)-1;