一、标准化(Z-score),或者去除均值和方差缩放
公式为:(X-mean)/std 计算时对每个属性/每列分别进行。
将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。
实现时,有两种不同的方式:
-
使用sklearn.preprocessing.scale()函数,可以直接将给定数据进行标准化。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
使用sklearn.preprocessing.StandardScaler类,使用该类的好处在于可以保存训练集中的参数(均值、方差)直接使用其对象转换测试集数据。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
二、将属性缩放到一个指定范围
除了上述介绍的方法之外,另一种常用的方法是将属性缩放到一个指定的最大和最小值(通常是1-0)之间,这可以通过preprocessing.MinMaxScaler类实现。
1、对于方差非常小的属性可以增强其稳定性。
2、维持稀疏矩阵中为0的条目。
np.array([[ @H_502_63@
2.@H_502_63@
],@H_502_63@
... [ @H_502_63@
502_63@
]])@H_502_63@
...@H_502_63@
>>> X_train_minmax@H_502_63@
0.5@H_502_63@
502_63@
0.33333333@H_502_63@
502_63@
]])@H_502_63@
>>> X_test_minmax@H_502_63@
>>> min_max_scaler.scale_ @H_502_63@
...])@H_502_63@
>>> min_max_scaler.min_ @H_502_63@
...])@H_502_63@