准备数据:从文本中解析数据,将特征输入到分类器前,必须将待处理的数据格式改变为分类器可以接受的格式。代码及解释如下:
def file2matrix(filename):
fr = open(filename)arrayOLines = fr.realines()
returnMat = zeros((numbersOfLines,3))
classLabelVector = []
index = 0
for line in arrayOLines:
line = line.strip()# strip()函数为删除一行中的空白符
listFromLine = line.split('\t')# 将字符串按照空格截取,将整行分割成一个元素列表
returnMat[index,:] = listFromLine[0:3]
classLabelVector.append(int(listFromLine[-1]))# append() 方法用于在列表末尾添加新的对象。-1表示列表的最后一列
index += 1
return returnMat,classLabelVector
准备数据:归一化数值
def autonorm(dataset):
minVals = dataset.min(0)
maxVals = dataset.max(0)
ranges = maxVals - minVals
normDataSet = zeros(shape(dataSet))
m = dataSet.shape[0]
normDataSet = dataSet-tile(minVals,(m,1))
normDataSet = normDataSet/tile(ranges,(m,1))
return normDataSet,ranges,minVals