1. 程式人生 > >易百教程人工智能python修正-人工智能數據準備-預處理數據

易百教程人工智能python修正-人工智能數據準備-預處理數據

ray 第一步 變化 顯示 pre 布爾 2.4 圖像 maxscale

預處理數據

在我們的日常生活中,需要處理大量數據,但這些數據是原始數據。 為了提供數據作為機器學習算法的輸入,需要將其轉換為有意義的數據。 這就是數據預處理進入圖像的地方。 換言之,可以說在將數據提供給機器學習算法之前,我們需要對數據進行預處理。

數據預處理步驟

按照以下步驟在Python中預處理數據 -

第1步 - 導入有用的軟件包 - 如果使用Python,那麽這將成為將數據轉換為特定格式(即預處理)的第一步。如下代碼 -

import numpy as np
from sklearn import preprocessing

Python

這裏使用了以下兩個軟件包 -

  • NumPy - 基本上NumPy是一種通用的數組處理軟件包,設計用於高效處理任意記錄的大型多維數組而不犧牲小型多維數組的速度。
  • sklearn.preprocessing - 此包提供了許多常用的實用函數和變換器類,用於將原始特征向量更改為更適合機器學習算法的表示形式。

第2步 - 定義樣本數據 - 導入包後,需要定義一些樣本數據,以便可以對這些數據應用預處理技術。現在將定義以下樣本數據 -

input_data = np.array([2.1, -1.9, 5.5],
                      [-1.5, 2.4, 3.5],
                      [0.5, -7.9, 5.6],
                      [5.9, 2.3, -5.8]])

Python

第3步

- 應用預處理技術 - 在這一步中,我們需要應用預處理技術。

以下部分描述數據預處理技術。

數據預處理技術

下面介紹數據預處理技術 -

二值化

這是當需要將數值轉換為布爾值時使用的預處理技術。我們可以用一種內置的方法來二值化輸入數據,比如說用0.5作為閾值,方法如下 -

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

Python

現在,運行上面的代碼後,將得到以下輸出,所有高於0.5(閾值)的值將被轉換為1

,並且所有低於0.5的值將被轉換為0

二值化數據

[[ 1. 0. 1.]
[ 0. 1. 1.]
[ 0. 0. 1.]
[ 1. 1. 0.]]
平均去除

這是機器學習中使用的另一種非常常見的預處理技術。 基本上它用於消除特征向量的均值,以便每個特征都以零為中心。 還可以消除特征向量中的特征偏差。 為了對樣本數據應用平均去除預處理技術,可以編寫如下Python代碼。 代碼將顯示輸入數據的平均值和標準偏差 -

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

運行上述代碼行後,將得到以下輸出 -

Mean = [ 1.75       -1.275       2.2]
Std deviation = [ 2.71431391  4.20022321  4.69414529]
現在,下面的代碼將刪除輸入數據的平均值和標準偏差 -
data_scaled = preprocessing.scale(input_data)
print("Mean =", data_scaled.mean(axis=0))
print("Std deviation =", data_scaled.std(axis = 0))

運行上述代碼行後,將得到以下輸出 -

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


縮放

這是另一種數據預處理技術,用於縮放特征向量。 特征向量的縮放是需要的,因為每個特征的值可以在許多隨機值之間變化。 換句話說,我們可以說縮放非常重要,因為我們不希望任何特征合成為大或小。 借助以下Python代碼,我們可以對輸入數據進行縮放,即特征矢量 -

最小最大縮放

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)

運行上述代碼行後,將得到以下輸出 -

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

正常化

這是另一種數據預處理技術,用於修改特征向量。 這種修改對於在一個普通的尺度上測量特征向量是必要的。 以下是可用於機器學習的兩種標準化 -

L1標準化

它也被稱為最小絕對偏差。 這種標準化會修改這些值,以便絕對值的總和在每行中總是最多為1。 它可以在以下Python代碼,使用上面的輸入數據來實現 -

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

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

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]]
Python

L2標準化

它也被稱為最小二乘。這種歸正常化修改了這些值,以便每一行中的平方和總是最多為1。它可以在以下Python代碼,使用上面的輸入數據來實現 -

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

執行以上代碼行將生成以下輸出 -

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 ]]


易百教程人工智能python修正-人工智能數據準備-預處理數據