Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Geek AI编译

何为多标签分类?这里有几种实用的经典方法

这可能是最实用的多标签分类小贴士。

众所周知,二分类任务旨在将给定的输入分为 0 和 1 两类。而多标签分类(又称多目标分类)一次性地根据给定输入预测多个二分类目标。例如,模型可以预测给定的图片是一条狗还是一只猫,同时预测其毛皮是长还是短。

在多分类任务中,预测目标是互斥的,这意味着一个输入可以对应于多个分类。本文将介绍一些可能提升多标签分类模型性能的小技巧。

模型评估函数

通过在「每一列」(分类标签)上计算模型评估函数并取得分均值,我们可以将大多数二分类评估函数用于多标签分类任务。对数损失或二分类交叉熵就是其中一种评估函数。为了更好地考虑到类别不均衡现象,我们可以使用 ROC-AUC 作为评估函数。

图 1:ROC-AUC 曲线

建模技巧

在介绍构建特征的技巧之前,本文将介绍一些设计适用于多标签分类场景的模型的小技巧。

对于大多数非神经网络模型而言,我们唯一的选择是为每个目标训练一个分类器,然后将预测结果融合起来。为此,「scikit-learn」程序库提供了一个简单的封装类「OneVsRestClassifier」。尽管这个封装类可以使分类器能够执行多标签任务,但我们不应采用这种方法,其弊端如下:(1)我们会为每个目标训练一个新模型,因此训练时间相对较长。(2)模型无法学习不同标签之间的关系或标签的相关性。

第二个问题可以通过执行一个两阶段训练过程来解决。其中,我们将目标的预测结果和原始特征相结合,作为第二阶段训练的输入。这样做的缺点是,由于需要训练的模型数量是之前的两倍,训练时间将大幅度提升。神经网络(NN)则适用于这种场景,其中标签的数量即为网络中输出神经元的数量。我们可以直接将任意的二分类损失应用于神经网络模型,同时该模型会输出所有的目标。此时,我们只需要训练一个模型,且网络可以通过输出神经元学习不同标签的相关性,从而解决上文中提出的非神经网络模型的两个问题。

图 2:神经网络

有监督的特征选择方法

在开始特征工程特征选择之前,需要对特征进行归一化和标准化处理。使用「scikit-learn」库中的「Quantile Transformer」将减小数据的偏度,使特征服从正态分布。此外,还可以通过对数据采取「减去均值,除以标准差」的操作,对特征进行标准化处理。该过程与「Quantile Transformer」完成了类似的工作,其目的都是对数据进行变换,使数据变得更加鲁棒。然而,「Quantile Transformer」的计算开销较高。

大多数算法都是为单一目标设计的,因此使用有监督特征选择方法稍微有些困难。为了解决这个问题,我们可以将多标签分类任务转化为多类分类问题。「Label Powerset」就是其中一种流行的解决方案,它将训练数据中的每一个独特的标签组合转化为一个类。「scikit-multilearn」程序库中包含实现该方案的工具。

图 3:Label Powerset 方法

在完成转换后,我们可以使用「信息增益」和「卡方」等方法来挑选特征。尽管这种方法是可行的,但是却很难处理上百甚至上千对不同的独特标签组合。此时,使用无监督特征选择方法可能更合适。

无监督特征选择方法

在无监督方法中,我们不需要考虑多标签任务的特性,这是因为无标签方法并不依赖于标签。典型的无监督特征选择方法包括:
  • 主成分分析(PCA)或其它的因子分析方法。此类方法会去除掉特征中的冗余信息,并为模型抽取出有用的特征。请确保在使用 PCA 之前对数据进行标准化处理,从而使每个特征对分析的贡献相等。另一个使用 PCA 的技巧是,我们可以将该算法简化后的数据作为模型可选择使用的额外信息与原始数据连接起来,而不是直接使用简化后的数据。

  • 方差阈值。这是一种简单有效的降低特征维度的方法。我们丢弃具有低方差或离散型的特征。可以通过找到一个更好的选择阈值对此进行优化,0.5 是一个不错的初始阈值。

  • 聚类。通过根据输入数据创建聚类簇来构建新特征,然后将相应的聚类分配给每一行输入数据,作为一列新的特征。

图 4:K - 均值聚类

上采样方法

分类数据高度不均衡时,可以使用上采样方法为稀有类生成人造样本,从而让模型关注稀有类。为了在多标签场景下创建新样本,我们可以使用多标签合成少数类过采样技术(MLSMOTE)。

代码链接:https://github.com/niteshsukhwani/MLSMOTE

该方法由原始的 SMOTE 方法修改而来。在生成少数类的数据并分配少数标签后,我们还通过统计每个标签在相邻数据点中出现的次数来生成其它相关的标签,并保留出现频次高于一半统计的数据点的标签。

原文链接:https://andy-wang.medium.com/bags-of-tricks-for-multi-label-classification-dc54b87f79ec
入门经典方法多标签分类
1
相关数据
交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

分类数据技术

一种特征,拥有一组离散的可能值。以某个名为 house style 的分类特征为例,该特征拥有一组离散的可能值(共三个),即 Tudor, ranch, colonial。通过将 house style 表示成分类数据,相应模型可以学习 Tudor、ranch 和 colonial 分别对房价的影响。 有时,离散集中的值是互斥的,只能将其中一个值应用于指定样本。例如,car maker 分类特征可能只允许一个样本有一个值 (Toyota)。在其他情况下,则可以应用多个值。一辆车可能会被喷涂多种不同的颜色,因此,car color 分类特征可能会允许单个样本具有多个值(例如 red 和 white)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

偏度技术

在概率论和统计学中,偏度衡量实数随机变量概率分布的不对称性。偏度的值可以为正,可以为负或者甚至是无法定义。在数量上,偏度为负(负偏态)就意味着在概率密度函数左侧的尾部比右侧的长,绝大多数的值(包括中位数在内)位于平均值的右侧。偏度为正(正偏态)就意味着在概率密度函数右侧的尾部比左侧的长,绝大多数的值(但不一定包括中位数)位于平均值的左侧。偏度为零就表示数值相对均匀地分布在平均值的两侧,但不一定意味着其为对称分布。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

卡方技术

卡方常常与卡方分布和卡方检验联系在一起: 卡方分布(chi-square distribution)是常用于概率论和统计检验中的一种概率分布;卡方检验是(chi-square test)是一种基于卡方分布的常用的统计检验,其统计量在原假设(null hypothesis)成立时服从卡方分布。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

上采样技术

在数字信号处理中,上采样、扩展和内插是与多速率数字信号处理系统中的重采样过程相关的术语。 上采样可以与扩展同义,也可以描述整个扩展和过滤(插值)过程。

主成分分析技术

在多元统计分析中,主成分分析(Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。

特征选择技术

在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择、属性选择或变量子集选择。 它是指:为了构建模型而选择相关特征(即属性、指标)子集的过程。

因子分析技术

因子分析在统计学中是一种常用的降维方法,目的在于用更少的、未观测到的变量(factor)描述观测到的、相关的变量。更准确的来说,因子分析假设在观测到的变量间存在某种相关关系,从观测变量的矩阵内部相关关系出发找到潜变量(latent variables)从而使得潜变量和观测变量之间的关系成立

信息增益技术

在决策树学习中,信息增益比是信息增益与固有信息的比率。 它被用来通过在选择属性时考虑分支的数量和大小来减少对多值属性的偏见.

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

推荐文章
暂无评论
暂无评论~