K最临近分类算法论文Word格式文档下载.docx
《K最临近分类算法论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《K最临近分类算法论文Word格式文档下载.docx(38页珍藏版)》请在冰豆网上搜索。
![K最临近分类算法论文Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/18/88cdccb7-e048-410e-9abb-55960c49894c/88cdccb7-e048-410e-9abb-55960c49894c1.gif)
method
of
pattern
recognition,which
is
one
the
best
algorithms
for
dealing
with
text
categorization,
playing
an
important
role
in
machine
learning
classification
and
it
simplest
learning.
With
today'
s
society,
widespread
use
computers,
continuous
file,
how
about
these
no
logic,
level
sort,
classify
files
on
do
perfect
order,
hierarchy
bright?
Text
automatic
according
to
above
situation,
using
machine,
through
certain
constraint
condition
some
traverse
files,
so
as
realize
classify.
So
machines
instead
people
"
read"
finish"
replacing
workers
not
only
reduce
burden
staff,
and
greatly
saves
time
staff
more
meaningful
things.
Thecore
idea
be
classified,
the
distance
ofdata
calculated
each
training
sample,
data
from
nearest
K
samples,
which
category
sample
samples
inthe
majority,
are
classified
belongs
which
category.Thisarticleisforthepurposeof
dataminingusingK-NearestNeighbour.
Keywords:
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
Convergence
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<
stdlib.h>
stdio.h>
memory.h>
string.h>
iostream.h>
math.h>
fstream.h>
//宏定义
#defineATTR_NUM4//属性数目
#defineMAX_SIZE_OF_TRAINING_SET1000//训练数据集的最大大小
#defineMAX_SIZE_OF_TEST_SET100//测试数据集的最大大小
#defineMAX_VALUE10000.0//属性最大值
#defineK7
//结构体
structdataVector{
intID;
//ID号
charclassLabel[15];
//分类标号
doubleattr