AI人工智能 數(shù)據(jù)預(yù)處理技術(shù)

2020-09-23 14:51 更新

下面介紹數(shù)據(jù)預(yù)處理技術(shù) -

二值化

這是當(dāng)需要將數(shù)值轉(zhuǎn)換為布爾值時(shí)使用的預(yù)處理技術(shù)。我們可以用一種內(nèi)置的方法來(lái)二值化輸入數(shù)據(jù),比如說(shuō)用0.5作為閾值,方法如下 -

data_binarized = preprocessing.Binarizer(threshold = 0.5).transform(input_data)
print("\nBinarized data:\n", data_binarized)

現(xiàn)在,運(yùn)行上面的代碼后,將得到以下輸出,所有高于0.5(閾值)的值將被轉(zhuǎn)換為1,并且所有低于0.5的值將被轉(zhuǎn)換為0。

二值化數(shù)據(jù)

[[ 1. 0. 1.]
[ 0. 1. 1.]
[ 0. 0. 1.]
[ 1. 1. 0.]]

平均去除

這是機(jī)器學(xué)習(xí)中使用的另一種非常常見的預(yù)處理技術(shù)。 基本上它用于消除特征向量的均值,以便每個(gè)特征都以零為中心。 還可以消除特征向量中的特征偏差。 為了對(duì)樣本數(shù)據(jù)應(yīng)用平均去除預(yù)處理技術(shù),可以編寫如下Python代碼。 代碼將顯示輸入數(shù)據(jù)的平均值和標(biāo)準(zhǔn)偏差 -

print("Mean = ", input_data.mean(axis = 0))
print("Std deviation = ", input_data.std(axis = 0))

運(yùn)行上述代碼行后,將得到以下輸出 -

Mean = [ 1.75       -1.275       2.2]
Std deviation = [ 2.71431391  4.20022321  4.69414529]

現(xiàn)在,下面的代碼將刪除輸入數(shù)據(jù)的平均值和標(biāo)準(zhǔn)偏差 -

data_scaled = preprocessing.scale(input_data)
print("Mean =", data_scaled.mean(axis=0))
print("Std deviation =", data_scaled.std(axis = 0))

運(yùn)行上述代碼行后,將得到以下輸出 -

Mean = [ 1.11022302e-16 0.00000000e+00 0.00000000e+00]
Std deviation = [ 1.             1.             1.]

縮放

這是另一種數(shù)據(jù)預(yù)處理技術(shù),用于縮放特征向量。 特征向量的縮放是需要的,因?yàn)槊總€(gè)特征的值可以在許多隨機(jī)值之間變化。 換句話說(shuō),我們可以說(shuō)縮放非常重要,因?yàn)槲覀儾幌M魏翁卣骱铣蔀榇蠡蛐 ?借助以下Python代碼,我們可以對(duì)輸入數(shù)據(jù)進(jìn)行縮放,即特征矢量 -

最小最大縮放

data_scaler_minmax = preprocessing.MinMaxScaler(feature_range=(0,1))
data_scaled_minmax = data_scaler_minmax.fit_transform(input_data)
print ("\nMin max scaled data:\n", data_scaled_minmax)

運(yùn)行上述代碼行后,將得到以下輸出 -

[ [ 0.48648649  0.58252427   0.99122807]
[   0.          1.           0.81578947]
[   0.27027027  0.           1.        ]
[   1.          0. 99029126  0.        ]]

正?;?/h3>

這是另一種數(shù)據(jù)預(yù)處理技術(shù),用于修改特征向量。 這種修改對(duì)于在一個(gè)普通的尺度上測(cè)量特征向量是必要的。 以下是可用于機(jī)器學(xué)習(xí)的兩種標(biāo)準(zhǔn)化 -

L1 標(biāo)準(zhǔn)化

它也被稱為最小絕對(duì)偏差。 這種標(biāo)準(zhǔn)化會(huì)修改這些值,以便絕對(duì)值的總和在每行中總是最多為 1。 它可以在以下 Python 代碼,使用上面的輸入數(shù)據(jù)來(lái)實(shí)現(xiàn) -

## Normalize data
data_normalized_l1 = preprocessing.normalize(input_data, norm = 'l1')
print("\nL1 normalized data:\n", data_normalized_l1)
Python

上面的代碼行生成以下輸出:

L1 normalized data:
[[ 0.22105263  -0.2          0.57894737]
[ -0.2027027    0.32432432   0.47297297]
[  0.03571429  -0.56428571   0.4       ]
[  0.42142857   0.16428571  -0.41428571]]

L2 標(biāo)準(zhǔn)化

它也被稱為最小二乘。這種歸正?;薷牧诉@些值,以便每一行中的平方和總是最多為 1。它可以在以下 Python 代碼,使用上面的輸入數(shù)據(jù)來(lái)實(shí)現(xiàn) -

## Normalize data
data_normalized_l2 = preprocessing.normalize(input_data, norm = 'l2')
print("\nL2 normalized data:\n", data_normalized_l2)
Python

執(zhí)行以上代碼行將生成以下輸出 -

L2 normalized data:
[[ 0.33946114  -0.30713151   0.88906489]
[ -0.33325106   0.53320169   0.7775858 ]
[  0.05156558  -0.81473612   0.57753446]
[  0.68706914   0.26784051  -0.6754239 ]]

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)