Python机器学习:支持向量机

news2025/4/7 13:39:30

这是我读本科的时候第一个接触到的机器学习算法,但也是第一个听完就忘的。。。

他的基本思想很简单:想办法把一个样本集划成两个部分:对于空间中的样本点集合,我们找到一个超平面把这个样本点集合给分成两个部分,其中一部分是正类,另一部分是反(负)类,支持向量机的优化目标就是找到一个超平面,使得空间中距离超平面最近的点到超平面的几何间距尽可能大,这些点就被称为支持向量。

首先得了解几个概念:

一、最大间隔和超平面:

和之前的一样,我们给定一个样本集合D=\left\{(x_1,y_1),(x_2,y_2),\cdots,(x_m,y_m)\right\}然后设定:y_i\in \left\{-1,+1\right\},设输入空间中的一个超平面为:

\omega^T x+b=0

其中,\omega是超平面的法向量,b为偏置,决定超平面的位置,根据点到直线的距离公式的扩展,空间中一点x_i到超平面\omega^T x+b=0的欧氏距离为:

r_i=\frac{|\omega^Tx+b|}{||\omega||}

 如果超平面可以把所有样本点分成两类,那实际上, 点x_i到超平面\omega^T x+b=0的欧氏距离就是一个分段函数:

\left\{\begin{matrix} r_i=\frac{|\omega^T+b|}{||\omega||}y_i=+1 & \\ r_i=-\frac{|\omega^T+b|}{||\omega||}y_i=-1 & \end{matrix}\right.

 好了,基本上把最大间隔和超平面给了解清楚了,说白了,就是,emm,我画个图来展示一下:

图1:简单示例

 

 其实这个就是个很简单的东西,第四张可看可不看,主要是前三张图片,第一张是y1=sin(x)

第二张是y2=cos(x*pi/2),第三张是y3=y1+y2,那也就是说,怎么样才能从第三张图中把y1和y2给分离出来呢,学信号的同学这不就来精神了吗,那不就是,对吧,我直接一个傅里叶变换从时空域变到频率域,这不就很简单的能分开了嘛,so easy对吧,可是,这里,咱说的是支持向量机,也就是说,我们得用支持向量机的观点来给他把(x,y1)和(x,y2)这两个信号分开,怎么分开,我暂时就想了上面提到的变换到频率域去解决,当然,学信号的人会想到用滤波器或者其他方法,总之,有很多,但是具体怎么做呢,大家可以自己去试试,找找文献或者技术资料,来看看信号的分离或者是信号去噪这方面的,我只知道,方法很多。

二、线性可分支持向量机

QAQ,这个概念就要两页多,因为小学抄古诗抄怕了,我是真不喜欢抄书,,但是,抄吧,首先看一下他的目标是啥:通过求解\omega和b,找到一个超平面,在保证这个超平面能偶正确将样本进行分类的同时,要使距离超平面最近的点到超平面的距离尽可能的大,说白了就是一个带约束条件的优化问题,其约束条件就是超平面可以把样本集合的点都给正确分类喽。

我们把距离超平面最近的点和超平面之间的距离记为r=min{ r_i} ,i=1,2,\cdots,m

最优化问题就是:

max \left\{ r\right\}

s.t, r_i=\frac{\omega^T+b}{||\omega||}y_i\geqslant r ,i=1,2,\cdots,m

我们可以对任一支持向量x^*通过对超平面公式进行缩放,使得

(\omega ^T x^*+b)y^*=1

然后x^*到超平面的距离就是\frac{1}{||\omega||},优化问题就能够写成

max \left\{ \frac{1}{||\omega||}\right\}

s.t, r_i=\frac{\omega^T+b}{||\omega||}y_i\geqslant \frac{1}{||\omega||} ,i=1,2,\cdots,m

最大化\frac{1}{||\omega||},也就是最小化\frac{1}{2}||\omega||^2,这里我用后者作为优化目标,就让你的计算可以方便了很多。 

数学上是完全可以证明,支持向量机的超平面存在着唯一性,至少有两个支持向量,而且超平面的位置仅由这些支持向量决定。

再感知机的模型中,优化的目标很明确:

在满足模型能够正确分类的约束条件下,使得样本集合中所有点到分割超平面的距离最小,这样的超平面可能会有无数个。

然后,怎么求上面给出的最优化问题嘞?可以用拉格朗日乘子法来求解:

Lag(\omega,b,\alpha)=\frac{1}{2}\left | \left | \omega \right | \right |^2+\sum_{i=1}^m\alpha_i(1-(\omega^T x_i+b)y_i),\alpha=(\alpha_1,\alpha_2,\cdots,\alpha_m)

\alpha_i\geqslant 0表示拉格朗日乘子,让lag函数对omega和b求偏导为零,然后计算就可以啦,详细的我就不写了,大家可以自己推一推,我也在纸上推一推,就不写latex了,嘿嘿。

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

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

相关文章

电源的安规设计

目录电源的安规设计1、安规的含义2、执行安规的目的3、电子产品设备可能存在的危险4、安全的基本原则5、安全防护的基本思想6、电击对人的伤害7、危险电压8、人对温度的刺激表现9、根据设备所处的环境,确定其污染等级10、安全距离的确定11、安规器件的要求——X、Y电…

【51单片机Task】:led十六进制控制led灯详解、按键控制流水灯、跑马灯等任务

学习目标: 学习普中51单片机的按键控制led灯。 电路图: 学习内容: LED灯的十六进制怎么算??? 在这给大家算一下:首先先看一下LED模块的电路图! 实物图: 可以把 D1 …

C#基础复习--枚举

枚举 目录 枚举 设置底层类型和显式值 隐式成员编号 位标志 Flags 特性 枚举是由程序员定义的类型,与类或结构一样 与结构一样,枚举是值类型,因此直接存储他们的数据,而不是分开存储成引用和数据 枚举只是一种类型的成员&#…

C语言实践——通讯录(3)(文件版)

首先感谢上一篇博客的大佬们的点赞,非常感谢!!! 目录 前言 一、需要添加的功能 1.增加保存数据函数——可以保存数据到文件中 主要逻辑: 注意事项: 代码实现: 2.修改初始化函数——新…

ChatGPT全球大封号!数10万企业停摆:第一批玩AI的人,被AI给玩了

观点| Mr.K 主笔| Wendy.L 编辑| Emma来源| 技术领导力(ID:jishulingdaoli)3月31日,Open AI就开始无征兆的进行全球大封号,其中亚洲是重灾区,官方没有给出任何声明,具体原因不得而知。并且暂停了这些地区新账号的注…

IDEA下载数据库驱动失败解决办法

IDEA下载数据库驱动失败解决办法 在使用IDEA连接数据库的时候可能会出现驱动下载失败的情况。我们可以到数据库官网上下载驱动进行本地安装。 下面以Sql Server为例: 打开官网,下载驱动 官网地址:https://www.microsoft.com/zh-cn/sql-se…

如何用WordPress搭建一个属于自己的网站、让你从0-1的保姆级教程

文章目录搭建网站必备前提第一步 拉取对应的lnpm包解压lnpm服务器开放端口号配置nginx安装对应的wordPress包第一步:安装 wordpress 安装包并解压到 /home/wwwroot第二步:登录MySQL(密码在前面 部署LNMP 时你设置过),创…

第五章 保护模式进阶,向内核迈进

获取物理内存容量 学习Linux获取内存的方法 通过调用BIOS中断0x15实现,分别是BIOS中断0x15的三个子功能,子功能号要存放到寄存器EAX或AX中: BIOS中断是实模式下的方法,只能进入保护模式前调用。可以在实模式下用这三种方法检测…

医院PACS系统源码,PACS源码,带3D重建PACS系统源码

PACS系统源码,带3D重建PACS源码 专门针对医院工作流程设计的,完全符合医院需要,配置灵活的放射科信息化解决方案。采用标准接口协议,实现预约登记、报告诊断、图像浏览和处理、信息统计等功能。 文末获取联系! 功能介…

基于广义benders分解法的综合能源系统优化规划(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

用友U8 cloud,信创云ERP的数智先锋

编辑:阿冒设计:沐由从来未曾有过一个春天,能够像当下这般被如此由衷地期待。经历了漫长的1000多个日日夜夜之后,我们的工作与生活终于回到正轨。自2023年以来,中国市场迎来“开门红”,消费市场加速回暖&…

分类算法性能度量指标

1.简介 为了了解模型的泛化能力,我们需要用某个指标来衡量,这就是性能度量的意义。常用的评估指标有:混淆矩阵(Confuse Matrix)、准确率(Accuracy)、精准率(Precision)和召回率(Recall)、F1-Score、ROC曲线(Receiver Operating Characteristi…

离散数学_九章:关系(1)

关系9.1关系及其性质 1、二元关系 2、集合A上的关系 3、n元素集合 有多少个关系? 4、关系的性质 1. 自反 2. 对称 3. 反对称 4. 传递 5、关系的组合 关系的合成 关系的幂 9.1关系及其性质 1、二元关系 设A和B是集合,一个从 A 到 B 的二元关系是…

Pytorch基础 - 8. scatter() / scatter_() 函数

目录 1. scatter() 定义和参数说明 2. 示例和详细解释 3. scatter() 常见用途 1. scatter() 定义和参数说明 scatter() 或 scatter_() 常用来返回根据index映射关系映射后的新的tensor。其中,scatter() 不会直接修改原来的 Tensor,而 scatter_() 直接…

元宇宙:虚拟仿真技术的全面提升

在当今数字化的世界中,我们经常听到虚拟现实、增强现实、混合现实等技术的名词,这些技术的应用越来越成熟。其中,虚拟仿真技术是一种通过计算机技术来模拟实际场景和对象的过程,它为我们提供了更多的可能性。而最近备受瞩目的元宇…

减震无人船或波浪自适应无人船

最近我的朋友夏先生介绍了一款他们自己正在研发的一款无人减震船,见下图,与以前无人船相比,它增加了悬挂减震系统(图中红框内)。 现有无人船大多属于中小型船舶,没有完善的减震减摇系统,减震减摇…

MIPI 打怪升级之DBI篇

目录1 Overview2 Display Architectures2.1 Type 1 Display Architecture Block Diagram2.2 Type 2 Display Architecture Block Diagram2.3 Type 3 Display Architecture Block Diagram2.4 Type 4 Display Architecture Block Diagram3 Interface Signal Description3.1 Type …

202306读书笔记|《与诗书在一起》——质而实绮,癯而实腴

《与诗书在一起》作者叶嘉莹,不错的一本书,大多只看了诗,部分读着比较有感觉的看了注释。 很喜欢的节选如下: 苏轼说陶渊明的诗“质而实绮,癯而实腴”,就是看起来它很简单质朴,内里实在是很美丽很丰富。 …

VS2010编译libcurl库并简单使用(c语言)

libcurl是什么? libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。 libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议…

Spring 之依赖注入底层原理

Spring 框架作为 Java 开发中最流行的框架之一,其核心特性之一就是依赖注入(Dependency Injection,DI)。在Spring中,依赖注入是通过 IOC 容器(Inversion of Control,控制反转)来实现…