分类器针对约会网站的测试代码
def datingClassTest():
hoRatio=0.10
datingDataMat,datingLabels=file2matrix('datingTestSet.txt')#读取所有的数据
normMat,ranges,minVals=autoNorm(datingDataMat)#归一化
m=normMat.shape[0]#获取一共有多少行数据
numTestVecs=int(m*hoRatio)#取全部数据的10%用作测试,这里一共有numTestVecs个测试数据
errorCount=0.0
for i in range(numTestVecs):
classifierResult=classify0(normMat[i,:],normMat[numTestVecs:m,:],\
datingLabels[numTestVecs:m],3) #调用classify0函数,第一项是10%的测试数据,第二项是90%的训练数据,第三项是90%的训练数据所对应的标签,第四项是k的取值
print "the classifier came back with : %d,the real answer is : %d"\
%(classifierResult,datingLabels[i])
if (classifierResult!=datingLabels[i]):errorCount+=1.0#测试结果不等于已知结果,错误个数加1
print "the total error rate is: %f" %(errorCount/float(numTestVecs))#计算错误率