【问题标题】:How to evaluate HDBSCAN text clusters?如何评估 HDBSCAN 文本簇?
【发布时间】:2019-08-06 13:48:46
【问题描述】:

我目前正在尝试使用 HDBSCAN 对电影数据进行聚类。目标是将相似的电影聚集在一起(基于关键字、流派、演员姓名等电影信息),然后将 LDA 应用于每个集群并获得具有代表性的主题。但是,我很难评估结果(除了可视化分析,随着数据的增长,这并不是很好)。使用 LDA,虽然很难评估它,但我一直在使用连贯性测量。但是,有没有人知道如何评估 HDBSCAN 制作的集群?我还没有找到太多关于它的信息,所以如果有人有任何想法,我将非常感激!

【问题讨论】:

  • 有时看 t-sne 图会很有趣。有时它会给你鼓励你的特征是否区分类。我说有时是因为好的 t-sne 情节很好......而不那么好的情节毫无意义。

标签: python cluster-analysis evaluation hdbscan


【解决方案1】:

HDBSCAN 在名为relative_validity 的方法中实现Density-Based Clustering Validation。它将允许您将使用一组给定的超参数获得的一个聚类与另一个聚类进行比较。 一般来说,请阅读cluster analysiscluster validationHere's 与 HDBSCAN 库的作者就此进行了很好的讨论。

【讨论】:

    【解决方案2】:

    在无监督学习中到处都是同样的问题。

    它是无人监督的,您正在尝试发现一些新的和有趣的东西。计算机无法决定某件事是真正有趣还是新事物。当先验知识已经以机器可处理的形式编码时,它可以决定和微不足道的情况,并且您可以计算一些启发式值作为兴趣的代理。但是这样的度量(包括基于密度的度量,例如 DBCV 实际上并没有比聚类算法本身选择“最佳”解决方案更好地判断这一点)。

    但最终,没有办法手动查看数据,然后执行后续步骤 - 尝试将您从数据中学到的知识付诸实践。想必你不是invory tower学术,只是因为试图编造另一种无用的方法而这样做......所以使用它,不要假装使用它。

    【讨论】:

      【解决方案3】:

      您可以尝试clusteval 库。该库可帮助您找到数据集中的最佳集群数量,也适用于 hdbscan。获得集群标签后,您可以使用hnet 开始富集分析。

      pip install clusteval
      pip install hnet
      

      例子:

      # Import library
      from clusteval import clusteval
      # Set the method
      ce = clusteval(method='hdbscan')
      # Evaluate
      results = ce.fit(X)
      # Make plot of the evaluation
      ce.plot()
      # Make scatter plot using the first two coordinates. 
      ce.scatter(X)
      

      因此,此时您已检测到最佳集群标签,现在您可能想知道任何集群与元数据中的(一组)特征之间是否存在关联。这个想法是计算每个集群标签在元数据中出现特定类的频率。这可以用 P 值来定义。 P 值越低(低于 alpha=0.05),随机发生的可能性就越小。

      results 是一个字典,在 labx 键中包含最佳集群标签。使用hnet,我们可以很容易地计算富集。更多信息可以在这里找到:https://erdogant.github.io/hnet

      # Import library
      import hnet
      
      # Get labels
      clusterlabels = results['labx']
      
      # Compute the enrichment of the cluster labels with the dataframe df
      enrich_results = hnet.enrichment(df, clusterlabels)
      

      当我们查看enrich_results 时,有一列带有category_label。这些是我们作为输入提供的数据帧 df 的元数据变量。第二列:P 代表 P 值,它是 category_label 与目标变量 y 的计算显着性。在这种情况下,目标变量 y 是集群标签 clusterlabels

      y 中的目标标签可以显着丰富不止一次。这意味着某些 y 针对数据框中的多个变量进行了丰富。这可能是因为我们可能需要更好地估计集群标签或其混合组或其他东西。

      可以在此处找到有关集群丰富的更多信息: https://erdogant.github.io/hnet/pages/html/Use%20Cases.html#cluster-enrichment

      【讨论】:

        猜你喜欢
        • 2012-04-10
        • 2021-01-24
        • 2020-12-14
        • 2019-12-28
        • 2022-11-11
        • 1970-01-01
        • 2021-05-16
        • 2021-08-07
        • 1970-01-01
        相关资源
        最近更新 更多