层次聚类中的阈值
我刚接触聚类,正在做一个关于聚类推文的小项目。我用了TF-IDF方法,然后进行了层次聚类。现在我对设置层次聚类的阈值有点困惑。这个阈值应该设成多少,怎么决定呢?
我使用了Python的scikit模块来实现这个。
2 个回答
1
我猜你是在说如何选择从你的层次聚类算法中提取多少个聚类。其实有几种方法可以做到这一点,维基百科上有一篇不错的文章介绍了一些理论:http://en.wikipedia.org/wiki/Determining_the_number_of_clusters_in_a_data_set
如果想看一些实际的例子,可以看看这个问题:Tutorial for scipy.cluster.hierarchy
1
虽然有很多方法可以帮助结束层次聚类(或者说聚类的一般过程),但并没有一种最好的通用方法。这是因为对于任意的数据,没有一种“正确”的聚类方式。所谓的“正确性”其实是非常依赖于具体的领域和应用的。
所以,虽然你可以尝试不同的方法(比如肘部法等),但这些方法也有自己的参数,你需要对这些参数进行“调节”,才能得到你认为“正确”的聚类结果。这个视频可能会对你有一点帮助(虽然它主要讲的是k-means聚类,但这些概念也适用于其他聚类方法) - https://www.youtube.com/watch?v=3JPGv0XC6AE