测试集是否必须在 [0,1] 范围内?

数据挖掘 神经网络 特征缩放
2021-10-01 02:56:17

我有标准化的训练集

mean = XTrain.mean()
XTrain-=mean

std = XTrain.std()
XTrain/=std

然后使用meanandstd来标准化验证和测试集。训练集和验证集的值大于 1 且小于零,可以吗?

2个回答

标准化以平均值为中心0有标准差1. 因此,具有小于0或大于1是可以预料的。如果您想确保值介于01您需要对数据进行规范化。

这是从 Raschka 的“Python 机器学习”一书中摘录的两个过程的示例:

在此处输入图像描述

请注意,使用从训练数据中获得的参数将该过程应用于您的测试数据(在标准化的情况下:训练数据的平均值和标准偏差)。

Sklearn 有标准化规范化的方法,你可能想看看。

您正在测量与给定值的平均值有多少标准偏差。当然,值可能与平均值有许多标准偏差。即使对于具有正态分布的数据,我们预计5% 的观察结果超过 2 均值的标准差,我们期望 32% 的观察结果超过 1 平均值的标准差。

因此,您的价值超过 1.

只要值小于 0去吧,这意味着你的价值低于平均值。这很常见。(虽然它可能发生,但请考虑如何拥有一个没有值小于平均值的数据集。)

正如 Sammy 在我发布前几秒钟提到的那样,在转换测试和验证数据时,请务必使用训练数据的均值和标准差。