论文综述(KNN算法)

论文综述

论文题目:k-NearestNeighbors on Road Networks: A Journey in Experimentation and In-MemoryImplementation

一、KNN算法的相关领域

       KNearest Neighbor算法又叫KNN算法,这个算法是机器学习中的一个经典的距离分类器算法。

机器学习方法根据训练样本的不同可以分为有监督学习方法和无监督学习方法。有监督学习又被称为有教师学习,需要知道训练样本集合中的每个样本具体属于哪一个类别;无监督学习又被称为无教师学习,只知道训练样本集合中的每个训练样本,而不知道每个训练样本所属的类别,甚至在有些情况下所属类别的数量也是未知的。

二、相关领域的问题分类

       距离分类器是有监督学习方法中的主要方法,这些方法主要依据的是模式之间的距离(或相似程度)来构造分类器,这些方法有时也被称为“模板匹配”。距离分类器的特点是算法简单,分类器学习和识别的效率很高,目前仍是解决识别问题的主要方法之一,特别是某些类别数量比较多、识别速度要求比较快的应用场景。

       无监督学习的代表是聚类分析方法,这些方法仍然采用距离来度量模式之间的相似程度,然后根据无监督样本集合中样本的相似程度讲起划分为不同的子集,实现对无监督样本的聚类。

三、相关领域的解决方法的分类

3.1分类

      分类是机器学习中的一项非常重要的任务,利用分类技术可以从数据集中提取描述数据类的一个函数或模型(也常称为分类器),并把数据集中的每个对象归结到某个已知的对象类中。从机器学习的观点,分类技术是一种有指导的学习,即每个训练样本的数据对象已经有类标识,通过学习可以形成表达数据对象与类标识间对应的知识。从这个意义上说,机器学习的目标就是根据样本数据形成的类知识并对源数据进行分类,进而也可以预测未来数据的归类。分类具有广泛的应用,例如医疗诊断、信用卡的信用分级、图像模式识别。

分类挖掘所获的分类模型可以采用多种形式加以描述输出。其中主要的表示方法有:分类规则、决策树、数学公式和神经网络。另外,最近又兴起了一种新的方法—粗糙集,其知识表示采用产生式规则。

分类(classification )是这样的过程:它找出描述并区分数据类或概念的模型(或函数),以便能够使用模型预测类标记未知的对象类。分类分析在机器学习中是一项比较重要的任务, 目前在商业上应用最多。分类的目的是学会一个分类函数或分类模型(也常常称作分类器),该模型能把数据库中的数据项映射到给定类别中的某一个类中。

分类和回归都可用于预测,两者的目的都是从历史数据纪录中自动推导出对给定数据的推广描述,从而能对未来数据进行预测。与回归不同的是,分类的输出是离散的类别值,而回归的输出是连续数值。二者常表现为决策树的形式,根据数据值从树根开始搜索,沿着数据满足的分支往上走,走到树叶就能确定类别。

要构造分类器,需要有一个训练样本数据集作为输入。训练集由一组数据库记录或元组构成,每个元组是一个由有关字段值(又称属性或特征)组成的特征向量,此外,训练样本还有一个类别标记。分类器的构造方法有统计方法、机器学习方法、神经网络方法等等。

不同的分类器有不同的特点。有三种分类器评价或比较尺度:1)预测准确度;2)计算复杂度;3)模型描述的简洁度。预测准确度是用得最多的一种比较尺度,特别是对于预测型分类任务。计算复杂度依赖于具体的实现细节和硬件环境,在机器学习中,由于操作对象是巨量的数据,因此空间和时间的复杂度问题将是非常重要的一个环节。对于描述型的分类任务,模型描述越简洁越受欢迎。

另外要注意的是,分类的效果一般和数据的特点有关,有的数据噪声大,有的有空缺值,有的分布稀疏,有的字段或属性间相关性强,有的属性是离散的而有的是连续值或混合式的。目前普遍认为不存在某种方法能适合于各种特点的数据 。

3.2聚类

  与分类技术不同,在机器学习中,聚类是一种无指导学习。也就是说,聚类是在预先不知道欲划分类的情况下,根据信息相似度原则进行信息聚类的一种方法。聚类的目的是使得属于同类别的对象之间的差别尽可能的小,而不同类别上的对象的差别尽可能的大。因此,聚类的意义就在于将观察到的内容组织成类分层结构,把类似的事物组织在一起。通过聚类,人们能够识别密集的和稀疏的区域,因而发现全局的分布模式,以及数据属性之间的有趣的关系。

   数据聚类分析是一个正在蓬勃发展的领域。聚类技术主要是以统计方法、机器学习、神经网络等方法为基础。比较有代表性的聚类技术是基于几何距离的聚类方法,如欧氏距离、曼哈坦距离、明考斯基距离等。聚类分析广泛应用于商业、生物、地理、网络服务等多种领域。

聚类(clustering)是指根据“物以类聚”的原理,将本身没有类别的样本聚集成不同的组,这样的一组数据对象的集合叫做簇,并且对每一个这样的簇进行描述的过程。它的目的是使得属于同一个簇的样本之间应该彼此相似,而不同簇的样本应该足够不相似。与分类规则不同,进行聚类前并不知道将要划分成几个组和什么样的组,也不知道根据哪些空间区分规则来定义组。其目的旨在发现空间实体的属性间的函数关系,挖掘的知识用以属性名为变量的数学方程来表示。

