StandardScaler 缩放您的数据,使每列的 μ = 0 和 σ = 1。根据documentation:
居中和缩放在每个特征上独立发生
计算训练集中样本的相关统计数据。
由于每个特征都独立于其他特征进行缩放,因此它们的相关幅度差异不会相互影响。值得注意的是,缩放很大程度上取决于每个特征的训练样本分布。标准的正态分布训练数据将导致完美的缩放。如需进一步了解,您可以浏览documentation,也可以查看this SO thread。
示例数据在以下代码中进行了缩放:
from sklearn.preprocessing import StandardScaler
import numpy as np
data = np.array([[100, 0, 2], [66, 1, 5], [50, 0, 4], [33, 1, 1], [0, 0, 3], [25, 0, 2], [75, 1, 4], [50, 1, 3]])
scaler = StandardScaler()
scaled_data = scaler.fit_transform(data)
print ("Scaled Array:")
print(scaled_data)
print('Mean :', scaled_data.mean(axis=0))
print('Standard Deviation :', scaled_data.std(axis=0))
print('Variance :', scaled_data.var(axis=0))
输出是:
Scaled Array:
[[ 1.71992157 -1. -0.81649658]
[ 0.55329148 1. 1.63299316]
[ 0.00428908 -1. 0.81649658]
[-0.57902597 1. -1.63299316]
[-1.71134341 -1. 0. ]
[-0.85352716 -1. -0.81649658]
[ 0.86210533 1. 0.81649658]
[ 0.00428908 1. 0. ]]
Mean : [3.46944695e-18 0.00000000e+00 0.00000000e+00]
Standard Deviation : [1. 1. 1.]
Variance : [1. 1. 1.]