【机器学习基础】机器学习入门核心算法:多分类与多标签分类算法

article/2025/6/23 6:06:38

在这里插入图片描述

多分类与多标签分类算法

      • 一、单标签分类问题
        • 1. 单标签二分类
        • 2. 单标签多分类
      • 二、多标签分类问题 (Multi-Label Learning - MLL)
        • 1. 定义与特点
        • 2. 解决策略
      • 三、实现与应用
      • 总结

在机器学习领域,分类任务是核心问题之一。根据预测目标的性质,主要分为单标签分类(包括二分类和多分类)和多标签分类。本文将基于核心课件内容,系统阐述这些算法的原理、策略及实现。

一、单标签分类问题

1. 单标签二分类
  • 定义:每个样本仅属于两种互斥类别之一(如 A/B),需预测单个二值标签。
  • 核心思想:在特征空间中构建决策边界(如线、面、超平面)分离两类样本。
  • 经典算法
    • Logistic 回归(概率化线性分类)
    • SVM(最大化分类间隔)
    • KNN(基于邻近样本投票)
    • 决策树(基于特征规则划分)
2. 单标签多分类
  • 定义:每个样本属于 K 种互斥类别之一(K ≥ 3),需预测单个多值标签。
  • 经典算法:Softmax 回归(逻辑回归的多类推广)、KNN、决策树。
  • 核心策略:将多分类问题转化为多个二分类子问题求解:
    • One-Versus-One (OvO)
      • 原理:对 K 个类别进行两两组合,为每对类别 (A, B) 训练一个二分类器。共需训练 K(K-1)/2 个分类器。
      • 预测:对测试样本运行所有分类器,采用多数投票决定最终类别。
      • 优点:每个分类器仅使用涉及的两个类别的数据,训练数据规模较小。
      • 缺点:分类器数量随 K 急剧增长,预测开销大。
    • One-Versus-Rest (OvR / One-Vs-All)
      • 原理:为每个类别 i 训练一个二分类器。将类别 i 作为正例,其余所有类别作为反例。共需训练 K 个分类器。
      • 预测:对测试样本运行所有 K 个分类器:
        • 若仅有一个分类器输出“正例”,则预测为该类。
        • 若多个分类器输出“正例”,选择置信度最高(如预测概率最大)的类别。
      • 优点:分类器数量少(仅 K 个)。
      • 缺点:训练每个分类器时正反例样本量极不均衡(1类 vs K-1类),可能影响性能。
    • 纠错输出码 (Error Correcting Output Codes, ECOC)
      • 原理:包含两个阶段:
        • 编码阶段:对 K 个类别进行 M 次二元划分(每次划分指定部分类为正,部分为反),每次划分训练一个二分类器。每个类别被编码为一个 M 位二进制码字。
        • 解码阶段:用 M 个分类器预测测试样本,得到一个 M 位输出码字。计算该码字与每个类别标准码字(如海明距离),预测为距离最近的类别。
      • 优点:对分类器错误具有一定容错能力。
      • 缺点:设计有效的编码矩阵是关键挑战。

二、多标签分类问题 (Multi-Label Learning - MLL)

1. 定义与特点
  • 每个样本可能同时关联多个标签(如一篇文档可同时属于“科技”、“金融”)。
  • 存在两种情况:
    • 需要预测多个独立的 y 值。
    • 一个样本可属于多个不固定类别的组合。
  • 关键挑战:标签之间可能存在依赖关系