当前,聚类技术正在蓬勃发展,涉及范围包括数据挖掘、统计学、机器学习、空间数据库技术、生物学以及市场营销等领域,聚类分析已经成为机器学习研究领域中一个非常活跃的研究课题。常见的聚类算法包括:K-均值聚类算法、K-中心点聚类算法、CLARANS、BIRCH、CLIQUE、DBSCAN等。

四、解决方法的简介

4.1最近邻算法(NN算法)

       每个类别已知的所有训练样本可以表示成一个集合Di,每个样本和类别之间的相似程度可以用x与Di中最近样本的距离来度量。有了样本与类别的相似度,就可以设计出简单的分类方法:通过计算带识别样本x与所有训练样本的距离,寻找与x距离最近的训练样本y,然后以y所属的类别分类x。这个过程被称为“最近邻分类”。

4.2 K近邻算法(KNN算法)

       K近邻算法是对最近邻算法的一个自然推广,样本类别的判断不再只依赖与其最近的1个样本,而是由距离最近的K个样本投票来决定。显然,最近邻算法是K=1的K近邻算法。算法实现也比较简单,通过求解与待识别样本x最近的K个物体所属的类别来对x进行分类。

4.3 顺序聚类

       顺序聚类的思想来自于1967年Hall发表在Nature上的一篇论文,算法只需顺序扫描样本集一次,聚类数不需要预先设定,新的聚类可以在算法执行过程中自动形成。

       顺序聚类算法每次输入一个样本,计算该样本与当前已经形成的各个聚类的距离,如果所有距离大于一个预先设定的阀值时,生成一个新的聚类,否则将其加入距离最近的聚类中;同时也定义最大聚类数M,当达到最大聚类数之后,不再增加新聚类。

4.4 最大最小距离聚类

       最大最小距离算法在每一次循环寻找当前所有聚类中心最远的样本(每个训练样本距离所有聚类中心最小距离中的最大距离),如果此样本与最近的聚类中心之间的距离大于一定的阀值,则增加此样本为一个新的聚类中心。与顺序聚类不同,最大最小距离算法的距离阀值是以前两个聚类中心之间的距离为基准,按照一定预先设定的比例系数来确定的。

4.5 谱系聚类合并

       谱系聚类算法可以分为两大类:合并法和分裂法。合并法初始的时候将每个样本单独作为一个聚类,每一轮迭代选择最相近的两个聚类进行合并,经过n轮之后将所有样本合并为一个类别;分裂法则相反,首先将所有样本作为一个聚类,每一轮迭代选择一个现有的聚类分裂为两个聚类,n轮分裂之后形成n个聚类,每个聚类只包含一个样本。考虑计算的复杂度,大多数谱系算法聚类采用的是合并法。

4.6 K均值聚类

       K均值算法的目标是将n个样本依据最小化类内距离的准则分到K个聚类中。K均值算法的思想是首先给出每类均值的猜想值,然后根据均值的猜想值确定每个样本的类别属性,得到对聚类结果的猜想;由于样本的分类结果依据的是猜想的均值,因此并不是一个准确的结果,但可以作为猜想值用于更新对均值的猜想。这样就得到了一个交替的迭代过程,迭代过程可以一直持续下去,直到均值或样本的分类结果不再变化为止,此时可以认为算法收敛到了一个优化聚类结果。

五、解决方法的比较

5.1 距离分类器算法的比较

       实践证明,当训练样本足够多时,最近邻近分类器对于很多识别问题可以取得良好的分类效果。然后最近邻算法计算量较大,占用的存储空间也较大,容易受噪声影响。

       K近邻算法中参数K的选择对识别结果有很大的影响,K值选择过小,算法的性能接近于最近邻分类;K值过大,距离较远的样本也会对分类结果产生影响,这样会引起分类误差,适合的K需要根据具体问题确定。

       K近邻算法的计算复杂度与最近邻算法类似,也需要计算与每个训练样本之间的距离,当样本数量比较大时,识别效率不高。比最近邻算法好的地方在于受噪声的影响较小。

5.2 聚类算法的比较

       顺序聚类算法的优点是算法简单,计算量小;缺点是聚类结果收到样本输入次序的影响,不同的样本顺序会得到不同的聚类结果。算法同样受到阀值的影响。

       顺序聚类算法中样本的分类和新的聚类产生的过程同时进行,每一轮迭代根据当前样本到现有聚类中心的距离决定是产生新的聚类还是将样本并入到已有的聚类;最大最小聚类算法是将聚类中心的产生和样本的分类在两个过程中完成。

       谱系聚类算法的有点事聚类结果与样本的先后次序无关,只有当两组聚类之间的距离相等且为最小距离时,由于随机选择一组进行合并,才会引起聚类结果的不确定性;同时,谱系聚类不仅能够得到最终的聚类结果,也可以产生出样本的谱系聚类过程,有助于考察样本集合的聚类结构。

       K均值算法最大的优势是实现简单,计算复杂度和存储复杂度低,而且两者都远低于谱系聚类算法。

点赞