机器学习_14_多分类及多标签分类算法

文章目录

  • 1 单标签二分类问题
    • 1.1 单标签二分类算法原理
    • 1.2 Logistic算法原理
  • 2 单标签多分类问题
    • 2.1 单标签多分类算法原理
    • 2.2 Softmax算法原理
    • 2.3 ovo
    • 2.4 ovr
    • 2.5 OvO和OvR的区别
    • 2.6 Error Correcting
  • 3 多标签算法问题
    • 3.1 Problem Transformation Methods
      • 3.1.1 Binary Relevance
      • 3.1.2 Classifier Chains
      • 3.1.3 Calibrated Label Ranking
    • 3.2 Algorithm Adaptation
      • 3.2.1 ML-kNN
      • 3.2.2 ML-DT

1 单标签二分类问题

1.1 单标签二分类算法原理

  • 单标签二分类这种问题是我们最常见的算法问题,主要是指label标签的取值只有两种,并且算法中只有一个需要预测的label标签;直白来讲就是每个实例的可能类别只有两种(A or B);此时的分类算法其实是在构建一个分类线将数据划分为两个类别。常见的算法:Logistic、SVM、KNN等

在这里插入图片描述

1.2 Logistic算法原理

在这里插入图片描述

2 单标签多分类问题

2.1 单标签多分类算法原理

  • 单标签多分类问题其实是指待预测的label标签只有一个,但是label标签的取值可能有多种情况;直白来讲就是每个实例的可能类别有K种(t1,t2,…tk,k≥3);常见算法:Softmax、KNN、决策树等;

在这里插入图片描述

2.2 Softmax算法原理

在这里插入图片描述

在实际的工作中,如果是一个多分类的问题,我们可以将这个待求解的问题转换 为二分类算法的延伸,即将多分类任务拆分为若干个二分类任务求解,具体的策 略如下:

  • One-Versus-One(ovo):一对一
  • One-Versus-All / One-Versus-the-Rest(ova/ovr): 一对多
  • Error Correcting Output codes(纠错码机制):多对多

在这里插入图片描述

2.3 ovo

原理:将K个类别中的两两类别数据进行组合,然后使用组合后的数据训练出来一个模型,从而产生K(K-1)/2个分类器,将这些分类器的结果进行融合,并将分类器的预测结果使用多数投票的方式输出最终的预测结果值。

在这里插入图片描述
https://scikit-learn.org/0.19/modules/generated/sklearn.multiclass.OneVsOneClassifier.html#sklearn.multiclass.OneVsOneClassifier

2.4 ovr

原理:在一对多模型训练中,不是两两类别的组合,而是将每一个类别作为正例,其它剩余的样例作为反例分别来训练K个模型;然后在预测的时候,如果在这K个模型中,只有一个模型输出为正例,那么最终的预测结果就是属于该分类器的这个类别;如果产生多个正例,那么则可以选择根据分类器的置信度作为指标,来选择置信度最大的分类器作为最终结果,常见置信度:精确度、召回率
在这里插入图片描述
https://scikit-learn.org/0.19/modules/generated/sklearn.multiclass.OneVsRestClassifier.html#sklearn.multiclass.OneVsRestClassifier

2.5 OvO和OvR的区别

在这里插入图片描述

2.6 Error Correcting

原理:将模型构建应用分为两个阶段:编码阶段和解码阶段;编码阶段中对K个类别中进行M次划分,每次划分将一部分数据分为正类,一部分数据分为反类,每次划分都构建出来一个模型,模型的结果是在空间中对于每个类别都定义了一个点;解码阶段中使用训练出来的模型对测试样例进行预测,将预测样本对应的点和类别之间的点求距离,选择距离最近的类别作为最终的预测类别

在这里插入图片描述

https://scikit-learn.org/0.19/modules/generated/sklearn.multiclass.OutputCodeClassifier.html#sklearn.multiclass.OutputCodeClassifier

3 多标签算法问题

Multi-Label Machine Learning(MLL算法)是指预测模型中存在多个y值,具体分为两类不同情况:

  1. 多个待预测的y值;
  2. 在分类模型中, 一个样例可能存在多个不固定的类别。

根据多标签业务问题的复杂性,可以将问题分为两大类:

  1. 待预测值之间存在相互的依赖关系;
  2. 待预测值之间是不存在依赖关系的。

对于这类问题的解决方案可以分为两大类:

  1. 转换策略(Problem Transformation Methods);
  2. 算法适应(Algorithm Adaptation)。

在这里插入图片描述

3.1 Problem Transformation Methods

Problem Transformation Methods又叫做策略转换或者问题转换,是一种将多标签的分类问题转换成为单标签模型构造的问题,然后将模型合并的一种方式,主要有以下几种方式:

  • Binary Relevance(first-order)
  • Classifier Chains(high-order)
  • Calibrated Label Ranking(second-order)

3.1.1 Binary Relevance

Binary Relevance的核心思想是将多标签分类问题进行分解,将其转换为q个二元分类问题,其中每个二元分类器对应一个待预测的标签。(q为y的数目,也就是标签的数目)

