这个问题是关于聚类任务的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->c
和 merge e->d
也会受到同样的惩罚 .
回到多标签分类,是否有任何成本函数允许这样的“加权标签”而不是1和0 . 或者我是以错误的角度看待这个?
1 回答
我试图使用网络科学的社区检测方法来聚类空间 - 您可以在多标签分类中查看我的paper about data-driven label space division以获取一些提示 . 我正在根据训练数据中的标签共生来构建加权和未加权图形,并使用各种社区检测算法来得出一个区域 - 然后在每个聚类中进行分类并合并结果 .
加权图表方法与您的问题有些相关 - 因为标签的关系正在根据它们出现的文档数量进行加权 .
我也提供我的实现作为python scikit-multilearn包的一部分 - 你可以尝试使用它 - 实现一个新的聚类方法很容易和documented here . 告诉我,如果你来的东西,我希望我帮助了一点 .