【问题标题】:Multilabel classification with "weighted labels" for clustering tasks用于聚类任务的带有“加权标签”的多标签分类
【发布时间】:2017-06-22 08:25:54
【问题描述】:

这个问题是关于聚类任务的多标签多类分类。 Here 是对两者的一个很好的定义,以确保没有人混淆两者:

多类分类是指具有两个以上类的分类任务;例如,对一组可能是橙子、苹果或梨的水果图像进行分类。多类分类假设每个样本都分配给一个且只有一个标签:水果可以是苹果或梨,但不能同时是两者。

多标签分类为每个样本分配一组目标标签。这可以被认为是预测不互斥的数据点的属性,例如与文档相关的主题。一篇文章可能同时涉及任何宗教、政治、金融或教育,也可能不涉及这些。

根据多标签分类的定义,我们可以理解一个样本可能有多个真正的二元标签,因此关于宗教和政治的样本文本的目标看起来像这样:@987654322 @。

如果我们没有二进制标签,而是有概率或分数怎么办。所以我们的目标现在看起来像这样:y = [0.5, 0.4, 0.0, 0.1],例如概率总和为 1。该文件是50%的宗教,40%的政治和10%的教育。当然,像这样标记数据集实际上并不可行,所以让我们看看另一组任务,更准确地说是聚类任务,看看这是如何发生的。

对于集群任务,我们有一个数据集[a,b,c,d,e] 及其一组真正的集群[abce,d]。聚类可以看作是一种分类任务,其中类是一组动作:与活动集群合并或开始一个新集群。想象一个增量构建这些集群的系统。它当然会出错,因此在此过程中会产生不连贯的集群[ab,c,d]。查看下一个样本e 时,现在无法准确判断应该将其添加到哪个集群,因为它的真正集群现在被分成两部分。由于我们知道正确的集群集,我们可以为每个动作(或潜在的合并)分配一个基于精度或召回的分数y = [0.5, 0.3, 0, 0.2](这些数字是我想象的结果,不是精度也不是召回)。那么我们在这里的标签是什么?我们应该与这些集群中的任何一个合并还是应该启动一个仅包含 e 的新集群?

一个简单的解决方案是将最高分作为我们的真实标签或潜在操作,因为缺少更好的术语,并使用正常的分类成本函数。这意味着我们的潜在操作merge e->ab 是唯一正确的答案,其他一切都同样糟糕。在我看来,这似乎是错误的,因为 merge e->cmerge e->d 的行为都会受到同样的惩罚,即使前者不一定是错误的。

回到多标签分类,是否有任何成本函数允许这种“加权标签”而不是 1 和 0。还是我看错了角度?

【问题讨论】:

  • 在集群中,你确实没有有正确的标签。如果你有标签,那就是分类!
  • 嗯,我可能没有使用正确的术语。例如,在共指解析中,您确实拥有正确的共指链或“集群”。我试着尽可能笼统。

标签: machine-learning neural-network cluster-analysis multilabel-classification


【解决方案1】:

我实际上正在攻读与该主题相近的博士学位,试图为输出空间提出一种合理的聚类方法。目前,我尝试使用网络科学中的社区检测方法对空间进行聚类——您可以在多标签分类中查看我的paper about data-driven label space division 以获得一些提示。我正在根据训练数据中的标签共现构建加权和未加权图,并使用各种社区检测算法提出划分 - 然后在每个集群中进行分类并合并结果。

加权图方法与您的问题有些相关 - 因为标签的关系由它们出现的文档数量加权。

我还将我的实现作为 python scikit-multilearn 包的一部分提供 - 你可以尝试使用它 - 实现新的集群方法很容易,documented here。如果你有什么东西来告诉我,我希望我能帮上一点忙。

【讨论】:

    猜你喜欢
    • 2017-02-28
    • 2020-04-25
    • 2018-06-11
    • 2021-04-19
    • 2019-08-16
    • 2018-07-07
    • 1970-01-01
    • 2020-12-03
    • 2017-04-16
    相关资源
    最近更新 更多