本文采用封闭评估的方法,前100条数据作为测试集,后900条数据作为训练集。如上结果最后一条信息表明knn分类器的结果是3,而标准结果是1.knn分类存在错误。将所有错误占比分析出来即错误率。本文错误率5%,即准确率95%.
读者可以选取200:800、300:700等等数据进行测试查看错误率。
4 KNN算法模型的实际应用knn分类器应用
经过如上的改进最终形成实际应用的算法模型API开发给外部程序使用,调用knn算法代码如下:
'''调用可用算法''' def show_classifyPerson(filename): resultlist = ['不喜欢','还可以','特别喜欢'] ffMiles = float(input('每年飞行的历程多少公里?\n')) percentTats = float(input('玩游戏时间占百分比多少?\n')) # [751,13,0.4][40920 ,8.326976,0.953952] iceCream = float(input('每周消费冰淇淋多少公升?\n')) dataset,labels = file_matrix(filename) # 数据格式化处理 inArr = array([ffMiles,percentTats,iceCream]) classifierResult = knn_classifier(inArr,dataset,labels,3) # 数据归一化并进行分类 print('预测的约会结果是:'+resultlist[classifierResult-1])运行结果如下:
每年飞行的历程多少公里? 10000 玩游戏时间占百分比多少? 10 每周消费冰淇淋多少公升? 0.5 KNN的投票决策结果: 2 预测的约会结果是:还可以展望
我们还可以采用knn分类器进行实际应用,比如新闻分类系统。大致思路如下:
1 采集数据:选用复旦大学的文本分类新闻语料 2 准备数据:数据格式化、分词、停用词处理等 3 分析数据:看看数据特点,有没有缺失值,数据连续性还是离散型,进而选择不同模型。诸如:可视化数据分析 4 数据转化:采用IF-IDF或者神经网络的方法对词频进行处理,最终转化为机器可以处理的数值型矩阵。 5 构建模型:KNN新闻分类器模型构建。 6 测试算法:评价指标,如计算错误率,准确率,召回率,F度量值等。 7 应用算法:针对完善的模型进行封装重构,然后进行实际的新闻分类应用。
5 参考文献归一化学习:https://blog.csdn.net/hyq3235356/article/details/78472307
归一化方法:https://blog.csdn.net/zxd1754771465/article/details/73558103
百度Echart转化工具:
在线json验证格式工具:
模型评估:
完整代码下载机器学习和自然语言QQ群:436303759。 微信公众号:datathinks
源码请进QQ群文件下载:
作者声明本文原创,旨在学术和科研使用。转载必须注明出处【伏草惟存】: 基于KNN分类算法模型为案例进行机器学习研究