首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >层次聚集聚类

层次聚集聚类
EN

Stack Overflow用户
提问于 2014-05-11 15:03:09
回答 2查看 607关注 0票数 0

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

代码语言:javascript
复制
"beirut,proff,email1"
"beirut,proff,email2"
"swiss,aproff,email1"
"france,instrc,email2"
"swiss,instrc,email2"
"beirut,proff,email1"
"swiss,instrc,email2"
"france,aproff,email2"

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

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2014-05-11 15:20:13

任何类型的聚类都需要一个距离度量。如果你愿意用你的琴弦把它们看成是平等的或者不相等的,那么你能做的最好的就是场向的哈明距离。也就是说,"abc,def,ghi“和"uvw,xyz,ghi”之间的距离是2,"abw,dez,ghi“之间的距离也是2。如果你想在一个特定的字段中聚集类似的字符串--比如因为名字相似而将”斯洛伐克“和”斯洛文尼亚“聚在一起,或者”波兰“和”乌克兰“因为它们之间的边界,你会使用更复杂的度量标准。在距离度量的前提下,层次聚集聚类应该能很好地工作。

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

票数 0
EN

Stack Overflow用户

发布于 2014-05-12 11:37:18

分层聚类是一种比较灵活的聚类算法。除了一些联系(沃德?)它对“距离”没有任何要求--它也可能是相似的,通常负值也同样有效,不需要三角不等式等等。

其他算法--如k均值--则要有限得多。K-均值使方差最小化;因此它只能处理(平方)欧氏距离;它需要能够计算均值,因此数据需要在一个连续的、固定维数的向量空间中;稀疏性可能是一个问题。

一个可能更灵活的算法是通用DBSCAN。本质上,它需要一个二元判定"x是y的一个邻居“(例如,距离小于epsilon),并需要一个谓词来度量”核心点“(例如密度)。您可以提出任意复杂的这样的谓词,这可能不再是一个单一的“距离”了。

不管是哪种方式:,如果您可以度量这些记录的相似性,那么人工聚类应该可以使用。问题是,如果你能从这些数据中得到足够的相似性,而不仅仅是3位:“有同样的电子邮件”,“有相同的名字”,“有相同的位置”-- 3位不会提供一个非常有趣的层次结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23594167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档