數(shù)據(jù)歸一化的幾種方法
1 Min-Max歸一化
Min-Max歸一化是一種線性的歸一化方法。該方法將數(shù)據(jù)進(jìn)行一次線性變換,將數(shù)據(jù)映射到[0,1]區(qū)間。Min-Max歸一化不改變數(shù)據(jù)的分布。其缺點為,過度依賴最大最小數(shù),且容易受到離群點、異常數(shù)據(jù)的影響。其公式為:
x
′
=
x
?
M
i
n
M
a
x
?
M
i
n
x^\prime = \frac{ x - Min} {Max - Min}
x′=Max?Minx?Min?
其中
x
x
x是原始數(shù)據(jù)、
M
i
n
Min
Min為數(shù)據(jù)的最小值、
M
a
x
Max
Max為數(shù)據(jù)的最大值、
x
′
x^\prime
x′是變換后的數(shù)據(jù)。
2 Z-Score歸一化
Z-Score歸一化將數(shù)據(jù)盡可能處理成符合正態(tài)分布的數(shù)據(jù)。該方法難以將數(shù)據(jù)映射到一個固定的區(qū)間上。Z-Score歸一化的公式為:
x
′
=
x
?
x
 ̄
S
t
d
x^\prime = \frac{ x - \overline{x}} {Std}
x′=Stdx?x?
其中 x x x為原始數(shù)據(jù)、 x  ̄ \overline{x} x為數(shù)據(jù)的均值、 S t d Std Std為數(shù)據(jù)的標(biāo)準(zhǔn)差
3 小數(shù)標(biāo)定
通過直接除以一個整數(shù),移動所有數(shù)據(jù)的小數(shù)點,進(jìn)行數(shù)據(jù)歸一化的方法,稱之為小數(shù)標(biāo)定歸一化方法。該方法可將數(shù)據(jù)映射到[-1,1]區(qū)間。該方法的公式為:
x
′
=
x
1
0
j
x^\prime = \frac{x} {10^j}
x′=10jx?
其中,
j
j
j為數(shù)據(jù)絕對值最大數(shù)據(jù)的位數(shù)。
4 Sigmoid
Sigmoid函數(shù)的表達(dá)式為:
F
(
x
)
=
1
1
+
e
?
x
F(x) = \frac{1} {1+e^{-x}}
F(x)=1+e?x1?,其值域為[0,1].將所有數(shù)據(jù)經(jīng)過Sigmoid映射以后,可以將數(shù)據(jù)映射到
[
0
,
1
]
[0,1]
[0,1]區(qū)間。該函數(shù)圖像如圖所示:文章來源:http://www.zghlxwxcb.cn/news/detail-657920.html
5 RankGauss歸一化
今天剛剛看到的,記錄一下文章來源地址http://www.zghlxwxcb.cn/news/detail-657920.html
def ScaleRankgauss(x, epsilon=1e-6):
'''rankgauss'''
x = x.argsort().argsort() #排序
x = (x/x.max()-0.5)*2 #轉(zhuǎn)換尺度到[-1,1]
#調(diào)整極端值 把在[-1,1]區(qū)間之外的數(shù)值截斷為-1或1
x = np.clip(x, -1+epsilon, 1-epsilon)
x = erfinv(x) #函數(shù)映射
return x
x = np.random.randint(0, 100, 1000)
plt.hist(x)
x_rankgauss = ScaleRankgauss(x)
plt.hist(x_rankgauss, bins=50)
到了這里,關(guān)于數(shù)據(jù)歸一化常見算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!