數據規范化處理是數據挖掘的一項基本操作。現實中,數據中不同特征的量綱可能不一致,數值間的差別可能很大,不進行處理可能會影響到數據分析的結果,因此,需要對數據按照一定比例進行縮放,使之落在一個特定的區域,便於進行綜合分析。特別是基於距離的挖掘方法,在建模前一定要對數據進行規范化處理,如SVM,KNN,K-means,聚類等方法
數據規范化處理處理主要有以下三種
1,最小-最大規范化
最小-最大規范化是對原始數據的線性變換,將數值值映射到[0,1]之間。
2,z-score
z-score規范化也成標准差規范化,經過處理的數據均值為0,方差為1。是目前最為常用的規范化方法。
式中`x為對應特征均值 ,σ為標准差
3,小數定標規范化
通過移動屬性值的小數點,將屬性值映射到[-1,1]之間,移動的小數點位數取決於屬性值絕對值的最大值。
python實現:
import pandas as pd import numpy as np # load raw_data
feture_matrix= .... #max-min normalization
X=(feture_matrix - feture_matrix.min())/(feture_matrix.max()-feture_matrix.min()) # z-score
X= (feture_matrix - feture_matrix.mean()) / feture_matrix.std() # normalization by decimal scaling
ferture_matrix/10**np.ceil(np.log10(data.abs().max()))