机器学习:多分类

article/2025/8/26 17:56:47

1,多分类形式化

1.1,分类问题

给定训练样本集合 S=\left \{ (x_1,y_1),...,(x_m,y_m) \right \},其中 \left \{ x_i \right \}^m_{i=1}\subseteq X ^m 独立同分布,y_i=f(x_i)\in Y(\forall i=1,...,m)。多分类问题的目标是基于数据 S,从假说集合 H 中选择一个假说 h,以使得期望误差:

E_{x\sim D}[sgn(h(x))\neq f(x)]

最小。

对于二分类问题,可以以零为界限进行分类,大于零则划分为正样本,小于零则划分为负样本。对于多分类问题,二分类分类方法则无法进行判断,因此我们定义评分函数进行判断。

在多类设置中,根据评分函数 h 定义假设:h:X*Y\rightarrow R。与点 x 关联的标签是导致最大分数 h(x,y) 的标签,该分数定义了以下映射:xy

x \mapsto arg\, \, \, \underset{y\in Y}{max}(h(x,y))

其中 Y = \left \{ y_1,y_2,y_3,..,y_n \right \},其中每个 y_i 都是一种类别,通过遍历所有的 y_i 与 待预测值 x 通过评分函数 h(x,y) 进行计算得分,得分最高的 y_i 即为 x 的多分类结果。 

1.2,多分类SVMs

机器学习:支持向量机(SVM)_燕双嘤-CSDN博客1,算法描述支持向量机(SVM)是用来解决分类问题的。作为数据挖掘领域中一项非常重要的任务,分类目前在商业上应用最多(比如分析型CRM里面的客户分类模型、客户流失模型、客户盈利等,其本质上都属于分类问题)。而分类的目的则是构造一个分类函数或分类模型,该模型能吧数据库中的数据项映射到给定类别中的某一个,从而可以用来预测未知类别。先考虑最简单的情况,比如豌豆和米粒,用筛子很快可以分离它们,小颗粒漏下去,大颗粒保留。用函数来表示就是当直径d大于某个值D,就判定其为豌豆,小于D就是米粒。在数轴上就是D左边https://shao12138.blog.csdn.net/article/details/121164645定义多分类SVM算法(SVMs)的优化问题是:

\underset{W,\xi }{min}\left [ \frac{1}{2}\sum_{l=1}^{k}||w_l||^2+C\sum_{i=1}^{m} \xi_i\right ]

s.t.\, \, \, \, \forall i\in [1,m],\forall l\in Y-\left \{ y_i \right \},w_{y_i}*\Phi (x_i)\geqslant w_l*\Phi(x_i)+1-\xi_i

\xi_i \geqslant 0\, \, \, \, i=1,2,...,m

其中 \Phi (x_i) 为 x_i 到 H 的映射函数,w_{y_i} 为当前 x_i 分类正确的系数矩阵,

w_l 为除 w_{y_i} 之外的任意一个 w\xi_i 为偏差,

m 为样本数,k 为分类数。

w_{y_i}*\Phi (x_i)\geqslant w_l*\Phi(x_i)+1-\xi_i

证明:

h(x_i,y_i)-h(x_i,y)\geqslant \tau

令,h(x_i,y_i)=w^T_{y_i}*x_i,评分函数有无数种。

w^T_{y_i}*x_i-w^T_y*x_i\geqslant \tau

\frac{w^T_{y_i}}{\tau}*x_i-\frac{w^T_{y}}{\tau}*x_i\geqslant 1

令  m^T_{y_i}=\frac{w^T_{y_i}}{\tau},即:

m^T_{y_i}*x_i-m^T_y*x_i\geqslant1

1.3,对偶问题

机器学习:支持向量机(SVM)_燕双嘤-CSDN博客1,算法描述支持向量机(SVM)是用来解决分类问题的。作为数据挖掘领域中一项非常重要的任务,分类目前在商业上应用最多(比如分析型CRM里面的客户分类模型、客户流失模型、客户盈利等,其本质上都属于分类问题)。而分类的目的则是构造一个分类函数或分类模型,该模型能吧数据库中的数据项映射到给定类别中的某一个,从而可以用来预测未知类别。先考虑最简单的情况,比如豌豆和米粒,用筛子很快可以分离它们,小颗粒漏下去,大颗粒保留。用函数来表示就是当直径d大于某个值D,就判定其为豌豆,小于D就是米粒。在数轴上就是D左边https://shao12138.blog.csdn.net/article/details/121164645

\underset{W,\xi }{min}\left [ \frac{1}{2}\sum_{l=1}^{k}||w_l||^2+C\sum_{i=1}^{m} \xi_i\right ]

s.t.\, \, \, \, \forall i\in [1,m],\forall l\in Y-\left \{ y_i \right \},w_{y_i}*\Phi (x_i)\geqslant w_l*\Phi(x_i)+1-\xi_i

