数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位。为了消除指标之间的量纲影响,需要进行数据标准化处理,以增加数据之间的可比性。
1. min-max标准化(Min-Max Normalization)
又叫离差标准化,是对原始数据的线性变换,使结果映射到 [0, 1] 之间,转换函数为:
这种方法的缺陷就是:当有新数据加入时,可能会导致 max 和 min 的变化,需要重新进行标准化。
import numpy as np
from sklearn import preprocessing
X = np.array([1, -1, 2],
[2, 0, 0],
[0, 1, -1])
min_max_scaler = preprocessing.MinMaxScaler()
X_minMax = min_max_scaler.fit_transform(X)
''' 找最大值和最小值,使用 np.max() 和 np.min()! '''
2. Z-score标准化
也叫均值归一化(mean normalization)。经过标准化的数据满足标准正态分布,即均值为0,标准差为1,转换函数为:
import numpy as np
X = np.array([1, -1, 2],
[2, 0, 0],
[0, 1, -1])
def Z_scoreNormalization(x):
mu = x.mean()
sigma = x.std()
x = (x - mu) / sigma
return x;
print(Z_scoreNormalization(X))
''' 求均值:np.mean()
求标准差:np.std() '''
(参考:python归一化方法)