【问题标题】:How to intrepret Clusters results after using Doc2vec?使用 Doc2vec 后如何解释集群结果?
【发布时间】:2018-02-05 15:54:10
【问题描述】:

我正在使用 doc2vec 将我的追随者的前 100 条推文转换为矢量表示(比如 v1.....v100)。之后,我使用向量表示来进行 K-Means 聚类。

model = Doc2Vec(documents=t, size=100, alpha=.035, window=10, workers=4, min_count=2)

我可以看到集群 0 由一些值(比如 v10、v12、v23 ......)支配。我的问题是这些 v10、v12 ... 等代表什么。我可以推断出这些特定列聚集了文档的特定关键字吗?

【问题讨论】:

    标签: python scikit-learn cluster-analysis gensim doc2vec


    【解决方案1】:

    不要使用单个变量。由于这些嵌入的训练方式,它们应该只一起分析。

    首先,找到

    1. 与您的质心最相似的文档向量以查看典型集群成员
    2. 用于描述集群的典型词嵌入中最相似的术语向量
    3. 记下距离,看看您的合身程度。

    【讨论】:

    • 谢谢,这确实是一个很棒的方法。我会尽力让你知道结果。我的结果显示了一些良好的趋势,例如所有只是为了促销其产品的公司/公司都聚集在一起。有艺术等词汇的人聚集在一个地方
    • 最相似的词向量是什么意思?我已经完成了第 1 步并确定了离质心最近的 k 个邻居。我应该做字数统计/tf-idf 来找到最相似的术语向量还是在每个集群上使用 word2vec 来找到相同的
    • 使用与 doc2vec 相同的计算(点积)。
    【解决方案2】:

    这些值表示您要在集群中表示的各个推文(或文档)的坐标。我假设 v1 到 v100 代表推文 1 到 100 的向量,否则这是没有意义的。所以如果假设集群 0 具有 v1、v5 和 v6,这意味着推文 1、5 和 6 具有向量表示 v1, v5 和 v6 分别(或以向量 v1、v5 和 v6 为表示的推文)属于集群 0。

    【讨论】:

    • 你真的应该阅读 word2vec。不,变量不对应于推文。
    • @Anony-Mousse 我正在使用 doc2vec。在 word2vec 的情况下,我可以尝试从词组中理解,但定义两个包含 100 条推文的文档非常困难,因为用户正在发布不同主题的推文。但是我的结果显示出一些好的趋势,比如所有只是为了促销他们的产品的公司/公司都聚集在一起。有艺术之类的词的人聚集在一个地方。但是如何使用这些变量来定义集群的属性是个大问题
    【解决方案3】:

    集群本身并不意味着任何特定的东西。您可以拥有任意数量的集群,所有集群算法都会尝试将所有向量分布在这些集群中。如果您知道所有推文并且知道您希望将它们分成多少个不同的主题,请尝试清理它们或在其中包含特征,以便聚类算法可以使用这些将它们分离到您选择的集群中。

    此外,如果您的意思是主题建模,那与聚类不同,您也应该查一下。

    【讨论】:

    • 不,只有少数算法如 k-means 会将所有点分布到 k 个簇中。相当多的调制解调器算法没有。即使使用 k-means,集群也确实具有一定的意义。通过 word2vec 映射回原始数据空间并不容易。
    • 所有我想使用他们的推文内容来细分相似的关注者。有多种方法可以找到数据中的最佳聚类数。所以我不同意集群是完全没用的。我只是在试验看看 doc2vec 是否可以做更好的分割,当然它应该对用户感兴趣的主题进行某种分割。
    猜你喜欢
    • 2018-09-23
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 2018-06-14
    相关资源
    最近更新 更多