有没有基于非距离的聚类算法?

机器算法验证 机器学习 聚类 数据挖掘 k-均值
2022-02-06 13:33:50

似乎对于 K-means 和其他相关算法,聚类是基于计算点之间的距离。有没有它可以工作的?

4个回答

这种方法的一个例子是用于聚类的有限混合模型(例如这里这里)。在 FMM中,您将变量 )视为个分布 ( ) 的混合:fXKf1,...,fk

f(x,ϑ)=k=1Kπkfk(x,ϑk)

其中是参数向量个分布的比例,是参数 (或参数)的分布。ϑϑ=(π,ϑ1,...,ϑk)πkkϑkfk

离散数据的一个具体案例是潜在类分析(例如Vermunt 和 Magidson,2003 年),定义为:

P(x,k)=P(k)P(x|k)

其中是观察潜在类的概率(即),是观察到类的概率P(k)kπkP(x)xP(x|k)xk

通常对于 FMM 和 LCA都使用EM 算法进行估计,但也可以使用贝叶斯方法,但由于模型识别和标签切换等问题,要求更高一些(例如Xi'an's blog)。

因此,没有距离度量,而是定义数据结构(分布)的统计模型。因为这种方法的另一个名称是“基于模型的聚类”。

查看关于 FMM 的两本书:

使用 FMM 的最流行的集群包之一是mclust在此处此处查看在 R 中实现但是,更复杂的 FMM 也是可能的,例如检查flexmix包和它的文档对于 LCA,有一个 R poLCA 包

K-means 不是“真正”基于距离的。它使方差最小化。(但方差平方欧几里得距离;所以每个点被欧几里得距离分配给最近的质心)。

有很多基于网格的聚类方法他们不计算距离,因为这通常会产生二次运行时间。相反,他们对数据进行分区并将其聚合到网格单元中。但这种方法背后的直觉通常与距离密切相关。

有许多用于分类数据的聚类算法,例如 COOLCAT 和 STUCCO。距离并不容易与此类数据一起使用(单热编码是一种黑客行为,并且不会产生特别有意义的距离)。但我还没有听说有人使用这些算法......

图有聚类方法。但是它们要么简化为经典的图问题,例如团或近团查找和图着色,要么与基于距离的聚类密切相关(如果您有加权图)。

像 DBSCAN 这样的基于密度的聚类有一个不同的名称,并不专注于最小化距离;但是“密度”通常是针对距离指定的,因此从技术上讲,这些算法要么基于距离,要么基于网格。

您遗漏的问题的重要部分是您的数据是什么

除了以前的好答案,我建议考虑Dirichlet 混合模型和基于贝叶斯的分层 Dirichlet 过程模型有关确定最佳集群数量的方法和方法的相当全面和一般的概述,请参阅StackOverflow上的出色答案:https ://stackoverflow.com/a/15376462/2872891 。

Gomes 等人的“正则化信息最大化”是一种纯粹的判别方法无论如何都没有涉及相似性/距离的概念。

这个想法是有一个类似于逻辑回归的模型,将点放入箱中。但是不是训练它来最大化类标签的某种形式的对数似然,目标函数是将点放入不同的集群中。

为了控制模型使用的集群数量,由超参数加权的附加正则化项λ用来。它归结为高斯先验在权重上的逆方差。

用于非线性聚类的内核方法或神经网络的扩展很简单。