使用第一邻居关系的高效无参数聚类
摘要
我们以单个聚类方程的形式提出了一种新的聚类方法,该聚类方法能够直接发现数据中的分组。与大多数现有的聚类算法相比,此方法不需要任何超参数,距离阈值和/或指定聚类数量的需要。所提出的算法属于分层聚合方法。该技术具有非常低的计算开销,易于扩展并适用于大的实际问题。
一 介绍
目前聚类方法存在的难点
1.)不可以自动确定具有高精度/纯度的真实(或接近真实)聚类;
2.)需要超参数或数据的先验知识;
3.)推广不同的数据域;
4.)扩展到非常大(数百万个样本)的数据,需要过高的计算资源。
众所周知的基于中心的方法(例如,Kmeans)基于它们到集群中心的距离迭代地将点分配给所选数量的集群;凝聚聚类方法基于预定义的距离阈值来合并点。近期的方法从点的成对距离构建相似性图(例如,谱聚类技术)并通过使用这些距离作为边缘权重并且将样本点用作节点来解决图划分问题。所有现有的聚类技术都使用某种形式的先验知识/假设来定义相似性目标以获得数据中的特定分组。该先验知识以预先设置簇数或设置距离阈值或其他超参数的形式出现,这些超参数呈现用户定义的相似性概念以获得分组。这些选择是主观的,在基础数据分布发生变化时发生变化。这意味着这些参数不稳定,需要针对每个数据集进行调整。这使得聚类问题非常困难,因为没有标准解决方案可用于不同的问题。
在本文中,我们描述了一种有效且完全无参数的无监督聚类算法,该算法不会遇到任何上述问题。 “完全”的意思是该算法不需要任何用户定义的参数,例如相似性阈值,或预定义数量的簇,并且它不需要任何关于数据分布本身的先验知识。我们提出的方法的主要前提是发现基于对每个数据点的第一个邻居的简单观察来链接大量样本的有趣行为。
二 相关工作
代表性的聚类算法分为三个方面,质心/分割算法(例如,K均值,亲和传播),分级凝聚/分裂方法和将聚类视为图分区问题(​​例如,谱聚类方法)的方法来进行分类。对于基于中心的聚类,已知的是,K均值对初始ķ质心的选择是敏感的。亲和传播算法通过将每个样本视为示例来解决该问题,然后使用有效的消息解析机制,直到出现一组好的样本及其相应的集群。通常通过选择目标函数然后开发近似优化该目标的算法来接近这种基于分区的方法。谱聚类(SC)和它的变体最近开始流行[43]。最谱聚类算法需要计算全部相似度图形拉普拉斯矩阵和具有二次的复杂性,因此限制了聚类到大型数据集的可扩展性。一些近似的算法已经被提出[48,27]是按比例的频谱的方法。一个重要的聚类方向已经通过学习稀疏子空间,其中数据点被更好分离,见(SSC),的是减少高维特征空间中距离感的模糊性。最近的许多方法的方法还通过使用低等级的约束来估计这样的子空间,参见Vidal等。 [42]并且很最近的工作由Brbic和Kopriva [4]。
**贾维斯和帕特里克[21]提出了共享最近邻居的重要性来定义点之间的相似性。这个想法的根源在于观察到两点与他们的第一个k邻居匹配的程度相似,如此获得的相似性比标准欧几里得度量点之间的距离的更好度量。**使用邻居来定义点之间的相似性已经用于基于分区的分层和谱聚类技术。
我们的论文与层次凝聚聚类(HAC)方法密切相关。层次聚类的流行源于它创建了一个聚类树,它提供了有意义的方法来解释不同粒度级别的数据。在凝聚方法中,每个输入样本点都以簇的形式开始。然后迭代地,根据通过良好研究的连接方案获得的一些相似性度量来合并成对的相似聚类。最常见的基础连接算法(单,平均的和完整链接通常基于Kruskals最小生成树算法[24]。连接方法基于其中样本的成对距离合并两个簇。链接方案可以通过目标函数更好地接近,该目标函数基于最小化聚类方差(例如,Ward)内的总数来链接聚类。这种方法通常会产生比单个或平均连接方案更好的合并。
达斯古普塔[12]最近提出的相似度图形分层聚类来直接获得最优树的目标函数优化。其启动了线的工作显影算法明确地优化这些目标[35,8,29,11]。
最近聚类也用于联合学习样本的非线性嵌入。这可以通过基于深度学习的方法来实现,例如,使用自动编码器通过使用现有的聚类方法来优化和学习特征[49,47,18,22]。这些基于深度学习的方法主要是使用现有聚类方法作为生成伪标签的手段[7]或作为训练神经网络的目标的特征表示学习方案。
所有现有的聚类方法都直接对样本的距离值进行操作,使得这些方法很难扩展到大数据。除此之外,目前所有的聚类方法需要某种形式的监督/专业知识,从要求到指定集群的数量设置相似阈值或其他算法特定超参数。
三 聚类方法
以前,聚类方法通过数据点之间的距离来获得数据分组。位于高维空间中的数据在这些距离方面具有较少信息量的接近度。旨在描述超空间的均匀体积的方法可能失败,因为源样本在目标流形内几乎不均匀分布。另一方面,语义关系可能不受此限制,因为它们依赖于间接关系而不是精确的距离。我们的提议直观地与用于发现数据中的分组的语义关系相关。**我们观察到每个点的第一个邻居是足以发现数据中链接链的统计量。**因此,可以实现将数据合并成簇,而无需在所有数据点之间保持全距离矩阵。此外,使用这种方法,不必设置阈值或其他超参数。我们在所提出的聚类方程中捕获该观察结果,然后详细描述完整算法。
3.1 聚类方程
给定每个数据点的第一个邻居的整数索引,我们直接定义邻接链接矩阵

聚类方程1返回的结果。
3.2 提出的分层聚类
发现的集群是否是数据中真正的分组呢,这是不确定的。因为观察者认为群集的概念是观察者的主观意见。 Balcan等人充分研究了寻找真实聚类的问题。 文献[2]表明应该首选具有分区列表或层次结构而不是单个平面分区。在这样的一组分组中,它们表明已知单链或平均连锁算法可以在相似函数的某些属性下可恢复地面实况聚类。
公式1将完成了分区。以凝聚方式递归地跟踪它可以提供该分区的进一步连续分组,以在不同粒度级别捕获底层数据结构。因为等式1可以快速地链接大量样本,我们表明在仅少数递归后,就获得了一组有意义的小分区,其具有非常高的恢复精确地面真实聚类的可能性或者非常接近它的分区。
The FINCH Algorithm
该算法的主要流程很简单。在计算第一个分区之后,我们希望递归地合并这些集群。为此,等式1需要这些簇中的每一个的第一个邻居。找到这些邻居需要计算集群之间的距离。例如,平均连锁使用两个聚类中所有点之间的成对距离的平均值。然而,此计算非常昂贵且复杂度为O(N 2log(N)),不易扩展到数百万个样本,并且需要将全距离矩阵保持在存储器中。而我们的方法不需要计算完整的成对距离矩阵,因为我们可以通过快速近似最近邻方法(例如k-d树)获得第一邻居。相反,我们对每个聚类中的数据样本求平均值,并使用这些均值向量来计算第一个邻居。
对于某些应用程序,通常需要获取特定数量的数据集群。由于我们的算法返回层次结构树,由于我们的算法返回层次树,我们可以使用简单的机制一次一个合并来细化分区,以提供所需的集群。但是,所需的簇数明显受限于FINCH返回第一个分区的大小。
为了更清晰,图2中,我们使用经典的2D Gestalt 和Aggregation 数据证明了FINCH算法的质量,运行FINCH Algo 1后,我们获得了一组聚类分区。在这里,为了评估真实聚类上的FINCH,我们可以采用比真实聚类更大的分区,并使用Algo 2进行优化。例如,在具有399个2D点的格式塔数据上,Algo 1提供了总共4个分区,其中包含91,23 ,5和2集群。我们在23个集群分区上使用Algo 2来评估基础事实的6个集群。
四 实验

数据集

评估指标
我们使用标准化规范化互信息(NMI)和无监督聚类准确度(ACC)作为评估聚类质量的度量。
ACC公式:
其中Li是标签,Ci是通过该方法获得的集群分配,m在集群和标签之间的所有可能的一对一映射范围内。
在小规模数据集上的比较
我们将FINCH与需要集群数量作为输入的算法进行比较:Kmeans,BR,SC,HAC,SSC和MVLRSSC。与给定一些超参数(AP,JP,RO和RCC)的算法进行比较,我们无法直接比较FINCH,因为它提供了层次结构。在这里,我们遵循以前的方法[32,36,37],这些方法倾向于仅在NMI测量的基础上进行比较,而不是基于估计的聚类数量。在表2中,我们观察到,FINCH不仅找到了有意义的数据分区,它还在大多数数据集上始终如一地实现了高性能。
大规模数据集的比较
由于FINCH只需要第一个邻居索引,对于大规模数据集,我们使用随机kd树算法获得第一个最近邻居,从而避免了昂贵的O(N 2)距离矩阵计算成本和二次存储器。
4.2 深度聚类:无监督学习

最近许多方法使用给定的聚类算法来学习特征表示,或者使用弱标签/伪标签的手段,用于训练深度模型(通常是自动编码器)。FINCH自然适用于此任务,因为它是数据自动分组的分区层次结构,并且无需指定用户定义的数量的集群。为了证明这一点并且能够与深度聚类方法进行比较,我们遵循[7]中最近使用的类似方法,使用聚类标签来训练小型网络以学习无监督的特征嵌入。
在分类模式中,我们训练一个带有两个隐藏层的MLP。如表6所示,FINCH有效地训练了一个无监督嵌入,在这个学习空间中更好地聚类。在我们的FINCH驱动深度聚类之后,我们能够将STL-10上的聚类性能提高到现有最先进的深度聚类方法的约95%,提高了近10%。

表6
4.3 计算优势
在表5中,我们报告了所有数据集的每种算法的运行时间。相应的时间是算法执行的完整时间,包括计算样本之间的成对距离,或使用kd-tree获得最近邻居,以及每个算法的运行时间。我们可以观察到,FINCH实现了显
着的时间效率,并且不受样本数量和/或特征尺寸的支配。
五 讨论
我们对77到4096维特征空间中表示的许多不同数据(图像像素,生物测量,文本频率和CNN特征)进行了广泛的评估。有趣的是,即使数据在特征空间中具有良好分离的情况下,现有的许多流行聚类方法也不能很好地执行。我们的算法以指数速率收敛,在每个步骤提供有效的数据分区。
例如,对于具有1077个样本的最小数据集,FINCH在运行的6个步骤中提供总共6个分区。从1077个样本中,**它在方程式1的第一轮中下降到351个簇,然后在连续递归中下降到106个,24个,8个,4个和3个簇,**在算法的步骤4中发现8个簇的地面真实聚类。与需要N-1步收敛N个样本的HAC连接方案形成鲜明对比,FINCH收敛(步数)不依赖于N并且由方程1控制。注意,由于等式1的定义,FINCH不能发现单体(具有1个样本的簇)。这是因为我们将每个样本链接到其第一个邻居而不考虑它们之间的距离。因此,始终与最近的样本点配对。所以FINCH有大小为2的最小簇的限制。
结论
我们提出了一种算法,该算法从需要成对距离矩阵并需要用户定义的超参数的聚类方法转变到以聚类方程和有效的凝聚合并程序的形式(不需要参数),提供了一种独特而简单的解决方案。它带来的优势在于完全无参数且可以以最小的计算费用轻松扩展到大数据

Efficient Parameter-free Clustering Using First Neighbor Relations相关推荐

  1. Data efficient parameter efficient tuning 助教 姜成翰

    2022 - 如何有效的使用自督导式模型 - Data-Efficient & Parameter-Efficient Tuning_哔哩哔哩_bilibili Recent advances ...

  2. 【CVPR2019】论文完整列表一

    CVPR 2019 Paper list No.1-1000 ?CVPR2019 完整列表二 论文题目与链接 Finding Task-Relevant Features for Few-Shot L ...

  3. CVPR2019论文题目中文列表

    英文题目 中文题目   Finding Task-Relevant Features for Few-Shot Learning by Category Traversal 少镜头学习中用类别遍历法寻 ...

  4. 聚类算法 距离矩阵_快速且不需要超参的无监督聚类方法

    论文: Efficient Parameter-free Clustering Using First Neighbor Relations Efficient Parameter-free Clust ...

  5. (九:2020.08.27)CVPR 2019 追踪之论文纲要(译)

    CVPR 2019 追踪之论文纲要(修正于2020.08.28) 讲在前面 论文目录 讲在前面 论坛很多博客都对论文做了总结和分类,但就医学领域而言,对这些论文的筛选信息显然需要更加精细的把控,所以自 ...

  6. 【CVPR2019_论文汇总】(按方向划分,0401 更新中)

    转载链接:http://bbs.cvmart.net/topics/302/cvpr2019paper 作为计算机视觉领域三大顶会之一,CVPR2019(2019.6.16-6.19在美国洛杉矶举办) ...

  7. CVPR 2019 论文汇总(按方向划分,0409 更新中)[转载]

    转载链接:http://bbs.cvmart.net/topics/302/cvpr2019paper 作为计算机视觉领域三大顶会之一,CVPR2019(2019.6.16-6.19在美国洛杉矶举办) ...

  8. [转]Data mining with WEKA, Part 3: Nearest Neighbor and server-side library

    原文地址: http://www.ibm.com/developerworks/opensource/library/os-weka3/index.html by :  Michael Abernet ...

  9. 论文笔记 -- Learning Representations for Time Series Clustering

    文章目录 Learning Representations for Time Series Clustering Motivation Contribution Model DTCR工作 DTCR流程 ...

最新文章

  1. 华为H3C ER3100由器限速方法合集
  2. boost::container模块实现范围分配器用法
  3. OutOfMemoryError dump memory
  4. 某8位微型计算机地址总线为16位,微机原理试题和答案
  5. linux中ssh连接慢的一种解决方法
  6. Java 创建线程的三种方式
  7. 阿里云智能数据构建与管理 Dataphin公测,助力企业数据中台建设
  8. 线段树和zkw线段树
  9. Python 分析Nginx 日志并存入MySQL数据库(单线程)
  10. Xshel和Xftp免费版
  11. 完美解决 WinRAR V5.XX的广告弹窗
  12. c语言编程实现合取析取,C++实现离散数学求主合取范式和主析取范式
  13. android 设置屏幕亮度,android 怎样设置屏幕亮度
  14. OpenSocial版的51虚拟支付--ROCKYOU
  15. matlab抢占时隙算法,基于汉明重分组的动态帧时隙ALOHA防碰撞算法
  16. 【C/C++】关于计算机内存地址的理解
  17. C++ 虚函数表 vfptr
  18. 选择排序(升序排列)
  19. 微信朋友圈技术实现设想
  20. 心法利器[62] | 向量召回和字面召回的选择与权衡

热门文章

  1. 文本分类(TFIDF/朴素贝叶斯分类器/TextRNN/TextCNN/TextRCNN/FastText/HAN)
  2. 软件开发流行的原则:don't repeat yourself
  3. 解决usr/bin/ld: cannot find -lxxx问题
  4. html5微信录音文件,微信H5录音实现
  5. 伪相关、伪关系与中介变量——统计名词中的迷思
  6. 新商业模式:在区块链上寻找新机会
  7. JAVA大数据需要学什么
  8. 人群密度估计--Recurrent Attentive Zooming for Joint Crowd Counting and Precise Localization
  9. 攻防世界——杂项(1-5)
  10. Gensim加载GloVe提供的词向量的诸多Bug之终极解决