K最临近分类算法论文.docx

上传人:b****1 文档编号:1179898 上传时间:2022-10-18 格式:DOCX 页数:38 大小:37.90KB
下载 相关 举报
K最临近分类算法论文.docx_第1页
第1页 / 共38页
K最临近分类算法论文.docx_第2页
第2页 / 共38页
K最临近分类算法论文.docx_第3页
第3页 / 共38页
K最临近分类算法论文.docx_第4页
第4页 / 共38页
K最临近分类算法论文.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

K最临近分类算法论文.docx

《K最临近分类算法论文.docx》由会员分享,可在线阅读,更多相关《K最临近分类算法论文.docx(38页珍藏版)》请在冰豆网上搜索。

K最临近分类算法论文.docx

K最临近分类算法论文

 

K-最临近分类算法

K-NearestNeighbour

 

课程名称数据仓库与数据挖掘 

 

 

摘要

K-最临近分类算法(kNN)是著名的模式识别统计学方法,是最好的文本分类算法之一,在机器学习分类算法中占有相当大的地位,是最简单的机器学习算法之一。

随着当今社会,计算机的普遍使用,出现了连绵不断的文本文件,如何对这些毫无逻辑、毫无层次的文件进行分门别类的整理,做到井井有条,层次鲜明呢?

 

文本自动分类就是针对上述情况,采用机器,通过一定的约束条件和一些分类算法,自动的对这些文件进行遍历,从而实现分门别类。

这样用机器代替人来“阅读”文章,用机器代替人来“整理”文章,不仅减轻了工作人员的负担,而且大大节省了时间,工作人员可以去做更多有意义的事情。

KNN算法的核心思想是,通过计算每个训练样本到待分类数据的距离,取和待分类数据距离最近的K个训练样本,K个样本中哪个类别的训练样本占多数,则待分类数据就属于哪个类别。

本文旨在利用K-最临近分类算法进行数据挖掘。

关键词:

kNN算法;文本分类;分类算法;数据挖掘;

ABSTRACT

KNN algorithm, a famous statistical method of pattern recognition,which is one of the best algorithms for dealing with text categorization, is playing an important role in machine learning classification algorithm, and it is one of the simplest algorithms in machine learning. 

With today's society, the widespread use of computers, the continuous of the text file, how about these no logic, no level of sort, classify files on do in perfect order, hierarchy and bright?

Text automatic classification is according to the above situation, using the machine, through a certain constraint condition and some classification algorithm, automatic to traverse these files, so as to realize classify. So using machines instead of people to "read", to "finish", replacing workers with machines not only reduce the burden of the staff, and greatly saves time and staff do more meaningful things.

Thecore idea of KNN is to be classified, the distance ofdata calculated for each training sample, and the data from the nearest K training samples, which category K sample training samples inthe majority, are to be classified data belongs to which category.Thisarticleisforthepurposeof dataminingusingK-NearestNeighbour.

Keywords:

KNN algorithm,Text classification,Classification algorithms,datamining

1.研究背景及现状

国际权威的学术组织theIEEEInternationalConferenceonDataMining(ICDM)2006年12月评选出了数据挖掘领域的十大经典算法:

C4.5,k-Means,SVM,Apriori,,EM,PageRank,AdaBoost,kNN,NaiveBayes,,andCART。

国外对于文本分类的研究开展较早,20世纪50年代末,H.P.Luhn[3]对文本分类进行了开创性的研究将词频统计思想应用于文本分类,1960年,Maro发表了关于自动分类的第一篇论文,随后,K.Spark,GSalton,R.M.Needham,M.E.Lesk以及K.S.Jones等学者在这一领域进行了卓有成效的研究。

目前,文本分类已经广泛的应用于电子邮件分类、电子会议、数字图书馆]、搜索引擎、信息检索等方面[4]。

至今,国外文本分类技术在以下一些方面取得了不错的研究成果。

