k-近邻算法(kNN)测试算法:作为完整程序验证分类器

 1 #测试算法:作为完整程序验证分类器
 2 def datingClassTest():
 3     hoRatio = 0.10  #设置测试集比重,前10%作为测试集,后90%作为训练集
 4     datingDataMat,datingLabels = file2matrix('datingTestSet.txt')
 5     normMat, ranges, minVals = autoNorm(datingDataMat)
 6     m = normMat.shape[0]    #得到样本数量m
 7     numTestVecs = int(m*hoRatio)    #得到测试集最后一个样本的位置
 8     errorCount = 0.0    #初始化定义错误个数为0
 9     for i in range(numTestVecs):
10         #测试集中元素逐一放进分类器测试,k = 3
11         classifierResult = classify0(normMat[i,:],normMat[numTestVecs:m,:],datingLabels[numTestVecs:m],3)
12         #输出分类结果与实际label
13         print("the classifier came back with: %d, the real answer is: %d"% (classifierResult, datingLabels[i]))
14         #若预测结果与实际label不同,则errorCount+1
15         if (classifierResult !=datingLabels[i]): errorCount += 1.0
16         #输出错误率 = 错误的个数 / 总样本个数
17         print("the total error rate is: %f" % (errorCount/float(numTestVecs)))

输入命令:kNN.datingClassTest()

原文地址:https://www.cnblogs.com/fd-682012/p/11575151.html