标准化(Z-Score)公式为:
z = (x - u) / s
其中,u为训练集数据的平均值,如果with_mean参数为False则为0;s为训练集数据的方差,如果with_std参数为False则为1。均值和方差结果使用transform对象存储,可直接用在后续的数据例如测试集中。
数据集的标准化是许多机器学习估计器的共同要求:如果单个特征或多或少不像标准正态分布数据(例如,均值和单位方差均为0的高斯分布),那么这些估计器可能表现不好。
算法的目标函数中使用的许多元素(如支持向量机的RBF核或线性模型的L1和L2正则化器)假设所有特征都以0为中心,并且具有相同顺序的方差。如果一个特征的方差比其他特征的方差大几个数量级,它可能会支配目标函数,使估计器无法按照预期正确地从其他特征中学习。
例子:
方法:
- fit(X[, y, sample_weight]) 计算均值和方差存储成StandardScaler()后续使用
- fit_transform(X[, y]) Fit to data, then transform it.
官网API说明:
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html#sklearn.preprocessing.StandardScaler