\xi_i \geqslant 0\, \, \, \, i=1,2,...,m

定义拉格朗日函数

 L(w,\alpha ,\xi ,\beta )=\frac{1}{2}\sum_{l=y_1,l\neq y_i}^{y_k}||w_l||^2+C\sum_{i=1}^{m} \xi_i+\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}[1-\xi _i- w^T_{y_i}\Phi(x_i) +w^T_l\Phi(x_i)]-\sum_{i=1}^{m}\beta_i\xi _i

令 L(w,\alpha ,\xi ,\beta ) 对 w,\xi 求偏导为0可得:

\frac{\partial L}{\partial w_l}=0\rightarrow \sum_{l=y_1,l\neq y_i}^{y_k}w_l +\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}\Phi(x_i)=0

\frac{\partial L}{\partial \xi_i }=0\rightarrow \sum_{i=1}^{m}C+\sum_{i=1}^{m}[\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}-\beta_i]=0

带入拉格朗日函数,可以消除 w ,再消去 \beta_i 得到对偶问题:

=\frac{1}{2}\sum_{l=y_1,l\neq y_i}^{y_k}||w_l||^2+\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}[1- w^T_{y_i}\Phi(x_i) +w^T_l\Phi(x_i)]+C\sum_{i=1}^{m} \xi_i-\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}\xi _i-\sum_{i=1}^{m}\beta_i\xi _i

=\frac{1}{2}\sum_{l=y_1,l\neq y_i}^{y_k}||w_l||^2+\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}[1- w^T_{y_i}\Phi(x_i) +w^T_l\Phi(x_i)]

=\frac{1}{2}\sum_{l=y_1,l\neq y_i}^{y_k}w^T_lw_l+\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}[1- w^T_{y_i}\Phi(x_i) +w^T_l\Phi(x_i)]

=\frac{1}{2}\sum_{l=y_1,l\neq y_i}^{y_k}w^T_lw_l-\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}[w^T_{y_i}\Phi(x_i) -w^T_l\Phi(x_i)]+\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}

=\frac{1}{2}\sum_{l=y_1,l\neq y_i}^{y_k}w^T_lw_l-\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}w^T_{y_i}\Phi(x_i) +\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}w^T_l\Phi(x_i)+\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}

=-\frac{1}{2}\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}\Phi(x_i)w^T_l-\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}w^T_{y_i}\Phi(x_i) +\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}w^T_l\Phi(x_i)+\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}

=\frac{1}{2}\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}\Phi(x_i)w^T_l-\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}w^T_{y_i}\Phi(x_i) +\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}

=\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}\Phi(x_i)[\frac{1}{2}w^T_l-w^T_{y_i}]+\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}

即:\underset{\alpha }{max}[\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}\Phi(x_i)[\frac{1}{2}w^T_l-w^T_{y_i}]+\sum_{i=1}^{m}\sum_{l=y_1,l\neq y_i}^{y_k}\alpha_{il}]

假设\alpha ^{*}是上面凸二次规划问题的最优解,则 \alpha ^{*}\neq 0 ,求导后得到 \alpha ^{*}

2,二分类解决多分类 

2.1,两种多分类策略

One-versus-All:每次将一个类别作为正类,其余类别作为负类。此时共有(N个分类器)。在测试的时候若仅有一个分类器预测为正类,则对应的类别标记为最终的分类结果。

【例】当有4个类别的时候,每次把其中一个类别作为正类别,其余作为负类别,共有4种组合,对于这4中组合进行分类器的训练,我们可以得到4个分类器。对于测试样本,放进4个分类器进行预测,仅有一个分类器预测为正类,于是取这个分类器的结果作为预测结果,分类器2预测的结果是类别2,于是这个样本便属于类别2

One-versus-One:假如某个分类中有N个类别,我们将这N个类别进行两两配对(两两配对后转化为二分类问题)。那么我们可以得到 C^2_N,即 \frac{N(N-1)}{2}

【例】当有4个类别的时候, 首先把类别两两组合(6种组合)。组合完之后,其中一个类别作为正类,另一个作为负类(这个正负只是相对而言,目的是转化为二分类)。然后对每个二分类器进行训练。可以得到6个二分类器。然后把测试样本在6个二分类器上面进行预测。

容易看出,OvA只需训练N个分类器,而OvO需训练N(N - 1)/2个分类器, 因此,OvO的存储开销和测试时间开销通常比OvA更大。但在训练时,OvA的每个分类器均使用全部训练样例,而OvO的每个分类器仅用到两个类的样例,因此,在类别很多时,OvO的训练时间开销通常比OvA更小。至于预测性能,则取决于具体的数据分布,在多数情形下OvA准确度比OvO要低,比如10000样本集,分给OvA的100个分类器,每个得到100个样本,对于1:99的分类器,正样本仅有100,负样本有9900,样本极不平衡,训练误差较大。

