老卫带你学---SVM支持向量机

article/2025/9/19 21:30:31

老卫带你学—SVM支持向量机

学习目标:

  1. 理解支持向量机的知识结构
  2. 理解支持向量机的原理与目标
  3. 理解算法推导的核心过程和意义(关键是损失函数约束条件的意义)
  4. 理解核函数的意义与方法

知识结构

hard margin SVM:可以容易的找到一条划分超平面来将两类分开;
soft margin SVM:不容易找到划分超平面,但是可以寻找到一条相对最好的;
Kelnel:将核函数应用于 SVM,增加其内积计算速度;(核函数只是一种计算方法,也可以用于其他方面)
对偶函数:将原来的问题转化为对偶形式,方便计算。
下面黄色的部分是重要的地方。
在这里插入图片描述
各种概念如下:
在这里插入图片描述
我们谈一谈支持向量机与逻辑回归的区别:
逻辑回归的损失函数是L=-ylog(y’)-(1-y)log(1-y’)
它所代表的含义就是,计算样本与划分面的距离损失,通过计算向量与边界法向量的内积来求距离(也就是投影),判断这个样本是否分类正确
而SVM对其进行一定的改造,认为超过一定的距离的样本是没有损失的,只需要计算划分面周围的向量,这些向量我们也称为支持向量
这就是逻辑回归与SVM最核心的区别

在这里插入图片描述(逻辑回归图)
在这里插入图片描述(SVM函数图像)
SVM的目标函数是:
左边的是原始SVM的目标函数,右边是对于松弛变量所加入的代价变量
下面的约束条件也引进松弛变量,使函数间隔加上松弛变量大于等于1.
在这里插入图片描述
这里要注意一个地方,在hard margin中没有损失函数,而在逻辑回归中损失函数与目标函数一样
下面我们看一下划分超平面:
在这里插入图片描述
在这里插入图片描述
但是SVM仅仅只需要考虑关于那几个支持向量(红线包括),不需要将所有的样本进行计算。
在这里插入图片描述
我们将分类问题中的输入空间特征空间看作两个空间
老卫语录:输入空间为欧式空间或离散空间;特征空间为欧式空间或希尔伯特空间
线性可分支持向量机(Hard Margin SVM)与线性支持向量机(Soft Margin SVM)将输入空间与特征空间元素一一对应;
非线性支持向量机将输入空间通过非线性映射映射为特征空间。
总体来说,支持向量机的学习都是在特征空间中进行

在这里插入图片描述
超平面的函数与决策函数如下
其中W是超平面的法向量,法向量指向的是正类;
x就是样本向量;
b为截距。
φ(x)就是前面说的映射函数
在这里插入图片描述
下面我们开始推导目标函数:
在这里插入图片描述
在这里插入图片描述
在这里我们将min后面的一坨通过约束条件处理掉,因为约束条件是大于等于1,而目标函数中是min,我们干脆直接取1
在这里插入图片描述
然后求W分之1的最大值,其实就是求W的平方的最小值。1/2是为了后面的求导方便而设计的。
W的绝对值就是L1正则化;W的平方就是L2正则化。
在这里插入图片描述

对偶函数

有时候为了计算方便,我们将原始问题转换为对偶问题来解决。(详情请看蓝皮书p103)
转换对偶函数
在这里插入图片描述
L对W,b分别求偏导
在这里插入图片描述
然后再将偏导结果带入上式
在这里插入图片描述
继续求对a的极大
在这里插入图片描述
添加负号,转化为min问题
在这里插入图片描述
最后可以由a求得w,b的解。
在这里插入图片描述

线性支持向量机

对于有的时候,我们的问题是线性不可分的,我们需要对相关细节进行改造。
通常情况是,训练数据中有一些特异点,将这些特异点去除后,剩下大部分的样本点组成的集合还是线性可分的。
老卫语录:线性不可分指的是某些样本点不能满足函数间隔大于等于1的约束条件。
为了解决这样的问题,我们对每个样本引进一个松弛变量,使函数间隔加上松弛变量大于等于1.
在这里插入图片描述
所以线性SVM的目标函数如下:
在这里插入图片描述
和Hard Margin问题一样,为了计算方便,我们将原始问题转化为对偶函数,然后对w,b,松弛变量进行求导。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以线性支持向量机的学习算法如下:
在这里插入图片描述
在这里插入图片描述
LR与SVM的损失函数图像对比:
在这里插入图片描述

