王紫薇 徐凯 侯益明
摘 要:传统的KNN算法采用欧氏距离公式,文章中的KNN算法分别采用欧式距离公式、切比雪夫距离公式、曼哈顿距离公式对鸢尾花数据集进行分类,在不同距离公式下,分类结果的准确率具有一定的区别,采用切比雪夫距离公式时,分类结果的准确率达到100%,对以后KNN算法的研究及应用具有重要意义。
关键词:KNN;距离公式;分类
0 引言
数据挖掘分类技术方法众多,包括决策树、神经网络、模糊集、粗糙集、回归分析、差别分析等。数据挖掘分类技术应用越来越广泛,徐彧铧采用决策树对鸢尾花进行分类,对比分析了ID3算法、C4.5算法以及CART算法在鸢尾花分类任务上的可行性[1]。其中,神经网络技术迅速发展,应用到很多方面。比如,猪脸识别[2]、猪只饮食行为识别[3]、无人机的小目标实时监测[4]。
本文采用基于不同距离计算方法的KNN算法对鸢尾花进行识别,KNN分类算法分别采用欧氏距离公式、切比雪夫距离公式、曼哈顿距离公式对鸢尾花进行分类。在不同距离公式下,得出的准确率、分类时间有一定的区别。其中,当KNN算法采用切比雪夫距离公式时,分类结果的准确率可以达到100%,对以后KNN算法的研究具有重要意义。
1 数据准备与预处理
Iris鸢尾花数据集是一个经典公开的数据集,数据集包含3类,共有150条记录,每个类别有50条记录。包含4个特征,分别为花萼长度、花萼宽度、花瓣长度、花瓣宽度。公开的数据中已经标明了每个特征对应的数值。
对收集到的鸢尾花数据集进行归一化操作,可以提升模型的精度与收敛速度。Iris鸢尾花数据集包含150条记录,在150条记录中随机选择100条记录作为训练集,50条记录作为测试集。随机选取可以保证结果的普遍性。
2 KNN算法
2.1 KNN原理
KNN又称K邻近分类算法,KNN算法是一种数据挖掘分类技术,属于有监督学习方法。将未知数据的特征与训练集中的每一个数据相对应的特征进行计算,采用距离公式进行相应特征间的计算,计算完毕,再选择出前K个距离最小的数据,计算出的距离代表未知数据的特征与训练集中每一个数据的特征的相似度,距离越小,说明相似度越大,未知数据是这个数据对应的类别的概率越大。在这K个数据中,记录每一个数据出现的次数,出现次数最多的数据对应的类别就是未知数据的类别。
2.2 距离公式
在以下公式中,d表示距离,xi表示未知数据的特征,yi表示训练集中的每一个数据相对应的特征。
2.2.1 欧氏距离
传统的KNN算法采用欧氏距离公式对未知数据的特征与训练集中的每一个数据相对应的特征进行计算。欧式距离计算公式为:
2.2.2 切比雪夫距离
切比雪夫距离是一种定义在向量空间上的度量方法,也被称为棋盘距离[5]。切比雪夫距离公式为:
2.2.3 曼哈顿距离
曼哈顿距离又称为租车距离,距离公式为:
2.3 算法流程
采用距离公式计算出未知数据的特征与训练集中的每一个数据相对应特征的大小之后,再选取前K个数据,其中K值的选取会影响到未知数据的分类结果。经实验发现,当选取K值为14时,得到的分类结果的准确率达到最高。选择出前K个数据,根据这K个数据中每个类别出现的次数来得出未知数据的类别。出现次数最多的类别就是未知数据的类别。算法流程如图1所示。
3 实验过程
根据KNN算法的原理,首先,将所有的数据进行归一化处理,可以得到一个高精度及收敛速度较快的模型。其次,打乱所有的数据,将所有的数据分为训练集和测试集,训练集和测试集要随机选取,保证结果具有普遍性。KNN算法分别以3种距离公式对测试集进行测试。最后,选取前K个数据,记录K个数据中每个类别出现的次数,出现次数最多的类别就是未知数据的类别。分类流程如图2所示。
4结果分析
分别采用欧氏距离公式、切比雪夫距离公式、曼哈顿距离公式对随机选取的测试集进行测试,并记录下每种距离公式下的分类结果的准确率以及运行时间。采用欧式距离公式时,分类结果准确率为98%,运行时间为0.026 927秒;采用切比雪夫距离公式时,分类结果准确率为100%,运行时间为0.015 021秒;采用曼哈顿距离公式时,分类结果准确率为96%,运行时间为0.012 925秒。采用切比雪夫距离时准确率雖然能达到100%,但是,与采用曼哈顿距离时相比,运行时间要长。具体数据如表1所示。
5 结语
本文以基于不同距离公式的KNN算法对Iris鸢尾花数据集进行分类,分别以欧式距离公式、切比雪夫距离公式、曼哈顿距离公式来计算未知数据的特征与训练集中每一个数据相应的特征的相似度,选取出前14个数据,根据14个数据的类别对未知数据进行分类。当KNN算法采用切比雪夫距离公式时,分类结果的准确率达到100%,运行时间为 0.015 021秒,对以后KNN算法的研究具有重要意义。
[参考文献]
[1]徐彧铧.基于决策树的鸢尾花分类[J].电子制作,2018(20):99-100,84.
[2]秦兴,宋各方.基于双线性卷积神经网络的猪脸识别算法[J].杭州电子科技大学学报(自然科学版),2019(2):12-17.
[3]李菊霞,李艳文,牛帆,等.基于YOLOv4的猪只饮食行为检测[J/OL].农业机械学报:1-10[2021-03-03].http://kns.cnki.net/kcms/detail/11.1964.S.20210111.0938.010.html.
[4]张伟,庄幸涛,王雪力,等.DS-YOLO:一种部署在无人机终端上的小目标实时检测算法[J/OL].南京邮电大学学报(自然科学版),2021(01):1-13[2021-03-03].https://doi.org/10.14132/j.cnki.1673-5439.2021.01.011.
[5]毛鑫,蔡江辉,张素兰.一种基于加权切比雪夫距离的图像分割方法[J].太原科技大学学报,2020(6):449-455.
(编辑 何 琳)