完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
k-近邻算法简述 k-近邻算法(kNN)采用测量不同特征值之间的距离方法进行分类。工作原理:首先存在一个样本数据集合(训练样本集),并且样本集中每个数据都存在标签(监督学习)。所谓的标签就是样本集每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征相比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中的前k个最相似的数据,这就是k近邻算法中k的出处,k通常不大于20的整数。最后选择k个最相似数据中出现次数最多的分类,作为新数据的分类。这里的距离是指d=sqrt{(X1-X2)^2+(Y1-Y2)^2}。其中(X1,Y1)表示某个样本的两个特征值。下面以一个具体的例子来说明:电影分类的例子,使用k-近邻算法分类爱情片和动作片。有人曾经统计过很多电影的打斗镜头和接吻镜头,在这里我们就选取打斗镜头和接吻镜头的次数作为特征来分类,下面显示了六部电影的打斗和接吻镜头次数。假设有一部未看过的电影,如何确定它是爱情片还是动作片?我们使用kNN来确定。 电影名称 打斗镜头 接吻镜头 电影类型 California Man 3 104 爱情片 He's Not Really into Dudes 2 100 爱情片 Beautiful Woman 1 81 爱情片 Kevin Longblade 101 10 动作片 Robo Slayer 3000 99 5 动作片 Amped 2 98 2 动作片 ? 18 90 未知 首先我们需要知道这个位置电影存在多少个打斗镜头和接吻镜头,数据如上表?数据,只知道打斗镜头和接吻镜头的次数。即使不知道未知电影属于哪种类型,我们也可以通过某种方法求出来。首先计算未知电影与样本集中其他电影的距离。如下表: 电影名称 与未知电影的距离 California Man 20.5 He's Not Really into Dudes 18.7 Beautiful Woman 19.2 Kevin Longblade 115.3 Robo Slayer 3000 117.4 Amped 2 118.9 在这里我们可以将打斗镜头次数和接吻镜头次数作为两个特征,即(打斗镜头次数,接吻镜头次数),然后计算距离。现在我们知道了样本集中所有电影与未知电影的距离,按照距离递增排序,找到k个距离最近的电影。假定这里k=3,则三个最靠近的电影依次是He’s Not Really into Dudes 、 Beautiful Woman 以及California Man 。k-近邻算法按照距离最近的三部电影的类型,决定未知电影的类型。而这三部全是爱情片,因此我们判定未知电影是爱情片。 k-近邻算法的一般流程 1、收集数据:可以使用任何方法。 2、准备数据:距离计算所需的数值,最好是结构化的数据格式。 3、分析数据:可以使用任何方法。 4、训练算法:此步骤不适用于k-近邻算法。 5、测试算法:计算错误率。 6、使用算法:首先需要输入样本数据和结构化的输出结果,然后运行k-近邻算法判定输入数据分别属于哪个分类,最后应用对计算出的分类执行后续的处理。 关于k-近邻算法如何使用python实现的例子不在此赘述,具体的例子会上传到github,感兴趣的可以去看看,这里只要阐述思想。 |
|
相关推荐 |
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
533 浏览 0 评论
803 浏览 1 评论
700 浏览 1 评论
1926 浏览 1 评论
3171 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 11:56 , Processed in 0.617311 second(s), Total 42, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号