人工智能之机器学习——聚类分析

作者: e025d18cbaaa | 来源:发表于2018-10-02 08:08 被阅读27次

          20 世纪 40 年代,美国心理学家罗伯特·泰昂和雷蒙德·卡泰尔借鉴人类学中的研究方法,提出“聚类分析”的概念,通过从相关矩阵中提取互相关的成分进行性格因素的研究。随着时间的推移,聚类分析的应用范围越来越广泛,逐渐演化成一种主要的机器学习方法。

    人工智能之机器学习——聚类分析

          聚类分析是一种无监督学习方法,其目标是学习没有分类标记的训练样本,以揭示数据的内在性质和规律。具体来说,聚类分析要将数据集划分为若干个互不相交的子集,每个子集中的元素在某种度量之下都与本子集内的元素具有更高的相似度。

          用这种方法划分出的子集就是“聚类”(或称为“簇”),每个聚类都代表了一个潜在的类别。分类和聚类的区别也正在于此:分类是先确定类别再划分数据;聚类则是先划分数据再确定类别。

          聚类分析本身并不是具体的算法,而是要解决的一般任务,从名称就可以看出这项任务的两个核心问题:一是如何判定哪些样本属于同一“类”,二是怎么让同一类的样本“聚”在一起。

          解决哪些样本属于同一“类”的问题需要对相似性进行度量。无论采用何种划定标准,聚类分析的原则都是让类内样本之间的差别尽可能小,而类间样本之间的差别尽可能大。度量相似性最简单的方法就是引入距离测度,聚类分析正是通过计算样本之间的距离来判定它们是否属于同一个“类”。根据线性代数的知识,如果每个样本都具有 $N$ 个特征,那就可以将它们视为 $N$ 维空间中的点,进而计算不同点之间的距离。

          聚类分析的任务原本是将数据划分到不同的聚类中,可如果我们将样本看作观察值,将潜在类别看作隐藏变量,那么就可以逆向认为数据集是由不同的聚类产生的。在这个前提下,基于概率模型的聚类分析的任务是推导出最可能产生出已有数据集的 $k$ 个聚类,并度量这 $k$ 个聚类产生已有数据集的似然概率。

          目前,公开发表的聚类算法已经超过了 100 种,但无监督学习的特性决定了不可能存在通用的聚类算法。根据应用场景的差别,不同算法在组成聚类的概念以及有效找到聚类的方法上也会有所区别。针对某种模型设计的算法在其他模型的数据集上表现的一塌糊涂也不是什么新鲜事。

          接下来介绍几类最主要的聚类算法:

          层次聚类又被称为基于连接的聚类,其核心思想源于样本应当与附近而非远离的样本具有更强的相关性。由于聚类生成的依据是样本之间的距离,因而聚类的特性可以用聚类内部样本之间的距离尺度来刻画。聚类的划分是在不同的距离水平上完成的,划分过程就可以用树状图来描述,这也解释了 " 层次聚类 " 这个名称的来源。

            原型聚类又被称为基于质心的聚类,其核心思想是每个聚类都可以用一个质心表示。原型聚类将给定的数据集初始分裂为若干聚类,每个聚类都用一个中心向量来刻画,然后通过反复迭代来调整聚类中心和聚类成员,直到每个聚类不再变化为止。k 均值算法是典型的原型聚类算法,它将聚类问题转化为最优化问题。

          分布聚类又被称为基于概率模型的聚类,其核心思想是假定隐藏的类别是数据空间上的一个分布。在分布聚类中,每个聚类都是最可能属于同一分布的对象的集合。这种聚类方式类似于数理统计中获得样本的方式,也就是每个聚类都由在总体中随机抽取独立同分布的样本组成。其缺点则在于无法确定隐含的概率模型是否真的存在,因而常常导致过拟合的发生。

            密度聚类又被称为基于密度的聚类,其核心思想是样本分布的密度能够决定聚类结构。每个样本集中分布的区域都可以看作一个聚类,聚类之间由分散的噪声点区分。密度聚类算法根据样本密度考察样本间的可连接性,再基于可连接样本不断扩展聚类以获得最终结果。

    相关文章

      网友评论

        本文标题:人工智能之机器学习——聚类分析

        本文链接:https://www.haomeiwen.com/subject/rlpooftx.html