Fab*_*gas 3 cluster-analysis machine-learning neural-network multilabel-classification
这个问题是关于聚类任务的Multilabel多类分类.这是两个很好的定义,以确保没有人混淆两者:
多类分类是指具有两个以上类的分类任务; 例如,分类一组水果图像,可以是橙子,苹果或梨.多类分类假设每个样本被分配给一个且仅一个标签:水果可以是苹果或梨,但不能同时.
多标签分类为每个样本分配一组目标标签.这可以被认为是预测不相互排斥的数据点的属性,例如与文档相关的主题.文本可能同时涉及任何宗教,政治,金融或教育,也可能不属于任何一种.
根据多标签分类的定义,我们可以理解样本可能有多个真正的二进制标签,因此关于宗教和政治的示例文本将具有如下目标:y = [1,1,0,0].
如果不是使用二进制标签,我们有概率或分数.所以我们的目标现在看起来就像这样: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->c,并merge e->d会受到惩罚,即使前者不一定是错的一样.
回到多标签分类,是否有任何成本函数允许这样的"加权标签"而不是1和0.或者我是以错误的角度看待这个?
我实际上正在接近这个主题的博士学位,试图为输出空间提出一种合理的聚类方法.目前我已尝试使用网络科学的社区检测方法来聚类空间 - 您可以在多标签分类中查看有关数据驱动标签空间划分的文章,以获取一些提示.我正在根据训练数据中的标签共生来构建加权和未加权图形,并使用各种社区检测算法来得出一个区域 - 然后在每个聚类中进行分类并合并结果.
加权图表方法与您的问题有些相关 - 因为标签的关系正在根据它们出现的文档数量进行加权.
我也提供我的实现作为python scikit-multilearn包的一部分 - 你可以尝试使用它 - 实现一个新的聚类方法很容易并在此处记录.告诉我,如果你来的东西,我希望我帮助了一点.