首页 文章

用于聚类任务的带有“加权标签”的多标签分类

提问于
浏览
2

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

多类分类是指具有两个以上类的分类任务;例如,对可以是橙子,苹果或梨的水果图像进行分类 . 多类分类假设每个样本被分配给一个且仅一个标签:水果可以是苹果或梨,但不能同时 . 多标签分类为每个样本分配一组目标标签 . 这可以被认为是预测不相互排斥的数据点的属性,例如与文档相关的主题 . 文本可能同时涉及任何宗教,政治,金融或教育,也可能不属于任何一种 .

根据 multilabel classification 的定义,我们可以理解样本可能有多个真正的二进制标签,因此关于宗教和政治的示例文本将具有如下目标: y = [1,1,0,0] .

如果不是使用二进制标签,我们有概率或分数 . 所以我们的目标现在看起来像这样: y = [0.5, 0.4, 0.0, 0.1] 其中概率总和为1 . 该文件是50%的宗教信仰,40%的政治和10%的教育 . 当然,像这样标记数据集并不是真的可行,所以让我们看看另一组任务,更准确地说是聚类任务,以便了解这是如何发生的 .

对于 clustering tasks ,我们有一个数据集 [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 . 或者我是以错误的角度看待这个?

1 回答

  • 5

    我试图使用网络科学的社区检测方法来聚类空间 - 您可以在多标签分类中查看我的paper about data-driven label space division以获取一些提示 . 我正在根据训练数据中的标签共生来构建加权和未加权图形,并使用各种社区检测算法来得出一个区域 - 然后在每个聚类中进行分类并合并结果 .

    加权图表方法与您的问题有些相关 - 因为标签的关系正在根据它们出现的文档数量进行加权 .

    我也提供我的实现作为python scikit-multilearn包的一部分 - 你可以尝试使用它 - 实现一个新的聚类方法很容易和documented here . 告诉我,如果你来的东西,我希望我帮助了一点 .

相关问题