1.5 特征缩放-机器学习笔记-斯坦福吴恩达教授
特征縮放
引子
在前一章節(jié)中,對房屋售價進(jìn)行預(yù)測時,我們的特征僅有房屋面積一項,但是,在實際生活中,臥室數(shù)目也一定程度上影響了房屋售價。下面,我們有這樣一組訓(xùn)練樣本:
注意到,房屋面積及臥室數(shù)量兩個特征在數(shù)值上差異巨大,如果直接將該樣本送入訓(xùn)練,則代價函數(shù)的輪廓會是“扁長的”,在找到最優(yōu)解前,梯度下降的過程不僅是曲折的,也是非常耗時的:
縮放
該問題的出現(xiàn)是因為我們沒有同等程度的看待各個特征,即我們沒有將各個特征量化到統(tǒng)一的區(qū)間。量化的方式有如下兩種:
Standardization
Standardization 又稱為 Z-score normalization,量化后的特征將服從標(biāo)準(zhǔn)正態(tài)分布:
z=xi?μδz=\frac{x_i?μ}δz=δxi??μ?
其中, μμμ , δδδ 分別為對應(yīng)特征 xix_ixi? 的均值和標(biāo)準(zhǔn)差。量化后的特征將分布在 [?1,1] 區(qū)間。
Min-Max Scaling
Min-Max Scaling 又稱為 normalization,特征量化的公式為:
z=xi?min(xi)max(xi)?min(xi)z=\frac {x_i?min(x_i)}{max(x_i)?min(x_i)}z=max(xi?)?min(xi?)xi??min(xi?)?
量化后的特征將分布在 [0,1] 區(qū)間。
大多數(shù)機器學(xué)習(xí)算法中,會選擇 Standardization 來進(jìn)行特征縮放,但是,Min-Max Scaling 也并非會被棄置一地。在數(shù)字圖像處理中,像素強度通常就會被量化到 [0,1] 區(qū)間,在一般的神經(jīng)網(wǎng)絡(luò)算法中,也會要求特征被量化到 [0,1] 區(qū)間。
進(jìn)行了特征縮放以后,代價函數(shù)的輪廓會是“偏圓”的,梯度下降過程更加筆直,性能因此也得到提升:
代碼實現(xiàn)
在 regression.py 中,我們添加了 Standardization 和 Normalization 的實現(xiàn):
# linear_regression/regression.py# ... def standardize(X):"""特征標(biāo)準(zhǔn)化處理Args:X: 樣本集Returns:標(biāo)準(zhǔn)后的樣本集"""m, n = X.shape# 歸一化每一個特征for j in range(n):features = X[:,j]meanVal = features.mean(axis=0)std = features.std(axis=0)if std != 0:X[:, j] = (features-meanVal)/stdelseX[:, j] = 0return Xdef normalize(X):"""特征歸一化處理Args:X: 樣本集Returns:歸一化后的樣本集"""m, n = X.shape# 歸一化每一個特征for j in range(n):features = X[:,j]minVal = features.min(axis=0)maxVal = features.max(axis=0)diff = maxVal - minValif diff != 0:X[:,j] = (features-minVal)/diffelse:X[:,j] = 0return X # ...參考文獻(xiàn)
- About Feature Scaling and Normalization
- Wiki–Feature scaling
總結(jié)
以上是生活随笔為你收集整理的1.5 特征缩放-机器学习笔记-斯坦福吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.4 正规方程-机器学习笔记-斯坦福吴
- 下一篇: 1.6 多项式回归-机器学习笔记-斯坦福