在没有弯角聚类的情况下该怎么办


13

我了解到,当选择多个聚类时,应该为K的不同值寻找一个弯头。我已经绘制了k的值(从1到10)的insss值,但是我看不到弯头。在这种情况下您会怎么做?

麻烦的KMeans


2
存在许多聚类标准,“ SS弯头”规则只是一种,而不是最佳的。尝试其他。您的数据中很可能没有群集。
ttnphns 2014年

@ttnphns您说的这个神秘的人是什么?如何在数据中没有聚类?我怎么知道?
2014年

Answers:


7

方法错误?

也许您为问题使用了错误的算法。

预处理错误?

K-均值对预处理非常敏感。如果一个属性的规模比其他属性大得多,它将主导输出。这样您的输出将有效为一维

可视化结果

无论您做什么,都需要通过除SSQ之类的数字之外的其他方法来验证结果。相反,请考虑可视化

可视化还可以告诉您,数据中可能只有一个群集


多维数据有哪些不错的可视化选项?
杰里米

1
取决于您的数据。一些数据可以很好地投影,因为它的内在维数要低得多。时间序列可以轻松绘制,如果您的数据是序列化的图像,可以将其可视化为图像吗?无论如何,可视化取决于您的数据,永远不会有一种千篇一律的解决方案。
已退出– Anony-Mousse 2014年

3

一种方法是手动检查群集中的成员是否有特定的k,以查看分组是否有意义(它们是否可区分?)。这可以通过列联表和有条件的手段来完成。对各种k执行此操作,然后可以确定合适的值。

一种不太主观的方法是使用Silhouette值:

/programming/18285434/how-do-i-choose-k-when-using-k-means-clustering-with-silhouette-function

可以使用您喜欢的软件包来计算。从链接:

该方法只是将组内相似度与最接近组相似度进行比较。如果到同一集群的其他成员的任何数据成员平均距离都比到某些其他集群成员的平均距离高,则此值为负,并且集群不成功。另一方面,silhuette值接近1表示成功的聚类操作。0.5不是用于聚类的精确度量。


格伦,我个人认为您的答案不完整。第一段看起来不清楚。什么是“手动检查”,请您描述一下程序吗?然后,轮廓是“更客观”比什么?又为什么呢?
ttnphns 2014年

@ttnphns答案已更新。
2014年

contingency tables and conditional means这是进一步的神秘。我应该怎么做才能“主观地”得出一个好k?
ttnphns 2014年

@ttnphns如果发帖人对此有疑问,我将跟进。正如我所说,您应该检查分组是否可区分。对我来说似乎很清楚。
2014年

因此,如果我的轮廓值较低(〜.35),可能表明该数据确实没有很好的聚类?
杰里米

0
  • K均值没有弯头并不意味着数据中没有聚类。
  • 没有弯头表示使用的算法无法分离群集;(考虑同心圆的K均值,对比DBSCAN)

通常,您可以考虑:

  • 调整您的算法;
  • 使用另一种算法;
  • 做数据预处理。

-1

我们可以使用NbClust包来找到k的最佳值。它提供了30个用于确定聚类数量的指标,并提出了最佳结果。

NbClust(data = df,distance =“ euclidean”,最小nc = 2,max.nc = 15,方法=“ kmeans”,index =“ all”)


欢迎光临本站!您能否扩展这个答案?虽然有帮助,但多一点细节将使其更有用。
mkt-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.