📅  最后修改于: 2023-12-03 15:17:45.017000             🧑  作者: Mango
在传统的机器学习中,通常的任务是将数据分为两个或多个互斥的类别,也就是单标签分类。而在现实中,有许多任务是属于多标签分类的问题。比如在文本分类中,一篇文章可能属于多个类别,比如科技、政治、娱乐等。那么什么是 MultiLabel 分类呢?
MultiLabel 分类就是将一组特征分配给多个类别的任务。每个实例可以属于一个类别,也可以属于多个类别。MultiLabel 分类适用于许多领域,如文本分类、音频分类、图片分类等等。现在,我们将介绍一些常用的 MultiLabel 分类模型和技术。
Binary Relevance 是 MultiLabel 分类问题中最简单的解决方案之一。它将每个标签看作一个独立的二元分类问题。假设我们有 $n$ 个标签,那么我们训练 $n$ 个二元分类器,每个分类器都是专门用于预测一个标签的存在或不存在。然后对于一组测试数据,每个分类器都会对每个标签进行预测,这样就可以得到每个样本的标签集合。这种方法虽然简单,但缺点也很明显,由于它将每个标签都视为相互独立的,因此它可能无法利用标签之间的关系来提高准确率。
通过对单个标签之间的关系进行编码,Classifier Chains 能够应对多个标签之间的交互作用。该算法通过将二元分类器串联在一起来捕捉标签之间的依赖性。这些分类器是根据在训练数据中选择的顺序连接起来的,每个分类器的输入向量包含上一个分类器的预测以及该标签的特征。对于链中的每个标签,一个二元分类器用其输入向量进行训练和测试。 与 BR 不同的是,CC 可以提高准确性并利用标签之间的关系,但是由于标签之间的关系非常复杂,因此 CC 并不一定总是表现最优。
Label Powerset 是一种将多类问题转化为二进制问题的技术。它将所有标签的组合看作单类,并将每个数据映射到对应的二进制向量中。如果一个实例属于标签集合${t_1, t_2, ... , t_n}$,则它将被映射为二进制向量$(x_i=[t_i\in S])_{i=1}^{n}$ ,其中 $S$ 为样本的标签集合。之后,我们可以使用一个二元分类器来训练每个标签集合。Label Powerset 可以保留标签之间的关系和相互作用。
神经网络可以很好地捕捉多标签分类问题中的复杂关系,常见的有CNN、RNN、LSTM等。在多标签分类中使用神经网络需要注意的是,我们需要选择适当的损失函数,如二元交叉熵损失、交叉熵损失等等。
MultiLabel 分类是一种将每个实例与一组标签相关联的分类问题。三种解决方案 BR、CC 和 LP 都是通过将多标签问题转化为多个单标签问题的方式来解决的。在使用这些模型时,我们需要选择适当的算法和特征,并针对多标签数据集选择适当的评估指标,如 Precision、Recall、F1 Score 等等。