2. 解决策略
  • 策略一:问题转换 (Problem Transformation Methods)

    • 核心思想:将多标签问题转化为一个或多个单标签(通常是二分类)问题。
    • 主要方法
      • 二元关联 (Binary Relevance - BR)
        • 原理:为 q 个待预测标签中的每一个单独训练一个二分类器。第 i 个分类器判断样本是否属于标签 i。
        • 优点:实现简单直观,易于并行化。当标签间独立时效果良好。
        • 缺点:完全忽略标签间依赖关系;需训练 q 个分类器(当 q 大时开销大)。
      • 分类器链 (Classifier Chains - CC)
        • 原理:将标签按随机顺序排列 (L1, L2, ..., Lq)。训练时:
          • 第一个分类器仅用特征 X 预测 L1
          • 第二个分类器用特征 X 加上 L1 的预测结果作为输入,预测 L2
          • 后续分类器依次加入前面所有标签的预测结果作为输入特征。
        • 预测:按链顺序依次预测每个标签,并将前序预测值输入后续分类器。
        • 优点:显式建模了标签间的依赖关系(高阶),通常性能优于 BR。
        • 缺点:标签顺序影响结果;依赖关系难以最优确定;预测需按链顺序进行(无法完全并行)。
      • 校准标签排序 (Calibrated Label Ranking - CLR)
        • 原理:为每一对标签 (Li, Lj) 训练一个分类器,该分类器学习区分样本属于 Li 而不属于 Lj 的情况。引入一个额外的“虚拟”标签(Calibrator)作为排序基准。
        • 预测:对每个标签 Li,计算它相对于校准标签和所有其他标签的“得分”。根据最终得分对所有标签排序,选择排名靠前的标签作为预测结果(通常设置阈值)。
        • 优点:考虑了标签间的两两关系(二阶依赖)。
        • 缺点:计算复杂度高(需 O(q²) 个分类器);未建模更高阶依赖。
  • 策略二:算法适应 (Algorithm Adaptation Methods)

    • 核心思想:直接修改或扩展现有的单标签学习算法,使其能原生处理多标签数据。
    • 代表算法
      • ML-kNN (Multi-Label k-Nearest Neighbors)
        • 原理:基于 kNN 思想。对于一个测试样本:
          1. 找到其在特征空间中的 k 个最近邻样本。
          2. 统计这些邻居样本的标签集合。
          3. 对于每个标签 Li,计算其在该邻居集中出现的频率。
          4. 应用最大后验概率 (MAP) 准则:结合标签的先验概率和邻居条件概率,决定是否将 Li 分配给测试样本(通常与阈值比较)。
        • 优点:直观,利用了 kNN 的局部性思想。
      • ML-DT (Multi-Label Decision Trees)
        • 原理:扩展决策树算法。关键改进在于分裂准则
          • 不再使用基尼系数或信息增益(针对单标签)。
          • 采用多标签专用的度量,如:
            • 标签熵的加权和
            • 多标签信息增益 (Multi-label Information Gain)
            • 基于差异度的度量 (Label-based Division)
        • 优点:保持了决策树的可解释性,能处理标签依赖。

三、实现与应用

在这里插入图片描述

  • scikit-learn 实践
    • 多分类OneVsRestClassifier, OneVsOneClassifier 包装器可将二分类器(如 SVC, LogisticRegression)用于多分类。
    • 多标签
      • OneVsRestClassifier 本身即可用于多标签(每个标签视为独立的二分类任务,即 BR 策略)。
      • ClassifierChain 实现分类器链策略。
      • MultiOutputClassifier 是另一种实现 BR 策略的包装器。
  • 选择依据
    • 单标签多分类:样本量充足选 OvR;类别数少且追求精度选 OvO;需容错考虑 ECOC。
    • 多标签分类:标签独立或 q 小用 BR;存在强依赖且 q 适中用 CC 或 CLR;追求模型原生支持用 ML-kNN 或 ML-DT。

总结

理解和掌握多分类与多标签分类算法是解决现实世界复杂分类问题的关键。单标签多分类策略(OvO/OvR/ECOC)通过问题分解巧妙利用二分类器,而多标签算法则需专门策略(问题转换 BR/CC/CLR 或算法适应 ML-kNN/ML-DT)处理标签间的关联性。在实际应用中,应根据问题特点(类别数、标签独立性、数据规模、性能需求)和数据特性,选择最合适的算法或策略组合。


