编辑该问题的撰写对群集技术的了解很少,而事后看来,它甚至不符合Stack Overflow网站的标准,但是SO不会让我删除它,说其他人已经投入了时间和能量(此有效点)中的内容,如果我继续删除,我可能会暂时无法提出问题,因此,我正在更新此问题,使其具有相关性,以便其他人可以从中学习。仍然严格不遵循SO准则,因为我本人会将此标记为过于广泛,但是在当前状态下它没有任何价值,因此为其添加一点价值将是值得的。
更新的对话主题
问题是在聚类算法中选择最佳的聚类数量,该算法将对作为图像轮廓检测输入的各种形状进行分组,然后将聚类属性的偏差标记为“噪波”或“异常”。当时的问题是,所有数据集都是不同的,从中获得的形状也不同,并且每个数据集的形状数目也将有所不同。正确的解决方案是继续使用DBSCAN(带有噪声的基于密度的空间聚类应用程序)应用程序,该应用程序可以在我当时不知道的scikit-learn
中找到,该方法可以正常工作,现在该产品已经在测试中,我只是想回到此位置并更正这个旧错误。
旧问题
旧标题在kmeans聚类中动态选择k
我必须生成一个k-means聚类模型,其中事先不知道类别的数量,有没有一种方法可以根据聚类中的欧式距离自动确定k的值。
我希望它如何工作。从k的值开始,执行聚类,查看其是否满足阈值标准并相应地增加或减少k。问题是与框架无关的,如果您有使用Python以外的语言编写的Idea或实现,也请分享。
我在研究问题https://www.researchgate.net/publication/267752474_Dynamic_Clustering_of_Data_with_Modified_K-Means_Algorithm时发现了这个问题。 我找不到它的实现。
我正在寻找类似的想法来选择最好的并自己实现,或者可以移植到我的代码中的实现。
编辑 我现在正在考虑的想法是:
肘法
X均值聚类
答案 0 :(得分:2)
您可以使用肘部方法。此方法的基本作用是使用k的各种值(不包含聚类),然后计算每个点到聚类中心的距离。达到一定数量后,不会有任何重大改善,您可以将k值取为k(群集数)。
您可以参考以进一步阅读this链接。
答案 1 :(得分:0)
您遍历K的值,并使用Silhouette Score来检查聚类的有效性
答案 2 :(得分:0)
您可以迭代任意范围内k个值的分数。您可以检查每个k值的轮廓分数,也可以计算每个k值的SSE值之间的差。在0.4 * k值个数之后,差异最大的地方就是弯头。