K-最邻近算法在文本分类中的应用目录:一、引言二、算法简介三、KNN的实现过程四、总结分析摘要:随着现在Internet以惊人的速度发展起来,人们已经进入信息大爆炸的时代,网络上的各种信息让我们眼花缭乱,如何在这海量的信息中给各种信息进行分类,从中提取出对我们有用的信息点,已日愈成为众多企业家、IT认识关注的焦点,在众多算法中,可以对信息进行的分类的有很多,包括k-NearestNeighbor(kNN)、支持向量机(SupportVectorMachines,SVM)、简单贝叶斯(NaïveBayes,NB)、LinearLeastSquaresFits(LLSF)、NeuralNetwork(NNet),而以下则是本人对k-NearestNeighbor(kNN)算法在文本分类中的见解。关键字:K-最邻近算法文本分类网页分类经过的简短的16节的数据挖掘课程后,对数据挖掘这一专业方向,从一无所知到,到有所了解,课上简单的了解几个数据挖掘的算法,其中一个印象比较深刻的就K-最邻近算法,但却不知道可以具体运用到什么地方去。后来,经过课后上网学习研究得知,K-最邻近算法可以运用到分类问题中去,例如:对短信分类、过滤垃圾短信、网络页面分类等。在网上经过了一番简单的研究,更具体的了解了KNN算法,并得知了在文本分类中的简单运用.一、引言信息时代的发展,离不开Internet的飞速发展,这是一个信息爆炸的时代,人类每天产生的信息量都在急剧增长,而信息量的海量增加离不开网页,为了有效地组织和处理这海量的Web信息,需要对网页进行有效的分类.从文档分类得角度来看,文档分类可以分为人工分类和自动分类.人工分类是根据人的判断来进行分类,其特点是更准确,但是随之来的是确实需要投入大量的人力,这无疑给网络作业带来的高昂的代价,而且人工分类的效率很低,根本赶不上信息增长的速度.面对着每日剧增的信息量,人工分类显得那么的低效和昂贵,因此我们需要对网页实现自动分类,这一技术的实现则可以用到K-最邻近算法(KNN)。文档自动分类(AutomaticTextClassification,ATC)是网页自动分类的理论基础。所谓文档自动分类就是指定文档和预先定义类之间的类属关系。目前,已经出现了多种文档自动分类算法。其中包括k-NearestNeighbor(kNN)、支持向量机(SupportVectorMachines,SVM)、简单贝叶斯(NaïveBayes,NB)、LinearLeastSquaresFits(LLSF)、NeuralNetwork(NNet)等分类算法对英文普通文本的分类效果。二、算法简介K-最临近算法简介K-NearestNeighboralgorithm右图中,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。K最近邻(k-NearestNeighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成正比。该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。无论怎样,数量并不能影响运行结果。可以采用权值的方法(和该样本距离小的邻居权值大)来改进。该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。三、KNN的实现过程KNN算法的基本思路在给定新文本后,考虑在训练文本集中与该新文本距离最近(最相似)的K篇文本,根据这K篇文本所属的类别判定新文本所属的类别,具体的算法步骤如下:STEP1:根据特征项集合重新描述训练文本向量。STEP2:在新文本到达后,根据特征词分词新文本,确定新文本的向量表示。STEP3:在训练文本集中选出与新文本最相似的K个文本。STEP4:在新文本的K个邻居中,依次计算每类的权重,计算公式如下:其中,为新文本的特征向量,为相似度计算公式,与上一步骤的计算公式相同,而为类别属性函数,即如果属于类,那么函数值为1,否则为0。STEP5:比较类的权重,将文本分到权重最大的那个类别中。KNN的实现文本分类过程1.文档模型建立--文档结构化1).预处理过程2).概念映射和概念分歧3).一般特征项提取和姓名日期数字等特征抽取,结果存入文档矢量库.4).特征集缩减2.知识发现1).文本摘要2).文本分类3).模型评价同普通英文文本相比,中文网页具有自身的特性:(1)中文网页使用中文编辑。不像英语单词之间存在自然的间隔,中文需要分词处理。而且分词的效果能够显著地影响分类效果;(2)网页使用超文本设计。它包含大量的HTML标签和超链接。可以利用这些信息来改进分类的质量;(3)网页通常包含大量的“噪音”。同普通文本相比,网页的设计比较随意,通常包含各类广告,设计人员的注释以及版权申明等无用信息。四、总结分析文本分类中KNN算法,该方法的思路非常简单直观:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。因此,采用这种方法可以较好地避免样本的不平衡问题。另外,由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。该方法的不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。目前业内常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。另外还有一种ReverseKNN法,能降低KNN算法的计算复杂度,提高分类的效率。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。k近邻分类器具有良好的文本分类效果。参考文献:1.临近算法[百度百科]2.数据挖掘之文本分类2(KNN算法的描述及使用)[kangqiju的博客]3.数据挖掘算法与应用--作者:梁循出版社:北京大学出版社