我正在尝试使文档模糊聚类。这个想法是为每个文档获取每个集群的成员分数。
我已经计算了整个语料库的 TF-IDF 矩阵,然后我尝试使用来自模糊 sklearn 的 cmeans 聚类,但它会导致每个元素的成员矩阵具有相等的值。
import pandas as pd
import skfuzzy as fuzz
data = [
[0.789, 0.45, 0, 0, 0.2],
[0, 0.125, 0, 0.1, 0.4],
[0.789, 0.45, 0, 0, 0],
[0.9, 0.785, 0.123, 0, 0.2],
[0, 0, 0.3, 0.5, 0.1] # goes on....
]
dist_matrix = pd.DataFrame(data)
data = dist_matrix.to_numpy()
num_clusters = 14
cntr, u, _, _, _, _, _ = fuzz.cluster.cmeans(data, num_clusters, 2, error=0.005, maxiter=1000)
我错过了什么?
编辑:我已经插入了 MRE。假设我的数据集实际上有 9k 行并关闭 2k 列。我想得到一个矩阵'u',fuzzy-c-means的输出如下:
1 2 3 4 ..... 13
0 0.3 0 0.2 0 ..... 0
1 0.45 0.3 0 0 ..... 0
.....
9k 0 0 0 0 ..... 0
每个文档都有一行,以及 14 个集群中每个集群的成员比例。