在纯度的最高水平切断树状图(Cutting dendrogram at highest level

2019-10-29 07:33发布

我想创建程序,利用聚类分层聚集集簇的文件和程序的输出取决于将树形图在我得到最大的纯度这样的水平。

所以,以下是我现在正在工作的算法。

Create dedrogram for the documents in the dataset
purity = 0
final_clusters
for all the levels, lvl, in the dendrogram
    clusters = cut dendrogram at lvl
    new_purity = calculate_purity_of(clusters)
    if new_purity > purity
        purity = new_purity
        final_clusters = clusters

根据这个算法,我得到处计算出的纯度最高,在所有级别的集群。

问题是,当我切断树状图在最低水平,每群只有一个文件,这意味着它是100%纯的,因此簇的平均纯度为1.0。 但是,这不是所需的输出。 我想是的文件正确分组。 难道我做错了什么?

Answer 1:

您正在使用过于简单的措施。

是,相对于纯度“最佳”的解决方案是只合并重复对象,以使每个簇仍然通过定义纯。

这就是为什么经常优化的数学标准不是解决一个真正的问题,数据的正确方法。 相反,你需要问自己一个问题:“这将是一个有趣的结果”,其中有趣的是不一样的在数学意义上的最佳。

对不起,我不能给你一个更好的答案 - 但我没有你的数据。

恕我直言,任何抽象的数学方法将遭受同样的命运。 您需要将您的数据用户需求,指定集群什么,而不是一些统计数; 所以不看数学的答案,而是看您的数据和用户需求。



文章来源: Cutting dendrogram at highest level of purity