机器学习--分类算法中单标签与多标签的问题

目录

一 单标签问题(二分类算法进行预测单标签多分类)

1 ovo(one versus one,一对一)

2 ovr(one versus rest,一对多)

3 error correcting output codes(纠错码机制,多对多)

二 多标签问题(分类算法预测多标签问题)

1 转换策略(Problem Transform Methods)

1)Binary Relevance(first-order)

2)Classifier Chains(high-order)

3)Calibrated Label Ranking(second-order)

2 算法适应(Algorithm Adaption)


注意:正例记作1,负例记作-1

一 单标签问题(二分类算法进行预测单标签多分类)

1 ovo(one versus one,一对一)

第一步:将k个类别的样本,进行两两类别样本组合,产生机器学习--分类算法中单标签与多标签的问题个训练数据子集

第二步:使用组合之后的数据子集训练模型,产生机器学习--分类算法中单标签与多标签的问题个训练模型

第三步:将分类器进行融合,采用多数投票法,产生预测值

2 ovr(one versus rest,一对多)

第一步:将第一个类别作为正例,其他所有类别作为负例,依次遍历剩下类别样本,从而产生k个数据子集

第二步:对每个数据子集训练模型,产生k个训练模型

第三步:将分类器进行融合

  • 当只有一个正例输出的时候,该正例对应的类别,即为当前样本类别
  • 当有多个正例输出的时候,根据分类器的置信度指标,选择最大置信度指标的正例输出,作为当前样本类别

注意:

置信度:常常使用精确率或者召回率,但是一般选择输出最大值作为置信度标准

3 error correcting output codes(纠错码机制,多对多)

第一步:编码阶段(训练阶段)

  • 对k个类别数据,进行M次划分,产生M个数据子集,且每一次划分,将一部分数据作为正例,另一部分作为负例
  • 对每个数据子集进行训练模型,产生M个模型
  • 每个分类器模型预测值都对应空间上一个点

第二步:解码阶段(预测阶段)

  • 将测试样本对应的点和类别对应的点求欧式距离
  • 选择距离最小值对应的类别,作为预测值

注意:如图所示,M=5

机器学习--分类算法中单标签与多标签的问题

二 多标签问题(分类算法预测多标签问题)

注意:根据多标签业务的复杂性,可以分为两大类型

  • 第一种类型:多标签之间不存在依赖关系
  • 第二种类型:多标签之间存在依赖关系

1 转换策略(Problem Transform Methods)

1)Binary Relevance(first-order)

第一:算法原理

本质上将多标签问题进行分解,将其转化为q个二元分类问题(q为类别个数),每个二元分类器预测一个类别

第二:算法流程

  • 第一步:确定各个标签对应的数据子集

机器学习--分类算法中单标签与多标签的问题:是指将机器学习--分类算法中单标签与多标签的问题对应的多标签进行机器学习--分类算法中单标签与多标签的问题二元编码之后的集合

机器学习--分类算法中单标签与多标签的问题

  • 第二步:构建q个分类器

机器学习--分类算法中单标签与多标签的问题

  • 第三步:预测

机器学习--分类算法中单标签与多标签的问题

第三:算法优劣

  • 优势

多标签之间不存在依赖关系,模型效果不错

  • 劣势

多标签之间存在依赖关系,导致模型泛化能力差

类别数目较多的时候,创建模型多,导致效率低

2)Classifier Chains(high-order)

第一:核心原理

本质上将多标签问题进行分解,将其转化为q个二元分类器链的形式(q为类别个数)

第二:算法流程

  • 第一步:将多标签顺序进行重排列,得到机器学习--分类算法中单标签与多标签的问题

重排列多标签顺序是为了确定标签之间的依赖关系(可以依据业务理解,也可以采用交叉验证)

  • 第二步:确定各个标签对应的数据子集(特征属性含标签)

机器学习--分类算法中单标签与多标签的问题:是指将机器学习--分类算法中单标签与多标签的问题对应的多标签进行机器学习--分类算法中单标签与多标签的问题二元编码之后的集合

机器学习--分类算法中单标签与多标签的问题

机器学习--分类算法中单标签与多标签的问题

  • 第三步:建立q个分类器

机器学习--分类算法中单标签与多标签的问题

  • 第四步:预测

机器学习--分类算法中单标签与多标签的问题

机器学习--分类算法中单标签与多标签的问题

机器学习--分类算法中单标签与多标签的问题

第三:算法优劣

  • 优势:

考虑了标签之间的依赖关系,模型泛化能力强

  • 劣势:

标签之前的依赖关系难以确定(只能依据业务理解或者交叉验证)

3)Calibrated Label Ranking(second-order)

第一:算法原理

本质上将多标签问题进行分解,将其转化为标签排序问题,最终的标签就是排序后最大的几个标签值

第二:算法流程

  • 第一步:确定各个标签对应的数据子集

机器学习--分类算法中单标签与多标签的问题:是指将机器学习--分类算法中单标签与多标签的问题对应的多标签进行机器学习--分类算法中单标签与多标签的问题二元编码之后的集合

机器学习--分类算法中单标签与多标签的问题(标签两两组合)

机器学习--分类算法中单标签与多标签的问题

机器学习--分类算法中单标签与多标签的问题

机器学习--分类算法中单标签与多标签的问题

  • 第二步:建立机器学习--分类算法中单标签与多标签的问题个分类器

机器学习--分类算法中单标签与多标签的问题

  • 第三步:预测

机器学习--分类算法中单标签与多标签的问题

机器学习--分类算法中单标签与多标签的问题

机器学习--分类算法中单标签与多标签的问题

机器学习--分类算法中单标签与多标签的问题

机器学习--分类算法中单标签与多标签的问题

机器学习--分类算法中单标签与多标签的问题

机器学习--分类算法中单标签与多标签的问题

第三:算法优劣

  • 优势:考虑标签两两组合,泛化能力较好
  • 劣势:未考虑标签之间相互依赖关系

2 算法适应(Algorithm Adaption)

直接将单标签算法应用到多标签问题上,具体实现,有时间更新