sklearn.preprocessing.StandardScalar函数

  • Post author:
  • Post category:其他




函数原型
sklearn.preprocessing.StandardScaler(*, copy=True, with_mean=True, with_std=True)


函数说明

StandardScaler函数用于标准化数据,使数据每一个特征的均值为0,方差为1。也就是说,该函数用于使数据的分布变成标准正态分布。转换函数为:



x

=

x

μ

σ

x^*=\dfrac{x-\mu}{\sigma}







x






















=



















σ














x









μ























。注意,这里只是针对每一个特征维度来做的,而不是针对整个样本。结果返回一个StandardScaler对象。该对象有以下几个常用的方法:


1、fit(X, y=None, sample_weight=None)

:计算输入数据的样本均值、方差。


2、transform(X, copy=None)

:根据fit函数计算得到的样本均值、方差,使用转换函数来归一化样本数据,使符合正态分布。


3、fit_transform(X, y=None, *fit_params)

:相当于依次调用fit函数、transform函数。返回经过转换函数转换后的数据。

比如:

>>> x = np.array([[1, 2, 3],[4, 5, 6]])
>>> x
array([[1, 2, 3],
       [4, 5, 6]])
# 计算每一个特征的均值
>>> means = np.mean(x, axis=0)
>>> means
array([2.5, 3.5, 4.5])
# 计算每一个特征的方差
>>> std = np.std(x, axis=0)
>>> std
array([1.5, 1.5, 1.5])
# 使用转换函数转换样本数据,使每一个特征的均值为0,方差为1
>>> y = (x - means) / std
>>> y
array([[-1., -1., -1.],
       [ 1.,  1.,  1.]])
       
# 使用fit、transform函数来依次计算
>>> scaler = preprocessing.StandardScaler()
>>> y1 = scaler.fit(y)
>>> y2 = scaler.transform(y)
>>> y2
array([[-1., -1., -1.],
       [ 1.,  1.,  1.]])
# 直接使用fit_transform函数计算
>>> y = preprocessing.StandardScaler().fit_transform(y)
>>> y
array([[-1., -1., -1.],
       [ 1.,  1.,  1.]])



版权声明:本文为weixin_49346755原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。