这个问题是关于聚类任务的Multilabel多类分类。 Here是两者的一个很好的定义,以确保没有人混淆两者:
多类分类表示具有两个以上类的分类任务;例如,对可以是橙子,苹果或梨的水果图像进行分类。多类分类假设每个样本被分配给一个且只有一个标签:水果可以是苹果或梨,但不能同时进行。
多标签分类为每个样本分配一组目标标签。这可以被认为是预测不相互排斥的数据点的属性,例如与文档相关的主题。文本可能同时涉及任何宗教,政治,金融或教育,也可能不属于任何一种。
根据多标签分类的定义,我们可以理解样本可能有多个真正的二进制标签,因此关于宗教和政治的示例文本将具有如下目标:{{ 1}}。
如果不是使用二进制标签,我们有概率或分数。所以我们的目标现在看起来像这样:y = [1,1,0,0]
其中概率总和为1。该文件是50%的宗教信仰,40%的政治信息和10%的教育。当然,像这样标记数据集并不是真的可行,所以让我们看一下另一组任务,更确切地说是聚类任务,以便了解它是如何发生的。
对于群集任务,我们有一个数据集y = [0.5, 0.4, 0.0, 0.1]
及其真集群[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
行为都会受到同样的惩罚。
回到多标签分类,是否有任何成本函数允许这样的“加权标签”而不是1和0。或者我是以错误的角度看待它?
答案 0 :(得分:5)
我实际上正在接近这个主题的博士学位,试图为输出空间提出一种合理的聚类方法。目前我已尝试使用网络科学的社区检测方法来聚类空间 - 您可以在多标签分类中查看我的paper about data-driven label space division以获取一些提示。我正在根据训练数据中的标签共现构建一个加权和未加权的图形,并使用各种社区检测算法来得出一个区域 - 然后在每个聚类中进行分类并合并结果。
加权图表方法与您的问题有些相关 - 作为标签'关系按照它们出现的文件数量进行加权。
我也将我的实现作为python scikit-multilearn包的一部分提供 - 您可以尝试使用它 - 实现新的聚类方法很简单并且documented here。告诉我,如果你带来了什么,我希望我能帮助一点。