KNN算法应用

应用场景
(1)文本分类:文本分类主要应用于信息检索,机器翻译,自动文摘,信息过滤,邮件分类等任务。文本分类在搜索引擎中也有着大量的使用,网页分类/分层技术是检索系统的一项关键技术,搜索引擎需要研究如何对网页进行分类、分层,对不同类别的网页采用差异化的存储和处理,以保证在有限的硬件资源下,提供给用户一个高效的检索系统,同时提供给用户相关、丰富的检索结果。在搜索引擎中,文本分类主要有这些用途:相关性排序会根据不同的网页类型做相应的排序规则;根据网页是索引页面还是信息页面,下载调度时会做不同的调度策略;在做页面信息抽取时,会根据页面分类的结果做不同的抽取策略;在做检索意图识别的时候,会根据用户所点击的url所属的类别来推断检索串的类别。
蛋白质晶体(2)回归:通过出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成正比。
(3)可以使用knn算法做到比较通用的现有用户产品推荐,基于用户的最近邻(长得最像的用户)买了什么产品来推荐是种介于电子商务网站和sns网站之间的精确营销。只需要定期(例如每
辣妹掌门人下载月)维护更新最近邻表就可以,基于最近邻表做搜索推荐可以很实时。
文本分类
    1.KNN 算法最初由 Cover 和 Hart 于 1968 年提出,该算法的基本思想是:根据传统的向量空间模型,文本内容被形式化为特征空间中的加权特征向量,即 D = D (T1,W1;T2,W2;…;Tn,Wn)。对于一个测试文本,计算它与训练样本集中每个文本的相似度,出 K 个最相似的文本,根据加权距离和判断测试文本所属的类别。
具体算法步骤如下:
(1) 对于一个测试文本,根据特征词形成测试文本向量。
(2) 计算该测试文本与训练集中每个文本的文本相似度, 计算公式为:
式中: x 为测试文本的特征向量;Sim(x,di)为相似度计算公式;b 为阈值,有待于优化选择;而 y(di,Cj)的取值为 1 或 0,如果 di属于 Cj,则函数值为 1,否则为 0 。
(5)比较类的权重,将文本分到权重最大的那个类别中。
  2.传统 KNN 分类系统
传统的 KNN 分类过程如图 5-1:
传统的 KNN 分类系统主要分为预处理、训练、分类三个阶段,如果要在不同时间进
行分类,则每次都需要对训练样本进行训练,这是造成了 KNN 分类时间较长的原因之一,
其实,在训练过程的一些数据,如特征集,训练好的样本等,对下一次分类同样有用。 任莹莹
3.改进后的分类系统
土田健次郎
霜叶红于二月花是什么植物
系统各模块的操作如下:
一、训练模块:训练模块在同一流程实现了预处理和训练两种功能,因为这两个模块的数据处理具有继承性,所以安排到同一模块实现。“选择词典”按键将所使用的停用词词典加载到哈希表中;“选择维数”文本框可以更改文本向量的维数(特征数);“训练文本库”按钮加载训练文本的文件夹,然后进行去停用词、分词、特征选择、特征权重计算、文本向量表示等一系列操作。
内存数据库
二、分类模块:“训练”按钮选择要进行分类的测试文本文件夹,读取测试文本,然后依次
进行:分词、去停用词、特征选择、权重计算、向量表示、距离计算、K 近邻选择、类别评定等操作。K 文本框输入为 K 近邻数,n1为 PKNN 算法选择的小样本数。
三、评价模块:评价模块实现分类结果的统计与评测,所采用的评价指标是:宏召回率、宏准确率、F1 值,“重置分类”键可以将内存中的全局变量清空,为下一次分类作准备,这样不需要再训练就能直接从xml文件中读取所需数据再次存放在全局变量中。
邮件过滤
随着互联网的广泛普及,已经成为人们日常生活中最便捷、最经济的通信手段。但是给用户带来便捷的同时,也带来了不可避免的副产品——垃圾邮件。由于实现比较简单以及受到利益的驱使,一些企业和个人采用了这种最经济的方式进行商业广告,一些黑客也采用发送进行违法行为:盗窃用户的机密资料,攻击用户的电脑
等。用户几乎每天都要收到几十、几百封垃圾邮件,每天都需要花费一定的精力与时间来判断是否为垃圾邮件,并进行清除。垃圾邮件不仅影响到了用户,对网络运营提供商和网络管理员也带来了无尽的烦恼。这些所谓的垃圾邮件会占用用户的带宽、时间和存储资源,如果泛滥严重甚至会对网络通信造成堵塞,使得正常邮件不能正常发送和接收,垃圾邮件严重阻碍了互联网的健康发展。因此对垃圾邮件过滤技术的研究具有很大的实用价值,也是亟待解决的问题。
    传统的 KNN 算法只考虑到相似度之和,或者简单的利用相似度个数的多少来进行判断;将 KNN 算法应用于垃圾邮件的过滤中,而没有考虑到垃圾邮件本身的偏依赖特性,即用户情愿多收到一封垃圾邮件,也不愿意让垃圾邮件过滤系统将自己的正常邮件误判为垃圾邮件过滤掉;传统的 KNN 分类算法进行分类时,每次都需要将待测样本和训练样本集中的每个样本进行比较,计算相似度,计算量十分的大,不适合实时性要求比较高的垃圾邮件过滤系统。
    本文针对上述 KNN 算法的不足之处进行改进,提出并设计一种考虑了偏依赖特性的基于平均相似度和相似度个数的 KNN 算法。该算法首先通过计算平均相似度而不是相似度
之和来表示类权重值,同时考虑到相似样本的个数对分类性能的影响;其次引入了两个表示垃圾邮件本身的偏依赖特性的参数;最后,为了解决 KNN 算法的计算量大的缺点,本文利用类中心向量法的思想,通过将将原始样本转化为一个个小类,并计算每个小类的中心向量,以代表原始训练样本建立分类模型,这就相当于将大样本转化为小样本,减少了比较次数,大大降低了KNN 分类算法的计算量。实验表明,与传统的 KNN 算法进行对比,本文提出的APC-KNN 算法应用于垃圾邮件的过滤,具有高正确率,低误报率等优点;并且能够更好的实现垃圾邮件的过滤,起到了保护用户以及节省宽带等效果。
改进的KNN算法过滤系统的构建
  将以上这种提升垃圾邮件过滤系统效率的方法应用于前面改进的KNN分类算法中,可以减少其计算量,提高分类速度。提升后的KNN算法过滤系统可以称为APC-KNN过滤系统。APC-KNN过滤系统具体流程如下:
Input:训练样本和待测
Output:待测的类别
Step1:对训练样本进行预处理,包括中文分词、选取特征,根据选取的特征项集合重新描述训练样本,对训练集合提取特征;将训练样本表示为向量形式。

本文发布于:2024-09-22 09:41:54,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/326075.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:分类   垃圾邮件   文本   用户   过滤   进行
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议