多标签分类概述
前言
本文介绍了多标签分类的基本概念和评估指标,总结了可用于提高多标签分类模型性能的多种方法:建模技巧、监督特征选择方法、无监督特征选择方法和上采样方法。
本文来自公众号CV技术指南的
关注公众号CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。
什么是多标签分类?
众所周知,二元分类将给定的输入分为两类,1 或 0。多标签或多目标分类从给定的输入中同时预测多个二元目标。例如,我们的模型可以预测给定的图片是狗还是猫,以及它的皮毛是长还是短。
目标在多标签分类中是互斥的,这意味着一个输入可以属于多个类。
本文将总结一些可以提高多标签分类模型性能的常用方法。
评分指标
大多数用于二元分类的指标可以通过计算每列的指标,然后取分数的平均值来应用于多标签。我们可以使用的一个指标是对数损失或二元交叉熵。对于考虑类不平衡的更好度量,我们可以使用 ROC-AUC。
ROC-AUC曲线
建模技巧
在我们开始对特征进行花哨的技巧之前,分享一些关于设计适合多标签分类情况的模型的技巧。
对于大多数非神经网络模型,唯一的选择是为每个目标训练一个分类器,然后结合预测。库 scikit-learn 提供了一个简单的包装类来执行此操作,即 OneVsRestClassifier。
尽管这将使分类器能够执行多标签任务,但这不是应该采用的方法。这有几个缺点。首先,训练时间会比较长,至于每个目标,我们都在训练一个新的模型。其次,模型无法学习不同标签之间的关系或标签相关性。
第二个问题可以通过执行两阶段训练来解决,我们将目标的预测与原始特征相结合作为第二阶段训练的输入数据。这样做的缺点是训练时间将大大增加,因为现在您必须训练两倍于以前的模型数量。
神经网络更适合这种情况。标签的数量是网络中输出神经元的数量。现在我们可以将任何二元分类损失应用于模型,模型将同时输出所有目标。这解决了非神经网络模型的两个问题,因为我们只需要训练一个模型,网络可以通过输出神经元学习不同的标签相关性。
监督特征选择方法
在开始任何特征工程或选择之前,特征应该被规范化或标准化。使用 Quantile Transformer 将减少数据的偏度,使特征服从正态分布。另一种选择是标准化特征,这可以通过从数据中减去均值,然后除以标准差来完成。与 Quantile Transformer 相比,这完成了类似的工作,两者都旨在将数据转换为更鲁棒,但 Quantile Transformer 的计算成本更高。
在这种情况下使用监督特征选择方法有点棘手,因为大多数算法都是为单个目标设计的。为了解决这个问题,我们可以将多标签情况转换为多类问题。一种流行的方法是 LabelPowerset,其中将训练数据的每个唯一标签组合转换为一个类。scikit-multilearn 库为此提供了工具。
工具链接:
http://scikit.ml/api/skmultilearn.problem_transform.lp.html
变换后,我们可以使用信息增益和chi2等方法来选择特征。虽然这种方法是可行的,但当我们有数百甚至数千种不同的独特标签组合时,事情就会变得棘手,这就是无监督特征选择方法可能更好的地方。
无监督特征选择方法
在无监督方法中,我们不需要考虑多标签情况的性质,因为无监督方法不依赖于标签。
这里有一些算法:
-
主成分分析或其他类似的因子分析方法。这会从特征中删除冗余信息并为模型提取有用的见解。对此的一个重要说明是,确保在应用 PCA 之前先对数据进行标准化,因为这样每个特征对分析的贡献都是相同的。使用 PCA 的另一个技巧是,我们可以将这些减少的特征连接回原始数据,作为模型可以选择使用的额外信息,而不是采用算法提供的缩减特征。
-
方差阈值。这是一种降低特征维度的简单而有效的方法。我们丢弃具有低方差或分布的特征。这可以通过找到更好的选择阈值来优化,一般使用0.5作为初始阈值。
-
聚类。我们可以通过从输入数据创建集群来创建新特征,然后将相应的集群分配给输入数据的每一行作为新的特征列。
KMeans Clustering
上采样方法
当我们的分类数据高度不平衡时使用上采样方法,然后我们为稀有类生成人工样本,以便模型专注于稀有类。为了在多标签情况下创建新样本,我们可以使用 MLSMOTE 或多标签合成少数过采样技术。
MLSMOTE项目地址:
https://github.com/niteshsukhwani/MLSMOTE
这是对原始 SMOTE 方法的修改。在这种情况下,在我们为少数类生成数据并分配相应的少数标签后,我们还通过计算每个标签在相邻数据点中出现的次数来生成与数据点相关联的其他标签,并取具有 超过一半的数据点计数的频率。
作者:Andy Wang
编译:CV技术指南
原文链接:
https://andy-wang.medium.com/bags-of-tricks-for-multi-label-classification-dc54b87f79ec
欢迎关注公众号 CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。
在公众号中回复关键字 “入门指南“可获取计算机视觉入门所有必备资料。
其它文章
在公众号《CV技术指南》中回复“技术总结”可获取以上所有总结系列文章的汇总pdf