我最近做了很多聚类工作,一直在使用 PAM 算法。
根据我的研究,它似乎是确定性的,因为 medoids 的初始化是从数据集中的项目中选择的(随机选择)。此外,SWAP阶段的后续中心点也是数据集中的项目。因此,对于任何给定的数据集,只有一个正确答案可以最小化到它们的集群中心点的绝对距离之和。
因此,PAM 是对每个元素的详尽搜索,以找到最佳的 k 个中心点。
相比之下,k-means 算法为聚类中心选择任意合成起点。中心一直移动,直到误差被最佳地减小。
我在这个假设中正确吗?
我最近做了很多聚类工作,一直在使用 PAM 算法。
根据我的研究,它似乎是确定性的,因为 medoids 的初始化是从数据集中的项目中选择的(随机选择)。此外,SWAP阶段的后续中心点也是数据集中的项目。因此,对于任何给定的数据集,只有一个正确答案可以最小化到它们的集群中心点的绝对距离之和。
因此,PAM 是对每个元素的详尽搜索,以找到最佳的 k 个中心点。
相比之下,k-means 算法为聚类中心选择任意合成起点。中心一直移动,直到误差被最佳地减小。
我在这个假设中正确吗?
PAM 接近于确定性,但可能存在联系。
特别是,PAM 不使用随机生成器。
PAM 的核心是构建阶段,它试图巧妙地选择初始设置(存在使用随机样本的变体,但 IIRC不是原始 PAM 算法)。如果我没记错的话,作者甚至声称您实际上并不需要迭代细化(SWAP 阶段),并且由于良好的起始条件,它将在很少的迭代中完成。
然而,如果你有,例如,一个对称数据集,你可能在某个时候有不止一个选择作为“最佳中心点”。由于这些“联系”,它不能是完全确定的(大多数实现将是确定的,因为它们不会随机打破这些联系;但如果您置换数据并有这样的联系,您可能偶尔会看到不同的结果)。
PAM 也不是穷举搜索。这是一种最陡下降的方法,但它只会考虑附近的解决方案。CLARANS 文章中的超图解释概述了这一点。但是很容易看出有 (n 选择 k) 个可能的 medoids,但是 PAM 在任何时候都只考虑每个 SWAP 步骤中的 (nk)*k 个备选方案。
简短的回答没有。它对起始中心点很敏感。可能有多个正确的中心点组合来最小化目标函数。
一些软件包实现了一个智能构建阶段,其中以确定的方式选择起始中心点。如果起始中心点是确定性的,则 PAM 结果也将是确定性的。
这篇论文帮助我将它们联系在一起Amorim 等人。本文介绍了 PAM 的加权版本。