KNN算法是对NN(nearest neighbor)算法即近邻算法的改进,最初的近邻算法是由T.M. Cover,在其文章”Rates of Convergence for Nearest Neighbor Procedures,”中提出的,是以全部训练样本作为带标点,计算测试样本与所有样本的距离并以最近邻者的类别作为决策,后学者们对近邻算法进行了各方面的改进。

KNN算法最初由Cover和Hart于1968年提出[8],是一个理论上比较成熟的方法。

2.数据及来源

1)数据理解

选择第二包数据IrisDataSet,共有150组数据,考虑到训练数据集的随机性和多样性,选择rowNo模3不等于0的100组作为训练数据集,剩下的50组做测试数据集。

(1)每组数据有5个属性,分别是:

1.sepallengthincm

2.sepalwrowNothincm

3.petallengthincm

4.petalwrowNothincm

5.class:

--IrisSetosa

--IrisVersicolour

--IrisVirginica

(2)为了操作方便,对各组数据添加rowNo属性,且第一组rowNo=1。

2)数据清理

现实世界的数据一般是不完整的、有噪声的和不一致的。

数据清理例程试图填充缺失的值,光滑噪声并识别离群点,并纠正数据中的不一致。

(a)缺失值:

当数据中存在缺失值是,忽略该元组(注意:

本文选用的第二组数据IrisDataSet的MissingAttributeValues:

None)。

(b)噪声数据:

本文暂没考虑。

3)数据来源:

数据堂。

3.方法及基本原理

KNN(kNearestNeighbors)算法又叫k最临近方法,假设每一个类包含多个样本数据,而且每个数据都有一个唯一的类标记表示这些样本是属于哪一个分类,KNN就是计算每个样本数据到待分类数据的距离,如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。

KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。

因此,采用这种方法可以较好地避免样本的不平衡问题。

另外,由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。

该方法的不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。

目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。

该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。

(1)算法思路:

K-最临近分类方法存放所有的训练样本,在接受待分类的新样本之前不需构造模型,并且直到新的(未标记的)样本需要分类时才建立分类。

K-最临近分类基于类比学习,其训练样本由N维数值属性描述,每个样本代表N维空间的一个点。

这样,所有训练样本都存放在N维模式空间中。

给定一个未知样本,k-最临近分类法搜索模式空间,找出最接近未知样本的K个训练样本。

这K个训练样本是未知样本的K个“近邻”。

“临近性”又称为相异度(Dissimilarity),由欧几里德距离定义,其中两个点X(x1,x2,…xn)和Y(y1,y2,…yn)的欧几里德距离是:

未知样本被分配到K个最临近者中最公共的类。

在最简单的情况下,也就是当K=1时,未知样本被指定到模式空间中与之最临近的训练样本的类。

(2)算法步骤:

step.1---初始化距离为最大值

step.2---计算未知样本和每个训练样本的距离dist

step.3---得到目前K个最临近样本中的最大距离maxdist

step.4---如果dist小于maxdist,则将该训练样本作为K-最近邻样本

step.5---重复步骤2、3、4,直到未知样本和所有训练样本的距离都算完

step.6---统计K-最近邻样本中每个类标号出现的次数

step.7---选择出现频率最大的类标号作为未知样本的类标号

4.计算及结果

1)算法源代码

////////////////////////////////////////////////////////////////////////////////////////////////////////

//

//KNN.cppK-最近邻分类算法

//

////////////////////////////////////////////////////////////////////////////////////////////////////////

#include

#include

#include

#include

#include

#include

#include

////////////////////////////////////////////////////////////////////////////////////////////////////////

//

//宏定义

//

////////////////////////////////////////////////////////////////////////////////////////////////////////

#defineATTR_NUM4//属性数目

#defineMAX_SIZE_OF_TRAINING_SET1000//训练数据集的最大大小

#defineMAX_SIZE_OF_TEST_SET100//测试数据集的最大大小

#defineMAX_VALUE10000.0//属性最大值

#defineK7

//结构体

structdataVector{

intID;//ID号

charclassLabel[15];//分类标号

doubleattr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1