- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
K―最近邻分类算法的应用的研究
K―最近邻分类算法的应用的研究
摘要:介绍了K-最近邻分类算法原理,将该算法应用到实际问题乘式割草机问题,通过实验得到了该乘式割草机问题中最近邻个数k的最佳值。研究了K-最近邻分类算法中最近邻个数k的取值对K-近邻分类算法的影响,实验确定当k大致等于n/k时,其中n是该训练集中事例的数目,K-最近邻算法的分类准确率最高。
关键词:KNN分类算法;乘式割草机;训练集
中图分类号:TP312
文献标识码:A 文章编号:1672-7800(2015)003-0044-02
0 引言
K-最近邻(以下简称KNN)分类算法[1]是目前比较流行的一种分类方法。如今它已被广泛应用于各种人工智能领域,如模式识别、数据挖掘、后验概率估计、相似性分类、计算机视觉和生物信息学等。KNN分类算法的最大优点是其适合于属性较多或数据量很大的问题。它不需要先使用训练样本进行分类器设计,而是可以直接用训练集对数据样本进行分类,确定其类别标号。KNN分类算法思想简练,易于实现,在许多领域都有成功应用。
1 K-最近邻算法简介
最近邻分类法是基于类比学习,即通过给定的检验元组与和它相似的训练元组进行比较来学习。训练元组用n个属性描述。每个元组代表n维空间的一个点,即所有训练元组都放在n维模式空间中。当给定一个未知元组时,KNN分类算法搜索该模式空间,找出最接近未知元组的k个训练元组。这k个训练元组是未知元组的k个“最近邻”。
文中的KNN分类算法是基于如下假设:①所有数据及类别都为数值类型;②度量距离越大,两个元组越相似;③每一个属性具有相等的权重;④属性值归一化;⑤如果元组X1和(或)X2的给定属性A的值缺失,则假定取最大可能差。
2 实验算法流程
KNN分类算法流程如下:
Step1:准备数据,对数据进行预处理。
Step2:选用合适的数据结构存储训练数据和测试元组。
Step3:设定参数k,一般训练元组数越多,k的值越大,通常取奇数。
Step4:维护一个大小为k的按距离由大到小的优先级队列,用于存储最近邻训练元组。
Step5:随机从训练元组中选取k个元组作为初始最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号和距离存入优先级队列。
Step6:遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L与优先级队列中的最大距离Lmax进行比较。若L=Lmax,则舍弃该元组,遍历下一个元组。若LLmax,删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列。
Step7:遍历完毕,计算优先级队列中k个元组的多数类,并将其作为测试元组的类别。
Step8:测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k值。
3 实验结果与分析
3.1 实验环境和工具
实验环境:Microsoft Windows 7 + Java Develop Kit 1.7.0;服务器配置:Intel(R) Core(TM) CPU 2.50GHz,4.0GB 内存;实验工具:MyEclipse 8.5,Matlab 7.0。
3.2 实验数据集
本文采用的数据集以经典乘式割草机数据集为例,一个乘式割草机的制造商希望将一个城市中的家庭分类为可能买割草机家庭及不想买割草机家庭。在该城市中,随即抽取12个拥有乘式割草机的家庭和12个没有拥有乘式割草机的家庭。
进行实验时,将实验数据分为两个部分:训练集和测试集。将75%家庭划为训练集,其它25%家庭划为测试集。当k取不同值时,利用训练集家庭对测试集家庭进行分类。乘式割草机数据集如表1所示。
将数据集分为含有18个事例的训练集和含有6个事例的测试集。测试集包含表中第6、7、12、14、19、20个事例,剩下的18个观测点构成训练集。
3.3 估值标准
图1展示了在训练集和测试集中的所有事例,“*”表示测试集数据,“?”表示训练集数据。
如果选择k=1,则选择了一种对数据局部特征非常敏感的分类方式。如果选择的k值较大,则相当于取大量的数据点的平均,同时会平滑掉由于单个数据点的噪音而导致的波动性。
3.4 实验结果与分析
一般而言,k值通常取奇数。从k=1开始,使用检验集估计分类器的误差率。重复该过程,每次k增值2,允许增加两个近邻。选取产生最小误差率的k值作为本次实验的最佳取值。使用Matlab7.0软件对实验结果作图,如图2所示。
通过实验分析可以看出,在该案例中,将选择最近邻个数k=13。该选择很好地消除了在低k值时的变动性和高k值时的过平滑现象。针对不同k值的测试可知,k值可通过有效参数的
原创力文档


文档评论(0)