MultiClass VS MultiLabels

1.多类别分类和多标签分类的区别

有多个类别,但每个实例只分配一个,因此这些问题被称为多类分类(MultiClass)问题

        例如电影限制级别,一部电影只会被划分成一种限制级别

有多个类别,但每个实例可以分配到多个不同类别(1或不定数量),因此这些问题被称为多标签分类(MultiLabels)问题

        例如电影的主题,一部电影可以被同时划分为喜剧片和动作片

 

2.解决多标签分类问题的技术

2.1问题转换

2.1.1二元关联

这是最简单的技术,它基本上把每个标签当作单独的一个类分类问题。例如,让我们考虑如下所示的一个案例。我们有这样的数据集,X是独立的特征,Y是目标变量。

解决多标签分类问题(包括案例研究)

在二元关联中,这个问题被分解成4个不同的类分类问题,如下图所示。

解决多标签分类问题(包括案例研究)

 它是最简单和有效的方法,但是这种方法的惟一缺点是它不考虑标签的相关性,因为它单独处理每个目标变量。

 

 2.1.2分类器链

 

在这种情况下,第一个分类器只在输入数据上进行训练,然后每个分类器都在输入空间和链上的所有之前的分类器上进行训练。
让我们试着通过一个例子来理解这个问题。在下面给出的数据集里,我们将X作为输入空间,而Y作为标签。

解决多标签分类问题(包括案例研究)

在分类器链中,这个问题将被转换成4个不同的标签问题,就像下面所示。黄色部分是输入空间,白色部分代表目标变量。

解决多标签分类问题(包括案例研究)

这与二元关联非常相似,唯一的区别在于它是为了保持标签相关性而形成的。那么,让我们尝试使用multi-learn库来实现它。

 

2.1.3标签Powerset

在这方面,我们将问题转化为一个多类问题,一个多类分类器在训练数据中发现的所有唯一的标签组合上被训练。让我们通过一个例子来理解它。

解决多标签分类问题(包括案例研究)

在这一点上,我们发现x1和x4有相同的标签。同样的,x3和x6有相同的标签。因此,标签powerset将这个问题转换为一个单一的多类问题,如下所示。

解决多标签分类问题(包括案例研究)

唯一的缺点是随着训练数据的增加,类的数量也会增加。因此,增加了模型的复杂性,并降低了精确度。

 

2.2改编算法

改编算法来直接执行多标签分类,而不是将问题转化为不同的问题子集。例如,kNN的多标签版本是由MLkNN表示的。

在一些算法中,例如随机森林(Random Forest)和岭回归(Ridge regression),Sci-kit learn提供了多标签分类的内置支持。因此,你可以直接调用它们并预测输出。

2.3集成方法

集成总是能产生更好的效果。Scikit-Multilearn库提供不同的组合分类功能,你可以使用它来获得更好的结果。

对于直接实现,你可以查看:http://scikit.ml/api/classify.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值