归一化数据值解析
def autoNorm(dataSet):
minVals=dataSet.min(0)
#返回每一列最小值
maxVals=dataSet.max(0)
#返回每一列最大值
ranges=maxVals-minVals
normDataSet=zeros(shape(dataSet))
#shape() 查看矩阵维数
m=dataSet.shape[0]
#取dataSet的行数
normDataSet=dataSet-tile(minVals,(m,1))
#让dataSet里面的每一个值都减去最小值
normDataSet=normDataSet/tile(ranges,(m,1))
#让已经减去最小值的矩阵再除以(最大值-最小值),归一化
return normDataSet,ranges,minVals
测试代码
import kNN1
import importlib
importlib.reload(kNN1)
datingDataMat,datingLabels=kNN1.file2matrix('datingTestSet2.txt')
normMat,ranges,minVals=kNN1.autoNorm(datingDataMat)