非线性支持向量机

有的时候我们的问题不是线性的,我们需要通过映射函数φ,将非线性问题转化为线性问题,数据从低维映射至高维。
在这里插入图片描述
在这里插入图片描述
对于核函数的类别可以看蓝皮书p122常用的核函数。

LR与SVM的区别:

  1. 损失函数不同,SVM采用的Hinge损失,而LR采用的是交叉熵损失;
  2. SVM仅考虑支持向量;
  3. SVM有约束条件;
  4. LR的可解释性更强;
  5. SVM不能给出概率结果;
  6. SVM对非线性问题采用核函数的方法速度更快。

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

相关文章

老卫带你学---推荐系统

机器学习的一种重要应用就是推荐系统。 比如我们的淘宝推荐,豆瓣推荐,优酷电影推荐等等都用到了推荐系统。 那我们来谈一谈推荐系统的细节。 推荐系统评价指标 要了解推荐系统,先了解其评价指标。 1.准确度 precisionTP/TPFP; recallTP/TP…

老卫带你学---最大熵模型与EM算法

最大熵模型与EM算法 最大熵模型与EM算法在机器学习里面尤为重要。接下来我们一步一步的介绍相关细节: 先验概率与后验概率 后验概率就是通过已有的数据来推断未知的数据,先验概率就是直接对未知的数据进行预测。 所以,我们机器学习的目标就…

SQL创建数据库提示“无法获得数据库 ‘model‘ 上的排他锁。请稍后重试该操作”处理方法

use master --选择数据库 go declare sql varchar(100) while 11 begin select top 1 sql kill cast(spid as varchar(3)) from master..sysprocesses where spid > 50 and spid <> spid and dbid db_id(model)if rowcount 0 break ;print(sql) --打印杀掉进…

SQL Server 数据库创建与删除

目录 &#xff08;一&#xff09;前言 &#xff08;二&#xff09;创建数据库方式 1. 数据库创建方式一 SSMS 方式 &#xff08;1&#xff09; 点击新建数据库想选项 &#xff08;2&#xff09; 新建数据库页面配置 2. 数据库创建方式二 T-SQL 方式 &#xff08;三&…

SQL Server基础学习——用代码创建数据库和表

&#xff11;.连接成功后出现下述页面&#xff0c;那么我们学习第一步先建个数据库和表 &#xff12;.建立之前要了解基础SQL语言 SQL语言是集DDL、DML、DCL 于一体的数据库语言。 &#xff11;&#xff09;DDL语句引导词&#xff1a;Create&#xff08;建立&#xff09;、Alt…

SQL Server数据库(创建及管理)

做好学习记录,方便随时查看。^ v ^一、数据库文件:系统数据库+用户数据库 1、系统数据库: 随程序一起安装,用户提供系统所需要的数据的数据库,是SQL Server运行的基础。 1)master数据库(主数据库) 用于记录SQL Server的所有系统级别的信息,若被损坏,SQL Server将无…

SQL Server 创建数据库

使用SQL Server2014创建数据库有两种方法&#xff1a;使用图形化界面创建数据库和使用T—SQL语句创建数据库。 下面就以创建testdb数据库为例 创建一个名字为testdb的数据库&#xff0c;该数据库包含一个数据文件和一个日志文件&#xff0c;逻辑文件名为testdb_data,磁盘文件…

SQL数据库的连接、创建操作

目录&#xff1a; 1、数据库的连接、创建 2、对字段的操作&#xff1a;&#xff08;alter table&#xff09; 3、对数据的操作&#xff08;插入、修改、删除&#xff09; 4、数据查询&#xff08;select&#xff09; 5、多表查询&#xff08;join on&#xff09; 6、约束…

用T-SQL语句创建数据库

