淄博做網(wǎng)站seo網(wǎng)頁搜索快捷鍵
1.Normalizer(歸一化)(更加推薦使用)
優(yōu)點:將每個樣本向量的歐幾里德長度縮放為1,適用于計算樣本之間的相似性。
缺點:只對每個樣本的特征進行縮放,不保留原始數(shù)據(jù)的分布形狀。
公式:對于每個樣本,公式為:x / ||x||,其中x是樣本向量,||x||是x的歐幾里德范數(shù)。
2.MinMaxScaler(最小-最大標準化)
優(yōu)點:將數(shù)據(jù)縮放到指定的范圍(通常是0到1之間),保留了原始數(shù)據(jù)的形式。適用于需要保留原始數(shù)據(jù)分布形狀的算法。
缺點:受異常值的影響較大,對分布不均勻的數(shù)據(jù)集可能導(dǎo)致信息損失。
公式:對于每個特征,公式為:(x - min) / (max - min),其中x是特征值,min是特征的最小值,max是特征的最大值。
3.Normalizer和MinMaxScaler區(qū)別
Normalizer和MinMaxScaler是不同的數(shù)據(jù)標準化方法。
Normalizer是一種將每個樣本向量的長度縮放為1的歸一化方法,它逐個樣本對特征向量進行歸一化,使得每個樣本的特征向量都具有相同的尺度。
MinMaxScaler是一種將特征縮放到指定范圍(通常是0到1之間)的標準化方法。它通過對每個特征進行線性變換,將特征值縮放到指定的最小值和最大值之間。
這兩種方法有相似之處,都可以將數(shù)據(jù)縮放到一定范圍內(nèi),但是歸一化和最小-最大標準化的方式和目的不同。
歸一化(Normalizer)在每個樣本上進行操作,主要是為了保持樣本之間的向量方向或角度關(guān)系,使得樣本之間的相似性或距離計算更具可比性。
最小-最大標準化(MinMaxScaler)在每個特征上進行操作,主要是為了將特征值縮放到指定的范圍,保留特征之間的相對關(guān)系。
因此,雖然它們都屬于數(shù)據(jù)標準化的方法,但實際應(yīng)用中,選擇使用歸一化還是最小-最大標準化取決于數(shù)據(jù)的特點和具體任務(wù)的需求。
4.案例解釋
當使用Normalizer進行歸一化時,每個樣本的特征向量都會被調(diào)整為單位范數(shù)(默認為L2范數(shù))。假設(shè)我們有一個包含兩個樣本的數(shù)據(jù)集,每個樣本有兩個特征。數(shù)據(jù)集如下:
樣本1: [2, 4]
樣本2: [1, 3]
使用Normalizer進行歸一化后,結(jié)果如下:
from sklearn.preprocessing import MinMaxScaler,StandardScaler,Normalizer,RobustScaler
>>> scaler_x = Normalizer()
>>> scaler_x.fit_transform(x)
array([[0.4472136 , 0.89442719],[0.31622777, 0.9486833 ]])
樣本1歸一化后: [0.447, 0.894]
樣本2歸一化后: [0.316, 0.949]
每個樣本的特征向量都被縮放到單位長度。
而當使用MinMaxScaler進行最小-最大標準化時,特征值會被縮放到一個指定的范圍(通常是0到1之間)。假設(shè)我們有相同的數(shù)據(jù)集:
樣本1: [2, 4]
樣本2: [1, 3]
使用MinMaxScaler進行最小-最大標準化,將特征值縮放到0到1之間,結(jié)果如下:
from sklearn.preprocessing import MinMaxScaler,StandardScaler,Normalizer,RobustScaler
>>> scaler_x = MinMaxScaler()
>>> import numpy as np
>>> x = np.array([[2,4],[1,3]])
>>> scaler_x.fit_transform(x)
array([[1., 1.],[0., 0.]])
樣本1標準化后: [1, 1]
樣本2標準化后: [0, 0]
特征值被縮放到指定的范圍之間。
可以看到,Normalizer(歸一化)通過調(diào)整每個樣本的特征向量的長度來進行歸一化,而MinMaxScaler(最小-最大標準化)通過線性變換將特征值縮放到指定的范圍內(nèi)。在這個例子中,歸一化操作將樣本1歸一化后的特征向量縮放到單位長度,而最小-最大標準化將樣本1標準化后的特征值縮放到0到1之間。