StandardScaler 变换后可接受的均值和标准差偏移量是多少?

What is the acceptable offset for mean and standard deviation after StandardScaler transform?

我正在使用 sklearn StandardScaler 来 transform/normalize 数据,如下:

scaler = StandardScaler()
data = scaler.fit_transform(data)

我期望平均值为 0,标准差为 1。但是,我得到的值是不同。

rnd = randrange(0, data.shape[1])
print(data[:,rnd].std())
print(data[:,rnd].mean())

1.0282903146389404
-0.06686584736835668

好像;但是,不确定可接受的偏移量是多少。例如,+/- 1e-2,正如我得到的那样,是否足够接近?或者我应该担心?

您正在为 data 变量使用 fit_transform。这意味着,现在,您的所有数据都将按照均值 0 和标准差 1 的形状进行归一化。如下图所示:

您接下来要做的是,随机获取您的数据变量的一些样本。因此,您收集的新样本几乎完全相同,但是,由于存在随机参数,均值和标准差将与您的数据不同。

为了进行比较,假设我们有人类身高的平均值和标准差。如果我们现在对您所在国家/地区的身高进行小样本抽样,则平均值和标准差不会完全相同,但差不多。就是这个意思。

确定如果您检查数据变量的均值和标准差,您将获得均值 0 和标准差 1。