【问题标题】:Hierarchical agglomerative clustering层次凝聚聚类
【发布时间】:2014-06-28 22:31:00
【问题描述】:

我们可以使用分层凝聚聚类来对这种格式的数据进行聚类吗?

"beirut,proff,email1"
"beirut,proff,email2"
"swiss,aproff,email1"
"france,instrc,email2"
"swiss,instrc,email2"
"beirut,proff,email1"
"swiss,instrc,email2"
"france,aproff,email2"

如果不是,用字符串值对数据进行聚类的兼容聚类算法是什么?

感谢您的帮助!

【问题讨论】:

    标签: cluster-analysis data-mining hierarchical-clustering


    【解决方案1】:

    任何类型的聚类都需要距离度量。如果您愿意对您的字符串做的只是将它们视为彼此相等或彼此不相等,那么您真正能做的最好的就是场方面的汉明距离......也就是说,“abc ,def,ghi" 和 "uvw,xyz,ghi" 是 2,而 "abw,dez,ghi" 之间的距离也是 2。如果你想在特定字段中聚类相似的字符串——比如聚类 "Slovakia" 和“斯洛文尼亚”因为名称相似,或者“波兰”和“乌克兰”因为它们彼此相邻,您将使用更复杂的指标。给定距离度量,分层凝聚聚类应该可以正常工作。

    然而,所有这些都假设集群是您真正想要做的。您的数据集似乎是一种奇怪的聚类用例。

    【讨论】:

    • 实际上有许多聚类算法使用距离度量。
    • Anony-Mousse:你能给我举个例子吗?请不要使用距离度量的聚类算法?
    【解决方案2】:

    层次聚类是一种相当灵活的聚类算法。除了一些联系(Ward?)它对“距离”没有任何要求 - 它也可能是相似性,通常负值也可以,你不需要三角不等式等。

    其他算法(例如 k-means)受到的限制要大得多。 K-means 最小化方差;所以它只能处理(平方)欧几里得距离;并且它需要能够计算均值,因此数据需要处于连续的、固定维数的向量空间中;稀疏性可能是个问题。

    一种可能更加灵活的算法是广义 DBSCAN。本质上,它需要一个二元决策“x 是 y 的邻居”(例如距离小于 epsilon),以及一个衡量“核心点”的谓词(例如密度)。你可以想出任意复杂的谓词,这可能不再是一个单一的“距离”了。

    无论哪种方式:如果您可以测量这些记录的相似性,那么层次聚类应该可以工作。问题是,如果您可以从该数据中获得足够的相似性,而不仅仅是 3 位:“具有相同的电子邮件”、“具有相同的名称”、“具有相同的位置”——3 位不会提供非常有趣的层次结构。

    【讨论】:

      猜你喜欢
      • 2016-09-06
      • 2021-10-04
      • 2021-07-25
      • 2021-07-21
      • 2020-11-30
      • 2015-11-20
      • 2017-10-24
      • 2015-12-01
      • 1970-01-01
      相关资源
      最近更新 更多