点击新建查询&#xff0c;后开始 --创建数据库 create database DBTEST on --数据文件 (nameDBTEST,--逻辑名称filenameD:\data\DBTEST.mdf,--物理路径和名称size5MB,--文件初始大小maxsize100MB,--最大存储空间filegrowth2MB--文件的增长方式&#xff0c;可写大小&#xff0c;…

用 SQL 创建数据库一系列操作(详细举例)

文章目录 创建如下表1.我用的是SQL2008&#xff1b;如图2.点击“新建查询”&#xff0c;如图&#xff1a;3.创建数据库 create Database 数据库名称4.很重要一步&#xff0c;刷新数据库&#xff0c;不然找不见。点住数据库按F5。5.使用当前数据库。6.创建表7.删除表8.查看、修改…

SQL学习笔记——创建数据库和表

一、创建数据库和表 1、创建数据库 打开 SSMS&#xff08;Microsoft SQL Server Management Studio&#xff09;→新建查询→输入如下图的sql语句→点击执行 CREATE DATABASE CPXS ON (NAME CPXS_Data,FILENAME C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER…

SQLserver 创建数据库关系图

今天在使用SQLserver 创建数据库关系时出现了如下错误 无法解决 期待后续的解决方案&#xff0c;欢迎和感谢知道的小伙伴留言回复。 使用 cmd Python等暂时性的解决也 OK

数据库——T-SQL方式创建数据库

任务&#xff1a;使用命令行&#xff08;脚本&#xff09;方式创建数据库。 T-SQL方式创建数据库 一、新建查询1.新建查询2.文件保存3.使用文本编辑器 二、关于基本语言1. 注释2. 创建数据库3.关于文件后缀名4.多文件组&#xff0c;多数据库的创建 一、新建查询 1.新建查询 2…

【MySQL】Navicat中SQL创建数据库表

文章目录 Navicat中SQL基本操作&#xff08;1&#xff09;创建数据库&#xff08;2&#xff09;新建查询&#xff08;3&#xff09;查询界面&#xff08;4&#xff09;注释写法&#xff08;5&#xff09;新建表练习&#xff08;6&#xff09;查询表的结构&#xff08;7&#xf…

使用SQL语句创建数据库与创建表

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言初阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>: 本篇记录一下牛牛在学校学习的sql serve数据库知识,内…

数据库--T-SQL创建数据库表

T-SQL创建数据库表要求如下&#xff1a; 1.给出一个名为xxgl的数据库&#xff0c;并将其附加到当前实例中。 创建一个名为xxgl的数据库&#xff0c;该数据库有一个数据文件和一个日志文件组成&#xff0c;主数据文件其逻辑名为xxgl &#xff0c;物理名为xxgl.mdf&#xff0c;…

SQL Server数据库——创建数据库

目录 一、界面方式创建数据库 1.1创建数据库xscj&#xff0c;数据文件和日志文件的属性按默认值设置 1.2在xscj数据库中增加文件xcsj1&#xff0c;其属性均取系统默认值 1.3在数据库xscj中增加一个名为myGroup的文件组。 1.4数据库的重命名 1.5数据库的删除 二、命令方式…

教你怎么搭建SQL数据库(超详细)

打开SQL查询后&#xff0c;我们第一步肯定是要创建一个空的数据库&#xff0c;采用Create Database引导。但是&#xff0c;系统默认的数据库一般是Master&#xff0c;我们需要用Use语句定位。此时&#xff0c;我们就要来创建简单基本表&#xff0c;使用Create Table来引导。接下…

SQL Server数据库的创建方法

可以使用以下3种方法创建数据库。 一.使用SQL Server Management Studio创建数据库 二..使用CREATE DATABASE 语句创建数据库。 三.使用模板创建数据库 一.使用SQL Server Management Studio创建数据库 创建一个名为“学生选课”的学生选课管理数据库 在SQL Server Manag…

SQL server创建数据库

文章目录 SQL server创建数据库一.图形化界面创建数据库二.使用CREATE DATABASE语句创建数据库 SQL server创建数据库 一.图形化界面创建数据库 1.启动SQL Server Management Studio&#xff0c;并连接到SQL Server 2012中的数据库&#xff0c;在“对象资源管理器”中展开“数…