file2matrix函数中:
classLabelVector.append(int(listFromLine[-1]))文本格式的label无法int
增加函数:
def intLabel(classLabelVector): labelReference = {} a = list(set(classLabelVector)) for i in range(len(a)): labelReference[a[i]] = i intedLabel = [] for x in classLabelVector: intedLabel.append(labelReference[x]) return intedLabel并修改file2matrix函数为:
def file2matrix(filename): fr = open(filename) numberOfLines = len(fr.readlines()) #get the number of lines in the file returnMat = zeros((numberOfLines,3)) #prepare matrix to return classLabelVector = [] #prepare labels return fr = open(filename) index = 0 for line in fr.readlines(): line = line.strip() listFromLine = line.split('\t') returnMat[index,:] = listFromLine[0:3] classLabelVector.append(listFromLine[-1]) index += 1 classLabelVector=intLabel(classLabelVector) return returnMat, classLabelVector
实现将文本型标签转化为数值型标签