在機器學習中,在我們將資料拿來訓練模型之前,通常要先對資料做特徵縮放(feature scaling)。本文章將介紹一些 feature scaling 的方法。
Table of Contents
Feature Scaling 與 Gradient Descent
當資料的各個 feature 的值的範圍差異太大時,它可能會使得 gradient descent 的執行速度變慢。這時我們將各個 feature 進行 feature scaling,使得它們處在可比較的範圍內,這樣會加速 gradient descent 的執行速度。
Rescaling (Min-Max Normalization)
Rescaling 又稱 min-max normalization。它將值減掉最小值,再除以最大值減掉最小值。這樣可以將值縮放到 [0, 1] 之間。
Mean Normalization
Mean Normalization 將值減掉平均值,再除以最大值減掉最小值。這樣可以將值縮放到 [-1, 1] 之間。
Standardization (Z-score Normalization)
Standardization 又稱 z-score normalization。它將值減掉平均值,再除以標準差(standard deviation)。它會使每個特徵中的數值平均變為 0 且標準差變為 1。這個方法被廣泛的使用在許多機器學習演算法中。
結語
雖然 feature scaling 沒有很難,但是它可以顯著地提供 gradient descent 的速度。所以,當我們收集好資料,在開始訓練模型之前,可以先分析各個 feature 的值的範圍是否差異太大。如果是,那記得先做好 feature scaling 後,再訓練模型。
參考
- Andrew Ng, Machine Learning Specialization, Coursera.