0

我正在尝试使文档模糊聚类。这个想法是为每个文档获取每个集群的成员分数。

我已经计算了整个语料库的 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 个集群中每个集群的成员比例。

4

0 回答 0