一、标准化
(一)作用
- 解决因变量之间量纲不同,无法比较的问题。通过标准化使数据之间具有可比性。
- 同时因为是线性变换,所以不改变原有的数据分布。
(二)sklearn中的标准化方法
sklearn中有scale和standscaler两种方法,它们的区别在于计算时使用的均值和方差不一样。standscaler更符合实际应用。
1. Scale( )
将训练集和测试集统一进行标准化处理,此时均值和方差为整个数据的均值和方差
from sklearn import preprocessing
X_scaled = preprocessing.scale(X)
2. Standscaler( )
得到训练集的均值和标准差,然后利用训练集的均值和标准差去分别标准化训练集和测试集。
from sklearn import preprocessing
scaler = preprocessing.StandardScaler().fit(X)
train_scale=scaler.transform(X_train)
test_scale=scaler.transform(X_test)
二、标准化与归一化的区别
(一)相同点
- 目的都是去量纲
- 都是线性变换,因此都不改变数据的分布
- 都是针对连续型变量做变换
(二)不同点
计算公式:
一般情况下采用标准化,因为归一化极易受到异常值的影响。