http://www.hkcw.cn/article/MyXPbJUpfN.shtml

相关文章

PH热榜 | 2025-05-31

1. Perplexity Labs 标语:让你的项目比以往任何时候都更快地变为现实。 介绍:Perplexity Labs可以帮助您完成各种工作和个人项目。无论是制定营销计划、分析商业财务,还是安排一周的餐饮计划,Perplexity Labs都是将您最佳创意变…

消费者网络购物意向分析:调优逻辑回归LR与决策树模型在电商用户购买预测中的应用及特征重要性优化

全文链接:tecdat.cn/?p42358 分析师:Li Ting 在数字化商业浪潮中,精准把握消费者网络购物意向已成为电商企业提升竞争力的核心命题(点击文末“阅读原文”获取完整智能体、代码、数据、文档)。 本文改编自团队为某电商…

CppCon 2014 学习:Decomposing a Problem for Parallel Execution

学会如何拆分问题,使其能够高效地分配到多个核心上并行处理 把一个大问题拆成多个小任务让这些任务能独立运行在多个 CPU 核心上充分利用多核架构提升性能和吞吐量同时避免任务间过多依赖或冲突,保证并行效率星星计数问题 一个相对简单的问题&#xff0…

审计 - 风险应对 - 控制测试

1.控制测试的概念和程序 控制测试定义是指用于评价内部控制在防止或发现并纠正认定层次重大错报方面的运行有效性的审计程序审计程序询问、观察、检查和重新执行 2 控制测试的要求 1).控制测试并非在任何情况下都需要实施。 2).当存在下列情形之一时…

抠图P图秀v7.8.19

抠图 P 图秀是一款图片编辑应用程序,主要功能是帮助用户对图片进行抠图和 P 图操作。 抠图 P 图秀是一款图片编辑应用程序,主要功能是帮助用户对图片进行抠图和 P 图操作。以下是抠图 P 图秀的简要介绍: 1. 抠图功能:通过智能算法…

MonitorSDK_前端错误收集(重点阐述VueReact错误监测)

Promise中错误监测 前端错误收集方式 Vue中错误 Vue 全局错误处理器 app.config.errorHandler 详解 🔧 app.config.errorHandler 详解 📌 定义 app.config.errorHandler 是 Vue 应用实例的配置项之一,允许开发者定义一个函数来处理应用中的…

PCIe— Configuration

前言 设备初始化时, Configuration 状态在 2.5GT/s 速率下配置链路以及通道 编号。5GT/s 和 8GT/s 速率时,设备也可能从 Recovery 状态进⼊ Configuration 状态。此时状态转换的主要⽬的是为了进⾏多通道设备的 链路位宽动态转换。动态转换仅⽀…

山东一10岁男童在家门口走失 家属急寻线索

6月1日,有网友发布视频称山东省滕州市姜屯镇黄坡村一名10岁男孩赵某超走失。孩子家属十分焦急,希望通过网络社交媒体寻求帮助。当天下午,赵某超的外公王先生透露,通过查看家门口监控发现,孩子于5月31日下午5时左右走失。当时孩子先是在家门口消失了几分钟,然后返回了一次…

司机高速上突发呼吸性碱中毒 民警拉响警报6分钟送医

6月2日山东德州,司机高速上突发呼吸性碱中毒,同行司机开下高速求助,民警拉响警报6分钟送医。据了解,目前该司机已顺利出院。责任编辑:zx0002

泰国今年已迎1300万游客 旅游业显著复苏

泰国总理府副发言人萨西甘瓦塔娜詹近日表示,随着“2025神奇泰国”政策的推动,泰国旅游业在促进经济方面取得了显著进展。自2025年1月1日至5月18日,共有超过1300万名游客访问泰国,带动了超过6300亿泰铢的收入。最新数据显示,5月的第三周共有46.45万名外国游客到访泰国,其中…

