特征縮放_概念
阿新 • • 發佈:2018-04-24
jsb pan 距離 int 特征值 The res 輸出 ces
- 給出這三個人的身高和體重:
- 按照我們的理解,明顯Chris應該穿L碼,但是根據身高+體重的結果,Chris卻應該穿S。這是為什麽呢?
因為在這裏,體重完全主導了結果,身高的影響微乎其微。
而我們應該盡量讓兩者對結果有同等重要的影響。
這就引來了特征縮放——把特征都限制在[0,1]之間。
解釋:
- X’是你要構建的新特征
- X(max)和X(min)是原始特征再被縮放前所取的最小值和最大值
- X代表需要縮放的各項特征的原始值
特點:縮放後的特征值總是在0和1之間
- 優點:你的預估輸出相對穩定
-
缺點:如果你的輸出特征中有異常值,那麽你的特征縮放就會比較棘手(最大值最小值可能是極端值)
代碼示例:
from sklearn.preprocessing import MinMaxScaler import numpy #這裏numpy數組中的是特征,因為此處特征只有一個,所以看起來是這樣的 #因為這裏應該作為一個浮點數進行運算,所以數字後面要加. weights = numpy.array([[115.],[140.],[175.]]) scaler = MinMaxScaler() rescaled_weight = scaler.fit_transform(weights) print rescaled_weight
哪些機器學習算法會受到特征縮放的影響?
- 使用RBF核函數的SVN
- K-均值聚類
在這兩種算法中計算距離時,你其實是在利用一個維度與另一個維度進行交換
如:
- SVM計算最大距離時就是這種情況。如果我們把某一點增大至其他點的兩倍,那麽它的數值也會擴大一倍
- K-均值聚類也是。計算各數據點到集群中心的距離
特征縮放_概念