關於機器學習之特征縮放


Andrew在他的機器學習課程里強調,在進行學習之前要進行特征縮放,目的是保證這些特征都具有相近的尺度,這將幫助梯度下降算法更快地收斂。

python里常用的是preprocessing.StandardScaler()

公式為:(X-mean)/std  計算時對每個屬性/每列分別進行。

將數據按期屬性(按列進行)減去其均值,並處以其方差。得到的結果是,對於每個屬性/每列來說所有數據都聚集在0附近,方差為1。

但是我在用k-means進行分類的時候發現,歸一化之后分類的准確性反而下降了,應該是跟我的數據特征有關系。我的數據是三維坐標,我的要求是z軸不一樣的數據一定不能放在一類里,所以我人為將z軸數據加劇區分度,比如原來是(10,20,0),(13,16,0),(23,16,10)。為了確保將z軸不同的數據區分開來,我將第三個數據改為了(23,16,100),這樣z維的數據區別遠大於其他兩維,在聚類是就不會被淹沒。但是當進行歸一化之后,所有的數據都變得很小,我想要的區分度就不能體現了,就達不到我需要的聚類效果。

所以我覺得,是不是需要做歸一化,以及如何做歸一化還是需要根據情況而定。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM