一、概念
- 歸一化:1)把數據變成(0,1)或者(1,1)之間的小數。主要是為了數據處理方便提出來的,把數據映射到0~1范圍之內處理,更加便捷快速。2)把有量綱表達式變成無量綱表達式,便於不同單位或量級的指標能夠進行比較和加權。歸一化是一種簡化計算的方式,即將有量綱的表達式,經過變換,化為無量綱的表達式,成為純量。
- 標准化:在機器學習中,我們可能要處理不同種類的資料,例如,音訊和圖片上的像素值,這些資料可能是高維度的,資料標准化后會使每個特征中的數值平均變為0(將每個特征的值都減掉原始資料中該特征的平均)、標准差變為1,這個方法被廣泛的使用在許多機器學習算法中(例如:支持向量機、邏輯回歸和類神經網絡)。
二、為什么要歸一化/標准化?
歸一化/標准化實質是一種線性變換,線性變換有很多良好的性質,這些性質決定了對數據改變后不會造成“失效”,反而能提高數據的表現,這些性質是歸一化/標准化的前提。比如有一個很重要的性質:線性變換不會改變原始數據的數值排序
三、python實現
# 歸一化 def normalization(data): _range = np.max(data) - np.min(data) return (data - np.min(data)) / _range # 標准化 def standardization(data): mu = np.mean(data, axis=0) sigma = np.std(data, axis=0) return (data - mu) / sigma