机器学习 | 特征缩放
文章目錄
- 1. 特征縮放
- 1.1 最大最小值歸一化(min-max normalization)
- sklearn.preprocessing.MinMaxScaler
- 1.2 均值歸一化(mean normalization)
- 1.3 中心化(mean centering)
- 1.4 標準化 / z值歸一化(standardization / z-score normalization)
- sklearn.preprocessing.StandardScaler
- 1.5 最大絕對值歸一化(max-abs normalization)
- sklearn.preprocessing.Normalizer
- 1.6 穩健歸一化(robust normalization)
- sklearn.preprocessing.robust_scale
- 2. 需要進行縮放的模型
- 3. 不需要進行縮放的模型
- 4. 進行特征縮放的注意事項
1. 特征縮放
特征縮放(Feature Scaling)
1.1 最大最小值歸一化(min-max normalization)
x′=x?min(x)max(x)?min(x)(1)x^\prime=\frac{x-min(x)}{max(x)-min(x)} \tag{1} x′=max(x)?min(x)x?min(x)?(1)
將數據歸一化到 [0,1][0,1][0,1]。
sklearn.preprocessing.MinMaxScaler
MinMaxScaler(feature_range=(0, 1), copy=True)
1.2 均值歸一化(mean normalization)
x′=x?xˉmax(x)?min(x)(2)x^\prime=\frac{x-\bar{x}}{max(x)-min(x)} \tag{2} x′=max(x)?min(x)x?xˉ?(2)
將數據歸一化到 [?1,1][-1,1][?1,1]。
1.3 中心化(mean centering)
x′=x?xˉ(3)x^{\prime}=x-\bar{x} \tag{3} x′=x?xˉ(3)
將數據縮放到 0 附近。
1.4 標準化 / z值歸一化(standardization / z-score normalization)
x′=x?xˉσ(4)x^{\prime}=\frac{x-\bar{x}}{\sigma} \tag{4} x′=σx?xˉ?(4)
將數據標準化為均值為 0 ,標準差為 1。
sklearn.preprocessing.StandardScaler
StandardScaler(copy=True, with_mean=True, with_std=True)
1.5 最大絕對值歸一化(max-abs normalization)
x′=x∥max(x)∥(5)x^\prime=\frac{x}{\|max(x)\|} \tag{5}x′=∥max(x)∥x?(5)
適用于稀疏數據,將數據縮放到 [?1,1][-1,1][?1,1]。
sklearn.preprocessing.Normalizer
Normalizer(norm=‘l2’, copy=True)
norm =‘max’ 時為最大絕對值歸一化(好像沒有絕對值)。
1.6 穩健歸一化(robust normalization)
先減去中位數,再除以四分位距(interquartile range, IQR)。因為不涉及極值,因此在數據里有異常值的情況下表現比較穩健。
x′=x?median(x)IQR(x)(6)x^\prime = \frac{x-median(x)}{IQR(x)} \tag{6}x′=IQR(x)x?median(x)?(6)
sklearn.preprocessing.robust_scale
robust_scale(X, axis=0, with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True)
2. 需要進行縮放的模型
通過梯度下降法求解的模型需要進行特征縮放,這包括線性回歸(Linear Regression)、邏輯回歸(Logistic Regression)、感知機(Perceptron)、支持向量機(SVM)、神經網絡(Neural Network)等模型。
此外,近鄰法(KNN),K均值聚類(K-Means)等需要根據數據間的距離來劃分數據的算法也需要進行特征縮放。
主成分分析(PCA),線性判別分析(LDA)等需要計算特征的方差的算法也會受到特征縮放的影響。
3. 不需要進行縮放的模型
決策樹(Decision Tree),隨機森林(Random Forest)等基于樹的模型不需要進行特征縮放,因為特征縮放不會改變樣本在特征上的信息增益。
4. 進行特征縮放的注意事項
需要先把數據拆分成訓練集與驗證集,在訓練集上計算出需要的數值(如均值和標準值),對訓練集數據做標準化/歸一化處理(不要在整個數據集上做標準化/歸一化處理,因為這樣會將驗證集的信息帶入到訓練集中,這是一個非常容易犯的錯誤),然后再用之前計算出的數據(如均值和標準值)對驗證集數據做相同的標準化/歸一化處理。
參考資料
[1] HuZihu.[ML] 特征縮放(Feature Scaling)[EB/OL].https://www.cnblogs.com/HuZihu/p/9761161.html, 2019-08-11.
[2] Sebastian Raschka.[ML] About Feature Scaling and Normalization
– and the effect of standardization for machine learning algorithms[EB/OL].https://sebastianraschka.com/Articles/2014_about_feature_scaling.html, 2014-7-11.
總結
以上是生活随笔為你收集整理的机器学习 | 特征缩放的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu 搜索文件方法(find命令
- 下一篇: vtk读取文件并显示的几种方法