sklearn中有scale和standscaler两种方法,它们的区别在于计算时使用的均值和方差不一样。standscaler更符合实际应用。
将训练集和测试集统一进行标准化处理,此时均值和方差为整个数据的均值和方差
from sklearn import preprocessing
X_scaled = preprocessing.scale(X)
得到训练集的均值和标准差,然后利用训练集的均值和标准差去分别标准化训练集和测试集。
from sklearn import preprocessing
scaler = preprocessing.StandardScaler().fit(X)
train_scale=scaler.transform(X_train)
test_scale=scaler.transform(X_test)
标准化希望消除特征之间的量纲差异,在此之前,需要先对特征做异常值和缺失值处理。
一般情况下采用标准化,因为归一化极易受到异常值的影响。