標籤:3.5 imp 預先處理 中心 一個 輸入 std 向量 閾值
預先處理資料
在我們的日常生活中,需要處理大量資料,但這些資料是未經處理資料。 為了提供資料作為機器學習演算法的輸入,需要將其轉換為有意義的資料。 這就是資料預先處理進入映像的地方。 換言之,可以說在將資料提供給機器學習演算法之前,我們需要對資料進行預先處理。
資料預先處理步驟
按照以下步驟在Python中預先處理資料 -
第1步 - 匯入有用的軟體包 - 如果使用Python,那麼這將成為將資料轉換為特定格式(即預先處理)的第一步。如下代碼 -
import numpy as npfrom 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 datadata_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 datadata_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修正-人工智慧資料準備-預先處理資料