密度聚类算法
① 为什么同一算法在不同论文中有不同的准确率例如密度峰值聚类算法,在同一数据集,同一参数下给出的准确率
摘要 二、算法的主要思想思想
② 分类和聚类的区别及各自的常见算法
1、分类和聚类的区别:
Classification (分类),对于一个classifier,通常需要你告诉它“这个东西被分为某某类”这样一些例子,理想情况下,一个 classifier 会从它得到的训练集中进行“学习”,从而具备对未知数据进行分类的能力,这种提供训练数据的过程通常叫做supervised learning (监督学习),
Clustering (聚类),简单地说就是把相似的东西分到一组,聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了,因此 clustering 通常并不需要使用训练数据进行学习,这在Machine Learning中被称作unsupervised learning (无监督学习).
2、常见的分类与聚类算法
所谓分类,简单来说,就是根据文本的特征或属性,划分到已有的类别中。如在自然语言处理NLP中,我们经常提到的文本分类便就是一个分类问题,一般的模式分类方法都可用于文本分类研究。常用的分类算法包括:决策树分类法,朴素贝叶斯分类算法(native Bayesian classifier)、基于支持向量机(SVM)的分类器,神经网络法,k-最近邻法(k-nearestneighbor,kNN),模糊分类法等等。
分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应。但是很多时候上述条件得不到满足,尤其是在处理海量数据的时候,如果通过预处理使得数据满足分类算法的要求,则代价非常大,这时候可以考虑使用聚类算法。
而K均值(K-mensclustering)聚类则是最典型的聚类算法(当然,除此之外,还有很多诸如属于划分法K中心点(K-MEDOIDS)算法、CLARANS算法;属于层次法的BIRCH算法、CURE算法、CHAMELEON算法等;基于密度的方法:DBSCAN算法、OPTICS算法、DENCLUE算法等;基于网格的方法:STING算法、CLIQUE算法、WAVE-CLUSTER算法;基于模型的方法)。
③ 什么是聚类分析与数据挖掘
聚类分析是数据挖掘中的一种,聚类就是把具有相似特性的个体聚在一起,形成一个类。类内的个体属性最接近,类间的属性最不相似。常用的聚类算法有C—mean。
④ 聚类算法有哪些
聚类算法有:划分法、层次法、密度算法、图论聚类法、网格算法、模型算法。
1、划分法
划分法(partitioning methods),给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K<N。使用这个基本思想的算法有:K-MEANS算法、K-MEDOIDS算法、CLARANS算法。
2、层次法
层次法(hierarchical methods),这种方法对给定的数据集进行层次似的分解,直到某种条件满足为止。具体又可分为“自底向上”和“自顶向下”两种方案。代表算法有:BIRCH算法、CURE算法、CHAMELEON算法等。
3、密度算法
基于密度的方法(density-based methods),基于密度的方法与其它方法的一个根本区别是:它不是基于各种各样的距离的,而是基于密度的。这样就能克服基于距离的算法只能发现“类圆形”的聚类的缺点。代表算法有:DBSCAN算法、OPTICS算法、DENCLUE算法等。
4、图论聚类法
图论聚类方法解决的第一步是建立与问题相适应的图,图的节点对应于被分析数据的最小单元,图的边(或弧)对应于最小处理单元数据之间的相似性度量。因此,每一个最小处理单元数据之间都会有一个度量表达,这就确保了数据的局部特性比较易于处理。图论聚类法是以样本数据的局域连接特征作为聚类的主要信息源,因而其主要优点是易于处理局部数据的特性。
5、网格算法
基于网格的方法(grid-based methods),这种方法首先将数据空间划分成为有限个单元(cell)的网格结构,所有的处理都是以单个的单元为对象的。代表算法有:STING算法、CLIQUE算法、WAVE-CLUSTER算法。
6、模型算法
基于模型的方法(model-based methods),基于模型的方法给每一个聚类假定一个模型,然后去寻找能够很好的满足这个模型的数据集。通常有两种尝试方向:统计的方案和神经网络的方案。
(4)密度聚类算法扩展阅读:
聚类分析起源于分类学,在古老的分类学中,人们主要依靠经验和专业知识来实现分类,很少利用数学工具进行定量的分类。随着人类科学技术的发展,对分类的要求越来越高,以致有时仅凭经验和专业知识难以确切地进行分类,于是人们逐渐地把数学工具引用到了分类学中,形成了数值分类学,之后又将多元分析的技术引入到数值分类学形成了聚类分析。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。
在商业上,聚类可以帮助市场分析人员从消费者数据库中区分出不同的消费群体来,并且概括出每一类消费者的消费模式或者说习惯。它作为数据挖掘中的一个模块,可以作为一个单独的工具以发现数据库中分布的一些深层的信息,并且概括出每一类的特点,或者把注意力放在某一个特定的类上以作进一步的分析;并且,聚类分析也可以作为数据挖掘算法中其他分析算法的一个预处理步骤。
⑤ 在什么情况下基于密度的聚类方法比基于划分的聚类方法和层次聚类方法更合适
k 均值聚类法 快速高效,特别是大量数据时,准确性高一些,但是需要你自己指定聚类的类别数量
系统聚类法则是系统自己根据数据之间的距离来自动列出类别,所以通过系统聚类法 得出一个树状图,至于聚类的类别 需要自己根据树状图以及经验来确定
⑥ 什么样的算法属于基于密度的聚类算法
将数据分到每一类中是按照他周围密度的联系才叫基于密度的聚类算法
⑦ 用于数据挖掘的聚类算法有哪些,各有何优势
聚类方法的分类,主要分为层次化聚类算法,划分式聚类算法,基于密度的聚类算法,基于网格的聚类算法,基于模型的聚类算法等。
而衡量聚类算法优劣的标准主要是这几个方面:处理大的数据集的能力;处理任意形状,包括有间隙的嵌套的数据的能力;算法处理的结果与数据输入的顺序是否相关,也就是说算法是否独立于数据输入顺序;处理数据噪声的能力;是否需要预先知道聚类个数,是否需要用户给出领域知识;算法处理有很多属性数据的能力,也就是对数据维数是否敏感。
.聚类算法主要有两种算法,一种是自下而上法(bottom-up),一种是自上而下法(top-down)。这两种路径本质上各有优势,主要看实际应用的时候要根据数据适用于哪一种,Hierarchical methods中比较新的算法有BIRCH主要是在数据体量很大的时候使用;ROCK优势在于异常数据抗干扰性强……
关于数据挖掘的相关学习,推荐CDA数据师的相关课程,课程以项目调动学员数据挖掘实用能力的场景式教学为主,在讲师设计的业务场景下由讲师不断提出业务问题,再由学员循序渐进思考并操作解决问题的过程中,帮助学员掌握真正过硬的解决业务问题的数据挖掘能力。这种教学方式能够引发学员的独立思考及主观能动性,学员掌握的技能知识可以快速转化为自身能够灵活应用的技能,在面对不同场景时能够自由发挥。点击预约免费试听课。
⑧ 什么是聚类分析
类通过把目标数据放入少数相对同源的组或“类”(cluster)里。分析表达数据,(1)通过一系列的检测将待测的一组基因的变异标准化,然后成对比较线性协方差。(2)通过把用最紧密关联的谱来放基因进行样本聚类,例如用简单的层级聚类(hierarchical clustering)方法。这种聚类亦可扩展到每个实验样本,利用一组基因总的线性相关进行聚类。(3)多维等级分析(multidimensional scaling analysis,MDS)是一种在二维Euclidean “距离”中显示实验样本相关的大约程度。(4)K-means方法聚类,通过重复再分配类成员来使“类”内分散度最小化的方法。
聚类方法有两个显着的局限:首先,要聚类结果要明确就需分离度很好(well-separated)的数据。几乎所有现存的算法都是从互相区别的不重叠的类数据中产生同样的聚类。但是,如果类是扩散且互相渗透,那么每种算法的的结果将有点不同。结果,每种算法界定的边界不清,每种聚类算法得到各自的最适结果,每个数据部分将产生单一的信息。为解释因不同算法使同样数据产生不同结果,必须注意判断不同的方式。对遗传学家来说,正确解释来自任一算法的聚类内容的实际结果是困难的(特别是边界)。最终,将需要经验可信度通过序列比较来指导聚类解释。
第二个局限由线性相关产生。上述的所有聚类方法分析的仅是简单的一对一的关系。因为只是成对的线性比较,大大减少发现表达类型关系的计算量,但忽视了生物系统多因素和非线性的特点。
从统计学的观点看,聚类分析是通过数据建模简化数据的一种方法。传统的统计聚类分析方法包括系统聚类法、分解法、加入法、动态聚类法、有序样品聚类、有重叠聚类和模糊聚类等。采用k-均值、k-中心点等算法的聚类分析工具已被加入到许多着名的统计分析软件包中,如SPSS、SAS等。
从机器学习的角度讲,簇相当于隐藏模式。聚类是搜索簇的无监督学习过程。与分类不同,无监督学习不依赖预先定义的类或带类标记的训练实例,需要由聚类学习算法自动确定标记,而分类学习的实例或数据对象有类别标记。聚类是观察式学习,而不是示例式的学习。
从实际应用的角度看,聚类分析是数据挖掘的主要任务之一。就数据挖掘功能而言,聚类能够作为一个独立的工具获得数据的分布状况,观察每一簇数据的特征,集中对特定的聚簇集合作进一步地分析。
聚类分析还可以作为其他数据挖掘任务(如分类、关联规则)的预处理步骤。
数据挖掘领域主要研究面向大型数据库、数据仓库的高效实用的聚类分析算法。
聚类分析是数据挖掘中的一个很活跃的研究领域,并提出了许多聚类算法。
这些算法可以被分为划分方法、层次方法、基于密度方法、基于网格方法和
基于模型方法。
1 划分方法(PAM:PArtitioning method) 首先创建k个划分,k为要创建的划分个数;然后利用一个循环
定位技术通过将对象从一个划分移到另一个划分来帮助改善划分质量。典型的划分方法包括:
k-means,k-medoids,CLARA(Clustering LARge Application),
CLARANS(Clustering Large Application based upon RANdomized Search).
FCM
2 层次方法(hierarchical method) 创建一个层次以分解给定的数据集。该方法可以分为自上
而下(分解)和自下而上(合并)两种操作方式。为弥补分解与合并的不足,层次合
并经常要与其它聚类方法相结合,如循环定位。典型的这类方法包括:
第一个是;BIRCH(Balanced Iterative Recing and Clustering using Hierarchies) 方法,它首先利用树的结构对对象集进行划分;然后再利
用其它聚类方法对这些聚类进行优化。
第二个是CURE(Clustering Using REprisentatives) 方法,它利用固定数目代表对象来表示相应聚类;然后对各聚类按照指定
量(向聚类中心)进行收缩。
第三个是ROCK方法,它利用聚类间的连接进行聚类合并。
最后一个CHEMALOEN,它则是在层次聚类时构造动态模型。
3 基于密度方法,根据密度完成对象的聚类。它根据对象周围的密度(如
DBSCAN)不断增长聚类。典型的基于密度方法包括:
DBSCAN(Densit-based Spatial Clustering of Application with Noise):该算法通过不断生长足够高密
度区域来进行聚类;它能从含有噪声的空间数据库中发现任意形状的聚类。此方法将一个聚类定义
为一组“密度连接”的点集。
OPTICS(Ordering Points To Identify the Clustering Structure):并不明确产生一
个聚类,而是为自动交互的聚类分析计算出一个增强聚类顺序。。
4 基于网格方法,首先将对象空间划分为有限个单元以构成网格结构;然后利
用网格结构完成聚类。
STING(STatistical INformation Grid) 就是一个利用网格单元保存的统计信息进行基
于网格聚类的方法。
CLIQUE(Clustering In QUEst)和Wave-Cluster 则是一个将基于网格与基于密度相结合的方
法。
5 基于模型方法,它假设每个聚类的模型并发现适合相应模型的数据。典型的
基于模型方法包括:
统计方法COBWEB:是一个常用的且简单的增量式概念聚类方法。它的输入对象是采
用符号量(属性-值)对来加以描述的。采用分类树的形式来创建
一个层次聚类。
CLASSIT是COBWEB的另一个版本.。它可以对连续取值属性进行增量式聚
类。它为每个结点中的每个属性保存相应的连续正态分布(均值与方差);并利
用一个改进的分类能力描述方法,即不象COBWEB那样计算离散属性(取值)
和而是对连续属性求积分。但是CLASSIT方法也存在与COBWEB类似的问题。
因此它们都不适合对大数据库进行聚类处理.
⑨ 什么叫层次聚类分析
一个层次的聚类方法将数据对象组成一棵聚类的树。根据层次分解是自底向上的还是自顶向下形成的,层次的聚类方法可以进一步分为凝聚的(agglomerative)和分裂的(divisive)层次聚类。
(1)凝聚的层次聚类:这种自底向上的策略首先将每个对象作为单独的一个簇,然后和并这些原子簇为越来越大的簇,直到所有的对像都在一个簇中,或者达到某个终止条件。
(2)分裂的层次聚类:这种自顶向下的策略与凝聚的层次聚类相反,它首先将所有的对象置于一个簇中。然后逐渐细分为越来越小的簇,直到每个对象在单独的一个簇中,或者达到一个终止条件,例如打到了某个希望的簇数目后者两个簇之间的距离超过了某个阀值。
例2 图2-3描述了一个凝聚的层次聚类方法AGNES(Agglomerative NESting)和一个分裂的层次聚类方法DIANA(Divisive Analysis)在一个包含五个对象的数据集合{a,b,c,d,e}上的处理过程。最初,AGNES将每个对象作为一个簇,然后这些簇根据某些准则一步步合并。例如,如果簇C1中的一个对象和簇 C2中的一个对象之间的距离使所有属于不同簇的对象间欧式距离最小的,C1和C2可能被合并。其每个簇可以被簇中所有对象代表,两个簇间的相似度由两个不同簇中距离最近的数据点对的相似度来确定。聚类的合并过程反复进行直到所有对象最终合并为一个簇。
图2-3 在对象集合(a,b,c,d)上的凝聚与分裂层次聚类
在DIANA方法处理过程中,所有的对象都放在一个簇中。根据一些原则(如簇中最邻近的对象的最大欧氏距离),将该簇分裂。簇的分裂过程反复进行,直到最终每个新的簇只包含一个对象。
层次聚类方法尽管简单,但经常会遇到合并或分裂点选择的困难。这样的选择是非常关键的,因为一旦一组对象(合并或分裂)完成,它就不能被撤销,下一步的处理将在新完成的簇上进行。这个严格规定是有用的,由于不用担心组合数目的不同选择,计算代价会比较小。但是,已做的处理不能被撤消,聚类之间也不能交换对象。如果在某一步没有很好的选择合并或分裂的决定,可能会导致低质量的聚类结果。而且,这种聚类不具有很好的可伸缩性。因为合并或分裂的决定需要检查和估算大量的对象或结果。
改进层次方法的聚类质量的一个有希望的方向是将层次聚类和其他聚类技术集成。有两种方法可以改进层次聚类的结果:
(i) 在每层划分中,仔细分析对象间的“联接”,例如CURE和Chameleon中的做法。
(ii)综合层次凝聚和迭代的重定位方法。首先用自底向上的层次算法,然后用迭代的重定位来改进结果。例如BIRCH中的方法。