StandardScaler(sklearn)参数详解
为什么要归一化
-
归一化后加快了梯度下降求最优解的速度:
如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。
-
归一化有可能提高精度:
一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。
from sklearn.preprocessing import StandardScaler
import numpy as np
StandardScaler()
标准化数据,保证每个维度数据方差为1.均值为0。使得据测结果不会被某些维度过大的特征值而主导。
x ∗ = x − μ σ x^* = \frac{x - \mu}{\sigma} x∗=σx−μ
-
fit
用于计算训练数据的均值和方差, 后面就会用均值和方差来转换训练数据
-
transform
很显然,它只是进行转换,只是把训练数据转换成标准的正态分布
-
fit_transform
不仅计算训练数据的均值和方差,还会基于计算出来的均值和方差来转换训练数据,从而把数据转换成标准的正态分布
np.random<