全部課程
發(fā)布時間: 2019-10-26 10:21:26
數(shù)據(jù)標(biāo)準化的介紹
標(biāo)準化是將訓(xùn)練集中的某一列 (特征) 縮放成均值為0,方差為1的狀態(tài)。
數(shù)據(jù)標(biāo)準化(歸一化)處理是數(shù)據(jù)挖掘的一項基礎(chǔ)工作,不同評價指標(biāo)往往具有不同的量綱和量綱單位,這樣的情況會影響到數(shù)據(jù)分析的結(jié)果,為了消除指標(biāo)之間的量綱影響,需要進行數(shù)據(jù)標(biāo)準化處理,以解決數(shù)據(jù)指標(biāo)之間的可比性。原始數(shù)據(jù)經(jīng)過數(shù)據(jù)標(biāo)準化處理后,各指標(biāo)處于同一數(shù)量級,適合進行綜合對比評價。
標(biāo)準化的特點
標(biāo)準化后使得不同度量的數(shù)據(jù)特征具有可比性,同時不改變數(shù)據(jù)的原始分布狀態(tài)。
標(biāo)準化對數(shù)據(jù)進行規(guī)范化處理,去除數(shù)據(jù)的單位限制,將其轉(zhuǎn)化為無量綱的純數(shù)值,便于不同單位或量級的指標(biāo)能夠進行比較和加權(quán)
標(biāo)準化的方法
min-max標(biāo)準化(Min-Max Normalization)
離差標(biāo)準化,是對原始數(shù)據(jù)的線性變換,使結(jié)果值映射到[0 , 1]之間。轉(zhuǎn)換函數(shù)如下:
其中max為樣本數(shù)據(jù)的較大值,min為樣本數(shù)據(jù)的最小值。這種方法有個缺陷就是當(dāng)有新數(shù)據(jù)加入時,可能導(dǎo)致max和min的變化,需要重新定義。
import numpy as np
arr = np.asarray([0, 10, 50, 80, 100])
for x in arr:
x = float(x - np.min(arr))/(np.max(arr)- np.min(arr))
print x
# output
# 0.0
# 0.1
# 0.5
# 0.8
# 1.0
使用這種方法的目的包括:1、對于方差非常小的屬性可以增強其穩(wěn)定性;
2、維持稀疏矩陣中為0的條目。
下面將數(shù)據(jù)縮至0-1之間,采用MinMaxScaler函數(shù)
from sklearn import preprocessing
import numpy as np
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)
結(jié)果是
array([[ 0.5 , 0. , 1. ],
[ 1. , 0.5 , 0.33333333],
[ 0. , 1. , 0. ]])
Z-score標(biāo)準化方法
也稱為均值歸一化(mean normaliztion), 給予原始數(shù)據(jù)的均值(mean)和標(biāo)準差(standard deviation)進行數(shù)據(jù)的標(biāo)準化。經(jīng)過處理的數(shù)據(jù)符合標(biāo)準正態(tài)分布,即均值為0,標(biāo)準差為1。轉(zhuǎn)化函數(shù)為:
其中 μμ 為所有樣本數(shù)據(jù)的均值,σσ為所有樣本數(shù)據(jù)的標(biāo)準差。
import numpy as np
arr = np.asarray([0, 10, 50, 80, 100])
for x in arr:
x = float(x - arr.mean())/arr.std()
print x
# output
# -1.24101045599
# -0.982466610991
# 0.0517087689995
# 0.827340303992
# 1.34442799399
上一篇: 平均值,方差,標(biāo)準差
下一篇: {HTML5}事件對象-冒泡和默認行為