洛阳的地铁到底有多难挖?

在华夏大地的历史版图上,洛阳无疑是一颗璀璨的明珠。这座有着深厚历史底蕴的城市,随便一挖就是文物,其地下宝藏之丰富,令人惊叹。洛阳地铁建设,堪称一场与历史的奇妙邂逅。施工时,考古发掘成为常态。从先秦的陶器,到汉唐的铜镜,再到明清的瓷器,不同时代的文物纷纷破土…

莫雷加德回应樊振东加盟德甲 欢迎新队友

5月31日,德国萨尔布吕肯乒乓球俱乐部宣布,乒乓球大满贯选手、巴黎奥运会乒乓球男单金牌得主樊振东将在下个赛季代表俱乐部参加德国乒乓球甲级联赛。消息一出,相关话题迅速登上微博热搜榜首。德国乒乓球运动员弗朗西斯卡帕特里克在社交媒体上欢迎樊振东加入队伍,瑞典乒乓球运…

【Godot引擎】如何使用内置的全局搜索功能提升开发效率

在日常使用 Godot 引擎 开发过程中,快速查找项目中的资源、脚本代码、节点、信号等内容,是大幅提高开发效率的关键手段。幸运的是,Godot 编辑器内置了全局搜索功能,可以非常方便地完成这一需求。本文将详细介绍如何使用这一功能&a…

Cesium 自带的标注碰撞检测实现标注避让

随机生成10000个点 let labels: any [] function addLabel(){labels viewer.scene.primitives.add(new Cesium.LabelCollection())for (let index 0; index < 10000; index) {const angle 2 * Math.PI * Math.random() // 随机角度labels.add({id: index,show: false,f…

Vue基础(12)_Vue.js循环语句用法:列表渲染

js补充 术语解释 循环(loop)&#xff1a;最基础的概念, 所有重复的行为。 递归(recursion)&#xff1a; 在函数内调用自身, 将复杂情况逐步转化成基本情况。 (数学)迭代(iterate) &#xff1a;在多次循环中逐步接近结果。 (编程)迭代(iterate) &#xff1a;按顺序访问线性结构中…

山西女子被送养36年后找到亲生父母 当事人:想过个真正的生日

程姗是被亲弟弟背进家门的,36年了,这是她第一次回家。6月1日上午,锣鼓声惊醒了忻州市解村的一条小巷,寻亲志愿者朱玉堂牵着程姗的手说:“来,回家。”程姗被簇拥着,伏在弟弟的背上,去往家的方向。程姗是姜家的第二个女儿,1989年农历二月初三出生,因父母交不起超生罚款…

奥地利年人均咖啡消费预测 咖啡热爱升级

奥地利人对咖啡情有独钟。根据国际消费品巨头Tchibo公司的一项最新调查,今年奥地利人均咖啡消费预计将超过1000杯,相比去年的日均2.65杯,这一数字今年上升至2.75杯。在咖啡饮用群体中,50至59岁年龄段的人最热衷,日均消费量达到3.24杯。相比之下,年轻一代的15至29岁人群日…

【头歌实验】Keras机器翻译实战

【头歌实验】Keras机器翻译实战 第1关&#xff1a;加载原始数据 编程要求 根据提示&#xff0c;在右侧编辑器补充代码&#xff0c;实现load_data函数&#xff0c;该函数需要加载path所代表的文件中的数据&#xff0c;并将文件中所有的内容按\n分割&#xff0c;转换成一个列表…

MCP调研

什么是 MCP MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09;&#xff0c;是由 Anthropic 在 2024 年 11 月底推出的开放标准协议&#xff0c;旨在统一大型语言模型&#xff08;LLM&#xff09;与外部数据源、工具的通信方式。MCP 的主要目的在于…

车载软件更新 --- 数据完整性和正确性策略(数据验签事宜汇总)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…