综上:

  • OvO的优点是,在类别很多时,训练时间要比OvA少,误差小。缺点是,分类器个数多。
  • OvA的优点是,分类器个数少,存储开销和测试时间比OvO短。缺点是,类别很多时,训练时间长,误差大。

2.2,不平衡数据处理

数据不平衡是指数据集中各类样本数量不均衡的情况。常用不平衡处理方法有采样代价敏感学习。

  • 采样:欠采样、过采样和综合采样的方法。

  • 代价敏感学习:代价敏感学习是指为不同类别的样本提供不同的权重,从而让机器学习模型进行学习的一种方法。

比如风控或者入侵检测,这两类任务都具有严重的数据不平衡问题,可以在算法学习的时候,为少类样本设置更高的学习权重,从而让算法更加专注于少类样本的分类情况,提高对少类样本分类的查全率,但是也会将很多多类样本分类为少类样本,降低少类样本分类的查准率。

2.3,多分类器

 其中第一列为多分类的类别 K,第一行为多个分类器,可以是SVM,PAL等。

每一行不能线性相关,即不能相互表示;每一列不能全是0或1。

OvO和OvA是多分类器的一种特例。

我们根据每个二分类器的分类结果,对比 M 矩阵中的形式的分类,进行确认。

通常采用:汉明距离(不同+1,相同+0)。

2.4,如何学习 M

学习 M 的算法类似于刚才在多类支持向量机中讨论的思想,其公式如下:

\underset{M,\xi }{min}||M||^2_F+C\sum_{i=1}^{m}\xi_i

s.t.\, \, \, \, \forall i\in [1:m]\forall l\in Y-\left \{ y_i \right \}

K(M_{yi},F(x_i))-K(M_l,F(x_i))\geqslant 1-\xi_i,\xi_i\geqslant 0

其中,F(x_i) 表示在多个二分器中得到的01序列,

K(M_{yi},F(x_i)) 表示在矩阵 M 中的汉明距离。

求解方法:结构化预测

上述问题可以写成:

\left \{ (x_i,y_i) \right \}^m_i=1\overset{M}{\rightarrow }\left \{ (F(x_i),y_i) \right \}^m_i

进而

\xi_{iy}\geqslant 1-K(M_{yi},F(x_i))-K(M_l,F(x_i))

\geqslant 1-[w^T\Phi (x_i,y_i)-w^T\Phi(x_i,y)]

\xi_{iy}=max\left \{ 0,1-[w^T\Phi (x_i,y_i)-w^T\Phi(x_i,y)] \right \}

故开始问题等价于:

