源自 machine learning in action
1.原因:
例如在用 KNN 算法處理數據時,比如有兩個特徵,一個特徵的取值範圍爲0~1,另一個取值範圍爲1W 以上,那麼用歐式距離計算的話第一個特徵的影響幾乎就會微不足道,爲了解決這個問題,在處理數據的時候對數據進行歸一化處理。
2.代碼:
def autoNorm(dataSet):
#every minimum value of each column, return a list
minVals = dataSet.min(0)
#every maximum value of each column, return a list
maxVals = dataSet.max(0)
ranges = maxVals - minValus
numRow = dataSet.shape[0]
diffSet = dataSet - tile(minVals,(numRow,1))
normSet = diffSet/tile(ranges, (numRow, 1))
return normSet