什麼是機器學習中的標準化


資料集是任何機器學習模型的核心。對資料集中的資料進行縮放並將其保持在特定範圍內至關重要,以提供準確的結果。

機器學習中的標準化是一種特徵縮放方法,用於使資料集統一,從而使自變數和特徵具有相同的規模和範圍。標準化將標準差轉換為1,均值轉換為0。在標準化中,從每個資料點中減去均值,然後將得到的結果除以標準差,從而得到標準化和重新縮放的資料。

這種技術用於諸如主成分分析、支援向量機和k均值聚類等機器學習模型,因為它們依賴於歐幾里德距離。

數學表示如下

Z = (X - m ) / s 

其中

X  − 一個數據點

− 均值

− 標準差

− 標準化值

演算法

步驟 1 − 匯入所需的庫。一些常用的匯入庫來標準化機器學習模型包括 numpy、pandas 或 scikit-learn。

步驟 2 − 從預處理器匯入 StandardScaler() 函式。

步驟 3 − 上傳要標準化的資料集。

步驟 4 − 將資料分成訓練資料和測試資料:X_test、y_test、X_train 和 y_train。

步驟 5 − 將資料擬合到 StandardScaler() 函式中進行標準化。

示例

在這個例子中,我們將透過取隨機資料值來檢查標準化。讓我們考慮以下值集作為資料點:

3 5 7 8 9 4 
The mean m= 36/6 = 6  
The standard deviation s = 2.36 
Z1= - 1.27
Z2= - 0.42
Z3= - 0.42
Z4=   0.84
Z5=   1.27
Z6=  -0.84
Now, the mean is (Z1 + Z2 + Z3 + Z4 + Z5)/5
= (- 1.27 - 0.42 + 0.42 + 0.84 + 1.27 - 0.84)/5
= 0 

標準差為1

因此,標準化後,值在相同的範圍內,均值為0,標準差為1。

示例

from sklearn.preprocessing import StandardScaler
import numpy as np

# Create a sample data matrix 
X = np.array([[85,72,80], [64, 35, 26], [67, 48, 29], [100, 11, 102], [130, 14, 151]])

# create an instance of StandardScaler
standard_scaler = StandardScaler()

# Fit the scaler to the data
standard_scaler.fit(X)

# Transform the data using the scaler
X_new= standard_scaler.transform(X)

# Print the transformed data
print(" new data:", X_new)

輸出

new data: [[-0.17359522  1.59410679  0.0511375 ]
 [-1.04157134 -0.04428074 -1.09945622]
 [-0.91757475  0.53136893 -1.03553435]
 [ 0.44638772 -1.10701861  0.5198979 ]
 [ 1.68635359 -0.97417637  1.56395517]]

在這個程式中,變數 X 包含特徵作為數字陣列。它被擬合到 StandardScaler() 函式中,並顯示標準化陣列。

結論

標準化是透過操作資料來獲得無錯誤結果的好方法。資料集具有各種變數,其值可能超出範圍。這個問題可以使用標準化和規範化來解決,兩者都屬於特徵縮放。特徵縮放的目的是確保在使用機器學習模型預測輸出時,所有特徵都具有同等重要性。

更新於:2023年7月21日

瀏覽量:544

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.