在當今的數據科學和機器學習領域,特徵縮放(Feature Scaling)是一個不可忽視的概念。簡單來說,特徵縮放是用來正規化數據中獨立變量或特徵的一種方法,這在數據預處理階段中尤為關鍵。如果不進行特徵縮放,某些機器學習算法中的目標函數可能會因為數據範圍的廣泛差異而無法正確工作。
「在數據處理中,數據的範圍會影響到分類器達到最佳性能的能力。」
舉例來說,許多分類器透過歐幾里得距離來計算兩個數據點之間的距離。如果某一個特徵的值範圍相當廣泛,那麼這個特徵對最終距離的影響將會壓過其他特徵。所以,確保所有特徵的範圍經過正規化是非常重要的,這樣每個特徵都能適度地對最終距離作出貢獻。
另外,進行特徵縮放還可以讓梯度下降的收斂速度更快。當使用正則化作為損失函數的一部分時,對特徵的縮放也是至關重要的,以便正確地懲罰係數。根據實證研究顯示,特徵縮放能夠有效提升隨機梯度下降法的收斂速度,並且在支持向量機(SVM)中能加快找到支持向量的速度。對於需要處理解距離和相似性的應用場景,例如聚類和相似性搜尋,特徵縮放同樣非常常見。以 K-means 聚類算法為例,它對特徵的縮放敏感。
重縮放又被稱作最小-最大縮放,這是一種最簡單的方法,通過將特徵範圍重新縮放到 [0, 1] 或 [-1, 1]。選擇目標範圍取決於數據的特性。這裡是重縮放的一個基本公式:
x' = (x - min(x)) / (max(x) - min(x))
舉例來說,假設我們有學生的體重數據,範圍為 [160 磅, 200 磅]。要對這些數據進行重縮放,我們先從每位學生的體重大於 160 的數值中減去 160,然後將結果除以 40(即最大和最小體重的差)。
均值正規化的公式為:
x' = (x - x̄) / (max(x) - min(x))
這裡,x̄ 是該特徵向量的平均值。另一種形式的均值正規化則是將數據除以標準差,這也稱為標準化。
在機器學習中,我們可以處理各種類型的數據,像是音頻信號和圖像數據的像素值,這些數據可能包含多個維度。特徵標準化使得每個特徵的值以零均值(當在分子中減去平均值時)和單位方差為標準。這一方法廣泛應用於許多機器學習算法中,例如支持向量機、邏輯回歸和人工神經網絡。
x' = (x - x̄) / σ
這裡,σ 是特徵的標準差。
穩健縮放又名為使用中位數與四分位距(IQR)的標準化,旨在對異常值保持穩健。它使用中位數和四分位距作為參考點進行縮放。
x' = (x - Q2(x)) / (Q3(x) - Q1(x))
其中 Q1(x)、Q2(x)、Q3(x) 是特徵的三個四分位數(25th, 50th, 75th 百分位)。
單位向量正規化將每個單一數據點視為一個向量,並且將每個數據點除以其向量範數,以獲得:
x' = x / ||x||
任何向量範數均可使用,但使用最常見的是 L1 範數與 L2 範數。
採用適當的特徵縮放方法不僅能提升模型的準確率,更能加快訓練速度。隨著技術的進步,對數據預處理的要求愈來愈高,這也促使數據科學家和機器學習工程師必須對特徵縮放有深刻的理解和運用。那麼,未來的數據處理技術又將朝向何方發展呢?