ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-09-24 17:02:13  阅读:288  来源: 互联网

标签:datingLabels numTestVecs normMat 分类器 算法 测试 程序验证 errorCount


 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()

 

标签:datingLabels,numTestVecs,normMat,分类器,算法,测试,程序验证,errorCount
来源: https://www.cnblogs.com/fd-682012/p/11575151.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有