我正在寻找 pyspark 中的 k-modes 实现。我发现这个和这个作为实现。
首先,我尝试使用第一个链接实现 k 模式并遇到问题。所以我继续在 github 上尝试了第二个实现。这个工作(如在没有错误的情况下运行),但由于没有指南/使用技术,我仍然无法以正确的方式使用它。根据github页面:
n_modes=36
partitions=10
max_iter=10
fraction = 50000 * partitions / (data.count() * 1.0)
data = data.rdd.sample(False,fraction).toDF()
method=IncrementalPartitionedKMetaModes(n_partitions = partitions, n_clusters = n_modes,max_dist_iter = max_iter,local_kmodes_iter = max_iter,
similarity = "frequency", metamodessimilarity = "hamming")
cluster_metamodes = method.calculate_metamodes(data)
我无法理解如何使用这个 cluster_metamodes,或者它甚至意味着什么。
简而言之,将为每个分区执行 k 模式,以便为每个分区识别一组模式(集群)。接下来,将重复 k-modes 以识别来自所有分区的一组所有模式的模式。这些模式的模式在这里被称为元模式。
有人可以解释这个概念并告诉如何在分类值的 pyspark 数据帧上使用这种聚类方法吗?