特徵縮放(Feature Scaling)

Photo by ŞULE MAKAROĞLU on Unsplash
Photo by ŞULE MAKAROĞLU on Unsplash
在機器學習中,在我們將資料拿來訓練模型之前,通常要先對資料做特徵縮放(feature scaling)。本文章將介紹一些 feature scaling 的方法。

在機器學習中,在我們將資料拿來訓練模型之前,通常要先對資料做特徵縮放(feature scaling)。本文章將介紹一些 feature scaling 的方法。

Feature Scaling 與 Gradient Descent

當資料的各個 feature 的值的範圍差異太大時,它可能會使得 gradient descent 的執行速度變慢。這時我們將各個 feature 進行 feature scaling,使得它們處在可比較的範圍內,這樣會加速 gradient descent 的執行速度。

Rescaling (Min-Max Normalization)

Rescaling 又稱 min-max normalization。它將值減掉最小值,再除以最大值減掉最小值。這樣可以將值縮放到 [0, 1] 之間。

x^{\prime}=\frac{x-min(x)}{max(x)-min(x)}

Mean Normalization

Mean Normalization 將值減掉平均值,再除以最大值減掉最小值。這樣可以將值縮放到 [-1, 1] 之間。

x^{\prime}=\frac{x-mean(x)}{max(x)-min(x)}

Standardization (Z-score Normalization)

Standardization 又稱 z-score normalization。它將值減掉平均值,再除以標準差(standard deviation)。它會使每個特徵中的數值平均變為 0 且標準差變為 1。這個方法被廣泛的使用在許多機器學習演算法中。

x^{\prime}=\frac{x-mean(x)}{\sigma} \\\\ \sigma=\sqrt{\frac{1}{n} \sum(x-mean(x))^2}

結語

雖然 feature scaling 沒有很難,但是它可以顯著地提供 gradient descent 的速度。所以,當我們收集好資料,在開始訓練模型之前,可以先分析各個 feature 的值的範圍是否差異太大。如果是,那記得先做好 feature scaling 後,再訓練模型。

參考

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

You May Also Like