我正在努力学习和理解聚类算法是如何使用Python的。
问题:
我有一个大约5列的数据集,其中包含混合数据类型(字母数字/日期/数字),我希望根据具有公共值的多个字段对其进行聚类。
示例:
Index Col-1 Col-2 Col-3 Col-4 Col-5
----------------------------------------------------------------
0 US1 John ABC123 01/01/2019 200
1 US2 Alex 256xyz 01/12/2018 8000
2 US1 John ABC12 01/01/2019 200
3 US2 Alex 00256xyz 01/12/2018 8000
4 US2 Alex XYZ 01/12/2018 8000
5 US3 Mary 345abc 27/03/2000 9040输出:
Index
Cluster-1: 0 and 2
Cluster-2: 1,3,4
Cluster-3: 5应以Col-1,2,4,5组为基础建立集群。
我不知道这是否有意义,是否有可能做到这一点。
如果是,非数字数据集使用的最佳算法是什么?也可以通过代码来实现。
发布于 2019-11-21 10:40:05
不确定您是在寻找精确匹配,还是使用近似匹配进行聚类。为了准确匹配,您可以简单地按所有四列分组,为每个组合创建一个group_id,然后通过与此表连接来查找属于同一组的所有成员。
在近似匹配的情况下,可以将它们编码为虚拟变量,并使用hamming距离计算相似度,并在此基础上创建集群。
https://stackoverflow.com/questions/58968830
复制相似问题