假设我有一个数据集,我在其中进行了聚类分析,例如 k=9。也许这是来自 k 均值,或者我刚刚完成了完整的链接层次聚合,或者我从散点图中观察到了它,我不认为我如何得到 k=9 很重要。*假设现在我想要 k =5 个簇,但我想从 k=9 簇结果继续获取这些 k=5 个簇。最后假设我希望合并按照 k-means(例如,从 k=9 合并到 k=8 最小化 WSS)、完整链接等原则进行。我有什么办法可以做这在 R 中?或者我必须编写自己的函数吗?
本质上,如果我想创建一个分层凝聚结构,而不是从 k=N 个单例集群开始,该怎么办?我可以在 R 中做到这一点而不必编写自己的函数吗?
主要**,我试图做的是寻找解决方案。有人对 Python 提出了类似的问题(amd 会接受 R 答案),但只得到了一个与质心链接相关的答案。质心链接有问题,iirc,被称为反转,而且我也不知道认为在合并单例之后这甚至会起作用(除非我犯了一个可怕的错误,否则合并的新质心不会是两个质心的质心,除非合并的集群具有相同数量的成员)。
*实际上,我有一个相当不稳定的 k=5 k 均值分割,并且我生成了一个表示 1009 个分割的不稳定性的矩阵。然后,我尝试创建我猜我们可能称之为模态集群的东西,但我的代码有缺陷,因此我试图通过从我有缺陷的代码生成的 k=9 结构到所需的 k=5 分段来捏造它。
**就我的具体问题而言,我还将 100% 次共置值的矩阵视为距离对象,并用它来进行分层聚类。我认为这可以作为我有缺陷的代码的替代方案,但它并没有“认为”它解决了如何预先指定集群结构然后从中合并的核心问题。这个“解决方案”是受这个答案启发的。此外,这就是它生成的适合我的数据的完整链接:
所以,我想我明白你在说什么。我担心的是你希望定义一组 5 个质心(或一组 5 个),然后要求 R 将 9 个簇分成这些特定的 5 个簇。如果您只想要 5 个集群,那么您必须以某种方式指定这一点,并接受您可能没有最佳数量来构建尽可能强大的集群集。
如果我猜的话,最终目标是让无监督模型表现得像监督模型一样......但它不应该那样工作。
您需要做出一些决定:
以最佳数量(k=9)稳健地聚类