多分类及多标签分类算法

多分类及多标签分类算法一 单标签多分类 1 单标签二分类算法原理 1 单标签二分类这种问题是我们最常见的算法问题 主要是指 label 标签的取值只有两种 并且算法中只有一个需要预测的 label 标签 直白来讲就是每个实例的可能类别只有两种 AorB 此时的分类算法其实是在构建一个分类线将数据划分为两个类别 2 常见的算法 Logistic SVM KNN 决策树等 2 单标签多分类算法

一、单标签多分类

1、单标签二分类算法原理

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

多分类及多标签分类算法

 2、单标签多分类算法原理

1、单标签多分类问题其实是指待预测的label标签只有一个,但是 label标签的取值可能有多种情况;直白来讲就是每个实例的可能 类别有K种(t1,t2,...tk,k≥3); 2、常见算法:Softmax、SVM、KNN、决策树(集成学习 ----RF(Bagging)、Boosting(Adaboost、GBDT);XGBoost) 
3、是一个多分类的问题,我们可以将这个待 求解的问题转换为二分类算法的延伸,即将多分类任务拆分为若 干个二分类任务求解, 具体的策略如下: • One-Versus-One(ovo):一对一 • One-Versus-All / One-Versus-the-Rest(ova/ovr): 一对多 • Error Correcting Output codes(纠错码机制):多对多

3、单标签多分类算法原理-ovo

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

多分类及多标签分类算法

4、单标签多分类算法原理-ovr

1、ovr与softmax的区别: ① softmax 始终训练一个模型,Ovr 训练 n 类别个模型 ② ovr 每一次是代入所有的训练集数据来训练子模型,取出结果为正例的类别(多个正例取最大值)。

多分类及多标签分类算法

 

5、OvO和OvR的区别

多分类及多标签分类算法

6、单标签多分类算法原理-Error  Correcting

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

多分类及多标签分类算法

二、多标签多分类

1、多标签多分类这类问题的解决方案可以分为两大类: 1) 转换策略(Problem Transformation Methods); • Binary Relevance(first-order) --------- y标签之间相互独立 • Classifier Chains(high-order) --------- y标签之间相互依赖(链式) • Calibrated Label Ranking(second-order) --------- 了解 2) 算法适应(Algorithm Adaptation)。 • ML-kNN • ML-DT 

多分类及多标签分类算法

 

1、 转换策略(Problem Transformation Methods)

1、转换策略思想:将多标签多分类问题转化为多个单标签二分类(通过哑编码转换 >>>>>>> -1 , +1 )的子模型,将这些子模 型的结果合并。
  •        多标签多分类问题 

多分类及多标签分类算法

  •        转化为多个单标签二分类 

多分类及多标签分类算法

  •       Binary Relevance 与 Classifier Chains区别

多分类及多标签分类算法

--------------------------------------------------------------------------------------------- • Binary Relevance方式的优点如下: • 实现方式简单,容易理解; • 当y值之间不存在相关的依赖关系的时候,模型的效果不错。 • 缺点如下: • 如果y直接存在相互的依赖关系,那么最终构建的模型的泛化能力比较 弱; • 需要构建q个二分类器,q为待预测的y值数量,当q比较大的时候,需 要构建的模型会比较多。 --------------------------------------------------------------------------------------------- • Classifier Chains方式的优点如下: • 实现方式相对比较简单,容易理解; • 考虑标签之间的依赖关系,最终模型的泛化能力相对于Binary Relevance方 式构建的模型效果要好。 • 缺点如下: • 很难找到一个比较适合的标签依赖关系。 --------------------------------------------------------------------------------------------- • Calibrated Label Ranking 方式的优点如下: • 考虑了标签两两组合的情况,最终的模型相对来讲泛化能力比较好。 • 缺点如下: • 只考虑两两标签的组合,没有考虑到标签与标签之间的所有依赖关系。 

     2、算法适应性

1、ML-kNN的思想:对于每一个实例来讲,先获取距离它最近的k个实例,然 后使用这些实例的标签集合,通过最大后验概率(MAP)来 断这个实例的 预测标签集合的值。 2、最大后验概率估计(MAP)贝叶斯估计 与 最大似然估计(MLE)区别? 答:最大后验概率(MAP)贝叶斯估计:其实就是在最大似然估计(MLE,样本划分目标属性Y的概率不是处处相等)中加入了这个要估 计量的先验概率分布(即样本划分目标属性Y的概率不是处处相等)。 

多分类及多标签分类算法

三、API的使用

 1、单标签多分类

