k-近邻算法(kNN)测试算法:作为完整程序验证分类器
2020-12-13 15:22
标签:orm int rate col count 初始 ota val ges 输入命令:kNN.datingClassTest() k-近邻算法(kNN)测试算法:作为完整程序验证分类器 标签:orm int rate col count 初始 ota val ges 原文地址:https://www.cnblogs.com/fd-682012/p/11575151.html 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)))