\underset{W,\xi }{min}\left [ \frac{1}{2}||w_l||^2+C\sum_{i=1}^{m}\underset{y\neq y_i}{max}[max\left \{ 0,1-[w^T\Phi (x_i,y_i)-w^T\Phi(x_i,y)] \right \}\right ]

由于max max不好求,我们可以转换为指数形式再求对数:

\underset{W,\xi }{min}\left [ \frac{1}{2}||w_l||^2+C\sum_{i=1}^{m}log\sum_{y\in Y}^{}[exp\left \{ L(y_i,y)-[w^T\Phi (x_i,y_i)-w^T\Phi(x_i,y)] \right \}\right ]

其中,L(y_i,y) 为损失函数,取0-1损失函数(zero-one loss)。


http://chatgpt.dhexx.cn/article/f4sO3elf.shtml

相关文章

机器学习概述

一 定义 机器学习是一门从数据中研究算法的科学学科。机器学习直白来讲,是根据已有的数据,进行算法选择,并基于算法和数据构建模型,最终对未来进行预测。通过数据训练出一个模型->预测未知属性。 理性认识 输入:…

十大机器学习算法的一个小总结

在公众号看到来一篇不错的文章,讲解机器学习算法的,感觉挺好的,所以这里对常用的机器学习算法做一个小的总结, 然后根据学习李航老师的《统计学习方法》做得笔记,对这些算法进行补充。 简介 关于机器学习算法的研究已…

【机器学习】机器学习简介

一 定义 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身…

机器学习(一)——什么是机器学习

1.什么是机器学习? 1.1 机器学习定义 机器学习的诞生来源于两个领域: 1.人工智能(artificial intelligence)。 ML是AI四象限中的一个(think optimal)。人工智能主要包括机器学习和深度学习。深度学习是机器…

机器学习介绍

文章目录 一、机器学习介绍二、机器学习的分类三、 如何入门机器学习四、KNN算法五、 参考 一、机器学习介绍 机械学习与我们的日常生活息息相关,例如购物软件的推荐、短视频软件的推送和汽车的紧急避险,都与机械学习相关。那么什么是机械学习呢&#x…

机器学习之MATLAB代码--MATLAB量子粒子群优化LSTM超参数负荷预测(十三)

机器学习之MATLAB代码--MATLAB量子粒子群优化LSTM超参数负荷预测(十三) 代码数据结果 代码 代码按照下列顺序依次: 1、 function result(true_value,predict_value,type) [m,n]size(true_value); true_valuereshape(true_value,[1,m*n]); predict_val…

Python机器学习、深度学习库总结(内含大量示例,建议收藏)

Python机器学习、深度学习库总结(内含大量示例,建议收藏) 前言python常用机器学习及深度学习库介绍总结与分类python 常用机器学习及深度学习库总结分类 更多 前言 目前,随着人工智能的大热,吸引了诸多行业对于人工智…

黑马程序员---三天快速入门Python机器学习(第一天)

机器学习入门 一、机器学习概述1.1 人工智能概述1.1.1 机器学习与人工智能、深度学习1.1.2 机器学习、深度学习能做什么1.1.3 人工智能阶段课程安排 1.2 什么是机器学习1.2.1 定义1.2.2 解释1.2.3 数据集构成 1.3 机器学习算法分类1.3.1 总结1.3.2 练习1.3.3 机器学习算法分类 …

机器学习入门好文,强烈推荐

转自 飞鸟各投林 史上最强----机器学习经典总结---入门必读----心血总结-----回味无穷 让我们从机器学习谈起 导读:在本篇文章中,将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实…

机器学习知识点全面总结

👨‍💻作者简介:大数据专业硕士在读,CSDN人工智能领域博客专家,阿里云专家博主,专注大数据与人工智能知识分享,公众号:GoAI的学习小屋,免费分享书籍、简历、导图等资料&a…

《零基础数学建模》——最大最小化模型

目录 ​ 前言一、最大最小化模型概述二、模型标准型三、经典例题 ​ 前言 本文大部分是对于数学建模清风老师的课程学习总结归纳而来,我的理解可能有错误,大家发现错误可以在评论区批评指正,课程地址:《数学建模清风》 前置文章请…

数学建模 matlab 数据建模基础

一、数据的获取 1.从Excel中读取数据 (1)xlsread函数 :从EXCEL读入数据到MATLAB中。 例如: a xlsread(‘D:\adc.xlsx’,1,‘A1:D2’) 其中,‘D:\abc.xlsx’表示读入的EXCEL数据所在的路径以及EXCEL的文件名称&…

【数学建模】数学建模(一)——数学模型概述

一. 模型 1. 原型和模型 原型指人们在现实世界里关心、研究或从事生产、管理的实际对象。模型则指为了某个特定目的将原型的某一部分信息简缩、提炼而构造的原型替代物。 按照模型替代原型的方式,模型可以分为物质模型(形象模型)和理想模型&a…

数学建模——MATLAB基础知识

前言:MATLAB和我们平时学的C语言相类似,大体也是由于三部分组成的。任何的复杂的程序由顺序结构,选择结构,循环结构组成的。 一、顺序结构 1.数据的输入: input 用法:Ainput(字符串)-->>影响程序流…

数学建模竞赛基础知识

国际大学生数学建模 世界大学生数学建模 美国大学生数学建模竞赛,一个比赛多个称呼而已,美赛是一项面向高中生、大学本科层次的一个国际性比赛。 美赛可分为两种: The Mathematical Contest in Modeling (MCM): 俗称数学建模竞赛&#xf…

数学建模——基础

目录 第1章 MATLAB基础知识 1,矩阵的表示 1,数值矩阵的生成 2,符号矩阵的生成 3,特殊矩阵生成 4,一般矩阵运算 5,基本图形绘制 6,简单图像处理 7,建立函数文件/.M文件 8&a…

数据库除法理解

理解 给定关系R和关系S,求RS。 关系R和关系S拥有共同的属性A2、A3 , 首先确定得到的属性为A1。(RS得到的属性是关系R包含而关系S不包含的属性,即A1) 其次确定A1中符合条件的属性值为{a,d}。(关系R中A1的…

数据库课程设计——MOOC学习平台

文章目录 1. 项目介绍:2.代码部分 1. 项目介绍: 采用JDBC接口连接数据库,简单实现Mooc学习平台相关功能。 2.代码部分 1.方法类 package com.mooc; import untlis.DButlis; import java.sql.PreparedStatement; import java.sql.ResultS…

oracle数据库怎么创建数据库 oracle数据库工作流程

oracle数据库怎么创建数据库 数据库用户的创建、权限的分配 数据库安装完成后,有两个系统级的用户: system 默认密码为:manager sys 默认密码为:change_on_install 在安装的数据库目录中找到 \oracle\product\9.2\bin 中的sq…