对没有标签且不知道所需集群数量的数据集进行集群的最佳方法是什么?
例如,使用没有标签或不知道标签类数量的Iris数据集。
我的想法:
- 计算样本与每个现有聚类的均方距离
- *如果均方距离>某个阈值乘以一个取决于(惩罚(k的因子,那么,将其添加为"新"候选者
- *如果添加了新的集群,请查找新的"最佳"k+1集群中心
- 如果没有添加新集群,请转到下一行
您可以绘制不同K值的弯头曲线,如所述
具体而言,
1(肘部方法的思想是在数据集上对k的一系列值(例如,在上面的例子中,k从1到10(运行k均值聚类,并对k的每个值计算误差平方和(SSE(。
2( 然后,为k的每个值绘制SSE的折线图。如果折线图看起来像一只手臂,那么手臂上的"肘部"就是k的值,这是最好的
3( 因此,我们的目标是选择一个仍然具有低SSE的k的小值,并且肘部通常代表我们通过增加k 开始获得递减回报的地方
关于如何选择k,已经提出了几十种方法。
一些变体,如x-means可以动态调整k,您只需要给出最大值,并选择质量标准AIC或BIC。