from sklearn.multiclass import OneVsRestClassifier,OneVsOneClassifier,OutputCodeClassifier class sklearn.multiclass.OneVsRestClassifier(estimator, n_jobs=1) ''' estimator ------- 子模型 n_jobs=1 ------- CPU使用 ''' class sklearn.multiclass.OneVsOneClassifier(estimator, n_jobs=1) class sklearn.multiclass.OutputCodeClassifier(estimator, code_size=1.5, random_state=None, n_jobs=1)

  2、多标签多分类

from sklearn.multiclass import XXX class sklearn.multioutput.MultiOutputClassifier(estimator, n_jobs=1) ----- 没有依赖关系的多标签多分类 class sklearn.multioutput.MultiOutputRegressor(estimator, n_jobs=1)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222096.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:35
下一篇 2026年3月17日 下午4:35


相关推荐

  • JVM虚拟机的运行机制和原理

    JVM虚拟机的运行机制和原理1 JVM 虚拟机介绍 JVM 是 JavaVirtualM Java 虚拟机 的缩写 是一个虚构出来的计算机 是通过在实际的计算机上仿真模拟各种计算机功能来实现的 Java 虚拟机主要由字节码指令集 寄存器 栈 垃圾回收堆和存储方法域等构成 JVM 屏蔽了与具体操作系统平台相关的信息 使 Java 程序只需生成在 Java 虚拟机上运行的目标代码 字节码 就可以在多种平台上不加修改地运行 JVM 在执行字节码时 实际上最终还是把字节码解释成具体平台上的机器指令执行 2 JVM 的生命周期 JVM 伴随 Java

    2026年3月16日
    2
  • PLC基础知识(PLC入门必看)[通俗易懂]

    PLC基础知识(PLC入门必看)[通俗易懂]1 PLC的发展历程在工业生产过程中,大量的开关量顺序控制,它按照逻辑条件进行顺序动作,并按照逻辑关系进行连锁保护动作的控制,及大量离散量的数据采集。传统上,这些功能是通过气动或电气控制系统来实现的。1968年美国GM(通用汽车)公司提出取代继电气控制装置的要求,第二年,美国数字公司研制出了基于集成电路和电子技术的控制装置,首次采用程序化的手段应用于电气控制,这就是第一代可编程序控制器,称ProgrammableController(PC)。个人计算机(简称PC)发展起来后,为了方便,也为了反映可

    2025年8月28日
    13
  • flag_activity_new_task 简单_activity启动流程图解

    flag_activity_new_task 简单_activity启动流程图解当在一个的activity以FLAG_ACTIVITY_NEW_TASK的方式启动另一个已经启动的activity时,需要设置intent.addCategory(Intent.CATEGORY_LAUNCHER);intent.setAction(Intent.ACTION_MAIN);否则将要打开的activity会重走一遍onCreate(),加上之后会直接调用之前的acti

    2026年4月17日
    4
  • golang deepcopy_mongodb主从复制原理

    golang deepcopy_mongodb主从复制原理Go语言中所有赋值操作都是值传递,如果结构中不含指针,则直接赋值就是深度拷贝;如果结构中含有指针(包括自定义指针,以及切片,map等使用了指针的内置类型),则数据源和拷贝之间对应指针会共同指向同一块内存,这时深度拷贝需要特别处理。目前,有三种方法,一是用gob序列化成字节序列再反序列化生成克隆对象;二是先转换成json字节序列,再解析字节序列生成克隆对象;三是针对具体情况,定制化拷贝。前两种方法虽……

    2022年10月2日
    5
  • win10电脑显示 “您的账户已被停用。请向系统管理员咨询”,如何启动账号?

    win10电脑显示 “您的账户已被停用。请向系统管理员咨询”,如何启动账号?电脑显示 您的账户已被停用 请向系统管理员咨询 出现这种情况主要是 Administrato 帐户被禁用 被禁用的原因主要是用户对系统设置过程中不小心将 Administrato 属性里的 帐户已禁用 进行勾选 如图 1 这时候我们可以按照以下方式来解除 图 1 第一步 在登录界面 图 2 按 shift 按键 多按几次或者长按 出现黑窗口 图 3 如果出现不了 就不用看后面了

    2026年3月18日
    2
  • 1034 有理数四则运算

    1034 有理数四则运算1034 有理数四则运算题目 本题要求编写程序 计算 2 个有理数的和 差 积 商 输入格式 输入在一行中按照 a1 b1a2 b2 的格式给出两个分数形式的有理数 其中分子和分母全是整型范围内的整数 负号只可能出现在分子前 分母不为 0 输出格式 分别在 4 行中按照有理数 1 运算符有理数 2 结果的格式顺序输出 2 个有理数的和 差 积 商 注意输出的每个有理数必须是该有理数的最简形式 ka b 其中 k 是整数部分 a b 是最简分数部分 若为负数 则须加括号 若除法分母为 0

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号