源自 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