Answers:
这种方法的一个示例是用于聚类的有限混合模型(例如,此处或此处)。在FMM中,您将变量的分布()视为分布()的混合:X ķ ˚F 1,。。。,˚F ķ
其中是参数而是混合物中第个分布的比例,而是参数(的或参数)分布。θ = (π ',θ ' 1,。。。,θ ' ķ)' π ķ ķ θ ķ ˚F ķ
离散数据的一种特殊情况是潜在类别分析(例如,此处),定义为:
其中是观察潜在类概率(即),是观察值的概率,是处于类的概率。ķ π ķ P (X )X P (X | ķ )X ķ
通常对于FMM和LCA 都使用EM算法进行估计,但是也可以使用贝叶斯方法,但是由于模型识别和标签切换等问题(例如,西安的博客),要求更高。
因此,没有距离度量,而是一个定义数据结构(分布)的统计模型。因此,该方法的另一个名称是“基于模型的群集”。
查看有关FMM的两本书:
使用FMM的最受欢迎的群集软件包之一是mclust
(在此处或此处检查)在R中实现。但是,也可以使用更复杂的FMM,例如检查flexmix
软件包及其文档。对于LCA,有一个R poLCA软件包。
K均值不是“真正”基于距离的。它使方差最小化。(但是方差平方是欧几里得距离;因此,每个点也都由欧几里得距离指定给最近的质心)。
有很多基于网格的聚类方法。他们不计算距离,因为这通常会产生二次运行时间。相反,他们将数据分区并将其聚合到网格单元中。但是,这种方法背后的直觉通常与距离密切相关。
有许多用于分类数据的聚类算法,例如COOLCAT和STUCCO。距离不易与此类数据一起使用(单热编码是一种技巧,并且不会产生特别有意义的距离)。但是我还没有听说有人在使用这些算法...
有图的聚类方法。但是它们要么简化为经典的图形问题,例如集团或近距查找和图形着色,要么它们与基于距离的聚类紧密相关(如果您有加权图形)。
像DBSCAN这样的基于密度的集群有一个不同的名称,它并不专注于最小化距离。但是“密度”通常是相对于距离指定的,因此从技术上讲,这些算法是基于距离的或基于网格的。
您遗漏的问题的关键部分是什么数据?
除了先前的好答案之外,我建议考虑使用Dirichlet混合模型和基于贝叶斯的分层Dirichlet过程模型。有关确定最佳群集数量的方法和方法的相当全面和全面的概述,请参见StackOverflow上的以下出色解答:https : //stackoverflow.com/a/15376462/2872891。
纯粹的判别方法是Gomes等人的“规范化信息最大化”。没有任何涉及相似性/距离的概念。
这个想法是要有一个逻辑回归模型,例如将点放入箱中。但是,目标函数不是将其训练为最大化类标签的某种形式的对数似然性,而是将点放入不同聚类中。
为了控制模型使用的聚类数量,使用了由超参数加权的附加正则化项。归结为权重之前高斯的逆方差。
扩展内核方法或神经网络以进行非线性聚类非常简单。