标签聚类可视化建议

数据挖掘 Python scikit-学习 聚类
2022-03-05 18:24:12

我有一个用户给产品的标签数据库。例如

user; product; tag
1; A; Tag1
1; A; Tag2
2; A; Tag1
2; B; Tag1
..
..

我正在尝试将一起提供给任何产品的标签进行聚类。最后,我想像 PCA 图一样将它们可视化,在其中我可以看到彼此“更接近”的标签簇(用户倾向于将这些标签分配在一起)。到目前为止,我可以考虑应用t-SNE或简单的 PCA 来获得某种具有可用标签的聚类。

为此,我制作了如下的频率矩阵

first_tag; second_tag; occurrence
Tag1; Tag2; 2393
Tag1; Tag3; 38
Tag2; Tag3; 8393
..
..

我被困在这里。我不知道如何进行聚类。我只是试着用我用'first_tag'和'second_tag'和'occurrence'作为其权重的边缘networkx库来可视化它。python但这是徒劳的练习,我无法从中得到任何东西。我曾想过使用sklearn.decompositionPCA,但我正在努力将这个数据集转换为可以馈送到此类算法的适当矩阵。我总是可以n x n通过使行和列等于标签数来制作矩阵,但这会导致非常慢,有时甚至会出现内存不足的错误。任何其他优雅的解决方案?

1个回答

与聚类相比,关联规则可能更适合此类数据。

然而,显然可以将共现视为相似性度量并对其进行聚类,例如使用层次聚类的变体(对于相似性,而不是距离!)或通过将相似性转换为距离。例如,您也可以尝试将这些视为 tSNE 或 MDS 的亲和力(同样,您常用的库可能不仅可以工作,而且您需要自己编写一些代码),但简单地可视化同现矩阵可能要容易得多作为“热图”,在通过层次聚类将相似的标签排列在一起之后。