在这里插入图片描述

Binary Relevance方式的优点如下:

  • 实现方式简单,容易理解;
  • 当y值之间不存在相关的依赖关系的时候,模型的效果不错。

缺点如下:

  • 如果y直接存在相互的依赖关系,那么最终构建的模型的泛化能力比较弱;
  • 需要构建q个二分类器,q为待预测的y值数量,当q比较大的时候,需要构建的模型 会比较多。

3.1.2 Classifier Chains

Classifier Chains的核心思想是将多标签分类问题进行分解,将其转换成为一个二元分类器链的形式,其中链后的二元分类器的构建是在前面分类器预测结果的基础上的。在模型构建的时候,首先将标签顺序进行shuffle打乱排序操作,然后按照从头到尾分别构建每个标签对应的模型。

在这里插入图片描述
在这里插入图片描述

Classifier Chains方式的优点如下:

  • 实现方式相对比较简单,容易理解;
  • 考虑标签之间的依赖关系,最终模型的泛化能力相对于Binary Relevance方式构建的模型效果要好。

缺点如下:

  • 很难找到一个比较适合的标签依赖关系。

https://scikit-learn.org/0.19/modules/generated/sklearn.multioutput.ClassifierChain.html#sklearn.multioutput.ClassifierChain

3.1.3 Calibrated Label Ranking

Calibrated Label Ranking的核心思想是将多标签分类问题进行分解,将其转换为标签的排序问题,最终的标签就是排序后最大的几个标签值。

在这里插入图片描述

Calibrated Label Ranking 方式的优点如下:

  • 考虑了标签两两组合的情况,最终的模型相对来讲泛化能力比较好。

缺点如下:

  • 只考虑两两标签的组合,没有考虑到标签与标签之间的所有依赖关系。

https://scikit-learn.org/0.19/modules/generated/sklearn.multioutput.MultiOutputClassifier.html#sklearn.multioutput.MultiOutputClassifier

3.2 Algorithm Adaptation

Algorithm Adaptation又叫做算法适应性策略,是一种将现有的单标签的算法直接应用到多标签上的一种方式,主要有以下几种方式:

  • ML-kNN (ML:多个标签的意思)
  • ML-DT

3.2.1 ML-kNN

k近邻算法(k-Nearest Neighbour, KNN)的思想:如果一个样本在特征空间中的k个最相似(即特征空间中距离最近)的样本中的大多数属于某一个类别,那么该样本属于这个类别。

**ML-kNN的思想:**对于每一个实例来讲,先获取距离它最近的k个实例,然后使用这些实例的标签集合,通过最大后验概率(MAP)来判断这个实例的预测标签集合的值。

**最大后验概率(MAP):**其实就是在最大似然估计(MLE)中加入了这个要估计量 的先验概率分布。

在这里插入图片描述

3.2.2 ML-DT

ML-DT是使用决策树处理多标签内容,核心在于给予更细粒度的信息熵增益准则来构建这个决策树模型。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/665439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kubernetes基本概念和操作

基本概念和操作 1.Namespace1.1概述1.2应用示例 2.Pod2.1概述2.2语法及应用示例 3.Label3.1概述3.2语法及应用示例 4.Deployment4.1概述4.2语法及应用示例 5.Service5.1概述5.2语法及应用示例5.2.1创建集群内部可访问的Service5.2.2创建集群外部可访问的Service5.2.3删除服务5.…

Deepin如何开启与配置SSH实现无公网ip远程连接

文章目录 前言1. 开启SSH服务2. Deppin安装Cpolar3. 配置ssh公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 前言 Deepin操作系统是一个基于Debian的Linux操作系统,专注于使用者对日常办公、学习、生活和娱乐的操作体验的极致&#xff0…

【JavaScript】前端攻击

前端攻击 1. CSRF的基本概念、缩写、全称 CSRF(Cross-site request forgery):跨站请求伪造。 从上图可以看出,要完成一次CSRF攻击,受害者必须满足两个必要的条件: 登录受信任网站A,并在本地生…

09.领域驱动设计:深入学习6本经典推荐书籍

目录 前言 1、《领域驱动设计:软件核心复杂性应对之道》 1.作者简介 2.内容简介 3.推荐理由 4.豆瓣链接 ​编辑 2、《实现领域驱动设计》 1.作者简介 2.内容简介 3.推荐理由 4.豆瓣链接 ​编辑 3、《领域驱动设计精粹》 1.作者简介 2.内容简介 3.推…

深度学习和大数据技术的进步在自然语言处理领域的应用

文章目录 每日一句正能量前言一、深度学习在NLP中的应用二、大数据技术在NLP中的应用三、深度学习和大数据技术的影响四、应用场景后记 每日一句正能量 努力学习,勤奋工作,让青春更加光彩。 前言 随着深度学习和大数据技术的迅猛发展,自然语…

Qt加载网页崩溃 ASSERT:“m_adapterClient“ in file ...

