前言
虽然不是搞分类的,但是还是看看多标签和多分类的区别。为了避免自己的错误理解, 当然是选择原谅他啊…….找正规文档看哇. 以下翻译分别来自scikit-learn.org和 维基 喂鸡百科
国际惯例,贴上来源:
Multiclass and multilabel algorithms
Multi-label classification
Multiclass classification
scikit-learn介绍
多类分类(Multiclass classification): 表示分类任务中有多个类别, 比如对一堆水果图片分类, 它们可能是橘子、苹果、梨等. 多类分类是假设每个样本都被设置了一个且仅有一个标签: 一个水果可以是苹果或者梨, 但是同时不可能是两者
多标签分类(Multilabel classification): 给每个样本一系列的目标标签. 可以想象成一个数据点的各属性不是相互排斥的(一个水果既是苹果又是梨就是相互排斥的), 比如一个文档相关的话题. 一个文本可能被同时认为是宗教、政治、金融或者教育相关话题.
多输出回归(Multioutput classification): 给每个样本一系列的目标值. 可以被想象成对每个数据点预测多个属性, 比如在某个定位的风向和风速
多输出-多分类分类(Multioutput-multiclass classification) 和 多任务分类(Multi-task classification):意味着一个单一的评估器需要处理多个联合分类任务. 这是多标签分类任务(只考虑二院分类)和多类分类任务的推广, 输出格式是2d阵列.
- 每一个输出变量的标签机可以是不同的. 比如一个样本的第一输出变量可以是有限类别中是
pear
的概率值, 第二个输出变量可能是有限颜色中是blue
或者green
的概率. - 这意味着任意的支持多输出多类或者多任务分类任务的分类器, 均支持作为一种特殊情况的多标签分类任务. 多任务分类与多输出分类任务相似, 但是有不同的模型公式.
维基介绍
在机器学习中, 多标签分类(multi-label classification) 和与其极度相关的多输出分类(multi-output classification)是分类问题的变种, 每个实例可能会设置多个标签
多标签分类(Multi-label classification)
- 概念
多标签分类是多类分类的一般化, 多类分类是将实例精确分类到一个或者多个类别中的单一标签问题, 在多标签问题中, 没有限制说一个实例可以被设置多少个类别.
正规点讲就是, 多标签分类是找到一个模型将输入x映射到二值向量y 中.可以将多标签问题转化成一系列的二元分类问题, 然后可以使用多个单标签分类器进行处理. - 多标签分类采用的算法
- boosting: AdaBoost.MH和AdaBoost.MR是
AdaBoost
的多标签数据扩展版本 - k近邻:ML-kNN是将
k-NN
分类器扩展到多标签数据 - 决策树
- 向量输出的核方法
- 神经网络:BP-MLL是反向传播算法的多标签学习问题的扩展
- boosting: AdaBoost.MH和AdaBoost.MR是
多类分类(Multiclass classification)
- 概念
在机器学习中, 多类(multiclass)或者多项式(multinomial)分类是将实例分配给一个而非多于两个类别的种类(将实例分类给两类中的一个称为二元分类binary classification). 很多分类算法自身支持多于两类的使用, 剩下的就是二元分类算法了, 这就可以通过很多策略去转换成多项式分类器.
要将多类分类与多标签分类区分开, 后者是一个类别有多个标签需要被预测 - 多类分类采用的算法
- 二元分类问题转化
- 一对多(one -vs.- rest)
- 一对一(one -vs.- one)
- 二元问题的扩展
- 神经网络: 多层感知器就是多类问题的扩展,输出N个二值神经元就可以编程多类任务
- 极限学习机(Extreme Learning Machines (ELM))
- k近邻: 最古老的非参数分类算法
- 朴素贝叶斯
- 决策树
- 支持向量机
- 层级分类
将多类分类问题的输出空间分割为一个树. 每个父节点被多个子节点分割, 重复这个过程直到每个子节点仅仅代表一类.
- 二元分类问题转化