动态选择聚类中的聚类数[关闭]

问题描述 投票:-2回答:3

编辑这个问题写的几乎没有集群技术的知识,现在事后看来甚至不符合Stack Overflow网站的标准,但是SO不会让我删除它说其他人有这个(有效点)的投入时间和能量,如果我继续删除,我可能暂时无法提问,所以我正在更新这个问题,使其与其他人可以从中学习的方式相关。它仍然没有严格遵守SO指南,因为我自己会将其标记为太宽泛,但在目前的状态下它没有价值,所以为它增加一点价值将是值得的。

更新的对话主题问题是在聚类算法中选择最佳聚类数,该聚类算法将各种形状分组,这些形状是图像上轮廓检测的输入,然后聚类属性的偏差被标记为噪声或异常,当时提出问题的要点是所有数据集都不同,在它们中获得的形状不同,并且形状的数量也会因数据集到数据集而异。这样做的正确解决方案是使用DBSCAN(基于密度的空间聚类应用程序与噪声)应用程序可以在我当时没有意识到的scikit-learn中找到,该工作现在产品正在测试中,我只是想回到这个并纠正这个老错误。

老问题

旧标题k中k的动态选择意味着聚类

我必须生成一个k-means聚类模型,其中事先不知道类的数量,有没有办法根据聚类内的欧几里德距离自动确定k的值。

我希望它如何工作。以k值开始,执行聚类,查看它是否满足阈值标准并相应地增大或减小k。这个问题是独立于框架的。如果你有一个不同于Python语言的Idea或实现,请分享它。

我在研究https://www.researchgate.net/publication/267752474_Dynamic_Clustering_of_Data_with_Modified_K-Means_Algorithm问题时发现了这一点。我找不到它的实现。

我正在寻找类似的想法来选择最好的并自己实现,或者可以移植到我的代码的实现。

编辑我正在考虑的想法是:

  1. 肘法
  2. X-means聚类
python scikit-learn cluster-analysis
3个回答
5
投票

你可以使用肘法。这个方法基本上做的是,它使用各种k值(没有簇),然后计算每个点与其簇中心的距离。在获得一定数量之后,你可以获得任何重大改进,你可以采取k值(没有集群)。

enter image description here

您可以参考进一步阅读this链接。


0
投票

您迭代K的值并使用Silhouette Score检查您的群集有效性


0
投票

您可以遍历任何范围的k值得分。您可以检查每个k值的轮廓分数,也可以计算每个k值的SSE值之间的差异。在0.4 *数量的k值之后,差异最大的是肘点。

© www.soinside.com 2019 - 2024. All rights reserved.