1、软件启动后加载网页无异常,点击按钮,加载新网页时崩溃 崩溃代码: QWebEngineView *createWindow(QWebEnginePage::WebWindowType type) { Q_UNUSED(type); return this; } 2、原因 Qt只是调用谷歌的浏览器引擎&#xff…

iPad“粘贴自”字样不消失解决办法

iPad“粘贴自”字样不消失解决办法 好无语,写论文主要就靠iPad看资料,复制粘帖的时候卡死搞得我无敌焦躁,问了🍎支持的客服才解决,方法如下:1.音量上键按一下 2.音量下键按一下 3.一直按开关机键直到出现苹…

031 递归

何为递归 示例 public static void main(String[] args) {System.out.println(fn(5)); }static int fn(int a){return a 1 ? 1 : a * fn(a - 1); }

浅析Redis③:命令处理之数据返回Client(下)

写在前面 Redis作为我们日常工作中最常使用的缓存数据库,其重要性不言而喻,作为普通开发者,我们在日常开发中使用Redis,主要聚焦于Redis的基层数据结构的命令使用,很少会有人对Redis的内部实现机制进行了解&#xff0c…

华为鸿蒙系统第三方桌面手机管家版本号12.0.1.330

起因 放假在家,准备把自己的旧手机给家里老人看小视频,但是老人不懂智能手机的复杂操作,就想换成《极简桌面》这个软件,在“设置->默认应用->桌面”,但是华为为了“保护用户的隐私以及合法权益”禁用了第三方启…

202417读书笔记|《画•大师 阿尔丰斯•穆夏》——在明亮大胆的色调中熠熠生辉

202417读书笔记|《画•大师 阿尔丰斯•穆夏》——在明亮大胆的色调中熠熠生辉 这是读完的第二本或者第三本穆夏的画集。很赞,他的绘画风格,构图,元素,取大自然的月桂树,常青藤,🌙的不同形态&…

链表与二叉树-数据结构

链表与二叉树-数据结构 创建叶子node节点建立二叉树三元组:只考虑稀疏矩阵中非0的元素,并且存储到一个类(三元组)的数组中。 创建叶子node节点 class Node{int no;Node next;public Node(int no){this.nono;} } public class Lb…

Fink CDC数据同步(三)Flink集成Hive

1 目的 持久化元数据 Flink利用Hive的MetaStore作为持久化的Catalog,我们可通过HiveCatalog将不同会话中的 Flink元数据存储到Hive Metastore 中。 利用 Flink 来读写 Hive 的表 Flink打通了与Hive的集成,如同使用SparkSQL或者Impala操作Hive中的数据…

流畅的Python(七)-函数装饰器和闭包

一、核心要义 主要解释函数装饰器的工作原理,包括最简单的注册装饰器和较复杂的参数化装饰器。同时,因为装饰器的实现依赖于闭包,因此会首先介绍闭包存在的原因和工作原理。 二、代码示例 1、变量作用域规则 #!/usr/bin/env python # -*-…

前端学习笔记 | HTML5+CSS3静态网页制作的技巧(持续更新)

注:本文的css样式均使用less写法 1、字体居中 (1)先text-align:center;行内元素水平居中 (2)再line-heigh:(盒子高度);行内元素垂直居中 text-align: center;line-height: ( 30 / vw ); 2、盒子居中 情景1&#…

【课程作业_01】国科大2023模式识别与机器学习实践作业

国科大2023模式识别与机器学习实践作业 作业内容 从四类方法中选三类方法,从选定的每类方法中 ,各选一种具体的方法,从给定的数据集中选一 个数据集(MNIST,CIFAR-10,电信用户流失数据集 )对这…

【大数据技术攻关专题】「Apache-Flink零基础入门」手把手+零基础带你玩转大数据流式处理引擎Flink(基础加强+运行原理)

手把手零基础带你玩转大数据流式处理引擎Flink(运行机制原理加深) 前提介绍运行Flink应用运行机制Flink的两大核心组件JobManagerTaskManagerTaskSlot Flink分层架构Stateful Stream ProcessingDataStream和DataSetDataStream(数据流&#xf…

GPIO中断

1.EXTI简介 EXTI是External Interrupt的缩写,指外部中断。在嵌入式系统中,外部中断是一种用于处理外部事件的机制。当外部事件发生时(比如按下按钮、传感器信号变化等),外部中断可以立即打断正在执行的程序&#xff0…

大红喜庆版UI猜灯谜小程序源码/猜字谜微信小程序源码

今天给大家带来一款UI比较喜庆的猜灯谜小程序,大家看演示图的时候当然也是可以看得到那界面是多么的喜庆,而且新的一年也很快就来了,所以种种的界面可能都比较往喜庆方面去变吧。 这款小程序搭建是免服务器和域名的,只需要使用微信开发者工具…

Linux一键部署telegraf 实现Grafana Linux 图形展示

influxd2前言 influxd2 是 InfluxDB 2.x 版本的后台进程,是一个开源的时序数据库平台,用于存储、查询和可视化时间序列数据。它提供了一个强大的查询语言和 API,可以快速而轻松地处理大量的高性能时序数据。 telegraf 是一个开源的代理程序,它可以收集、处理和传输各种不…