【机器学习】深入探索SVM:支持向量机的原理与应用

 

 

目录

🍔 SVM引入

1.1什么是SVM?

1.2支持向量机分类

1.3 线性可分、线性和非线性的区分

🍔 小结

学习目标

  1. 知道SVM的概念

🍔 SVM引入

1.1什么是SVM?

看一个故事,故事是这样子的:

在很久以前的情人节,一位大侠要去救他的爱人,但魔鬼需要大侠先攻克他设置的防线,于是和他玩了一个游戏game。

魔鬼在桌子上似乎有规律放了两种颜色的球,说:“你用一根棍分开它们?要求:尽量在放更多球之后,仍然适用。”

于是大侠这样放,干的不错?

然后魔鬼,又在桌上放了更多的球,似乎有一个球站错了阵营。

大侠苦思冥想似乎记得学过SVM技术,于是就采用SVM试试。

这里的 SVM就试图把棍放在最佳位置,好让在棍的两边有尽可能大的间隙。

现在即使魔鬼放了更多的球,棍仍然是一个好的分界线。

在SVM 工具箱中有另一个更加重要的 trick(招式) 。 魔鬼看到大侠已经学会了前面一个trick,于是魔鬼给了大侠一个新的挑战。

现在,大侠没有棍可以很好帮他分开两种球了,现在怎么办呢?当然又想起了放大招---SVM。像所有武侠片中一样大侠桌子一拍,球飞到空中。然后,凭借大侠练就的轻功,大侠抓起一张纸,插到了两种球的中间。

现在,从魔鬼的角度看这些球,这些球看起来像是被一条曲线分开了。

最后,魔鬼被折服了

再之后,无聊的大人们,把这些球叫做 「data」 ,把棍子叫做 「classifier」 , 最大间隙trick 叫做 「optimization」 , 拍桌子叫做 「kernelling」 , 那张纸叫做 「hyperplane」。

1.2支持向量机分类

支持向量机的基本模型是定义在特征空间上的间隔最大的线性分类器。它是一种二分类的模型,当采用了核技巧之后,支持向量机可以用于非线性分类。不同类型的支持向量机解决不同问题:

(1)线性可分支持向量机(硬间隔支持向量机):

当训练数据线性可分的时候,通过硬间隔最大化,学习得到一个线性可分支持向量机。

(2)线性支持向量机(软间隔支持向量机):

当训练数据近似线性可分时,通过软间隔最大化,学习一个线性支持向量机。

(3)非线性支持向量机:

当训练数据不可分的时候,通过使用核技巧以及软间隔最大化,学得一个非线性支持向量机。

1.3 线性可分、线性和非线性的区分

第一个图是线性可分,我们借助线性可分支持向量机完成分类。第二个图是不能完全线性可分,我们通过线性支持向量机解决。第三个图是完全线性不可分的,需要借助非线性支持向量机分类。

通过上述描述,我们抽象其中的蓝球和红球,并将两种颜色的球转化为二维平面上的点坐标,篮球映射为黑球,红球映射为白球。使用直线H1,H2和H3分类这两类颜色的球,图中的H1不能很好的区分黑球和白球,可以看到H2和H3都能很好的区分这两种颜色的球。

区分数据集。 我们能够想到和H2和H3这样的直线一样可以区分两种颜色的球体有很多种条直线,虽然他们都能够很好的分类已经存在的黑球和白球,也就是我们之前讲到的训练集分类效果很好,训练误差为0。但是不能保证这些超平面在未知的实例上运行效果会很好,和上面魔鬼和大侠的例子一样,当魔鬼放置更多的黑球或白球的时候,我们提到的这些平面还能很好的让这些未知的球得到很好的分类吗?

我们这里考虑泛化误差的影响。 根据在检验样本上的运行效果,分类器必须从这些分类超平面中选择一个来表示它的决策边界。满足这个条件的很多,但是使得泛化误差最小的条件就是边际margin最大的情况。如左图的边际不及右边的边际margin大,我们选择右边的图作为边界最好的划分。因为 在有新的点出现的时候左边图的边际会错误分类一些点,而右侧就能很好的分类。

🍔 小结

1.SVM学习的目的在于找到具有最大边缘的超平面。

为啥:因为最大边缘超平面可以使得我们的训练误差很小的情况下,当有新数据的到来时也能使得测试误差达到最小。

2.支持向量概念:

所有坐落在边际两边的超平面上的点被称作” 支持向量 (support vectors)"。

如下图,这两个特殊点是支撑我们构建最大边缘超平面的。这些点所在的边缘超平面上的点,称为支持向量。下图中红色的点对右图中的红色的直线或平面有支撑作用,这些点是关键点。而其他点对最优超平面都没有影响。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WPF基础 | WPF 布局系统深度剖析:从 Grid 到 StackPanel

WPF基础 | WPF 布局系统深度剖析:从 Grid 到 StackPanel 一、前言二、Grid 布局:万能的布局王者2.1 Grid 布局基础:构建网格世界2.2 子元素定位与跨行列:布局的精细操控2.3 自适应布局:灵活应变的秘诀 三、StackPanel…

性能测试网络风险诊断有哪些?

目录 一、网络定位分析手段 二、sar命令 三、netstat命令 以下是几种常见的网络风险诊断方法 网络连通性检查 带宽与延迟测量 丢包率分析 网络拓扑结构审查 安全设备影响评估 协议层面上的优化 负载均衡器效能检验 云化服务架构下的特殊考量 系统应用之间的交换&am…

ios打包:uuid与udid

ios的uuid与udid混乱的网上信息 新人开发ios,发现uuid和udid在网上有很多帖子里是混淆的,比如百度下,就会说: 在iOS中使用UUID(通用唯一识别码)作为永久签名,通常是指生成一个唯一标识&#xf…

微服务学习-服务调用组件 OpenFeign 实战

1. OpenFeign 接口方法编写规范 1.1. 在编写 OpenFeign 接口方法时,需要遵循以下规范 1.1.1.1. 接口中的方法必须使用 RequestMapping、GetMapping、PostMapping 等注解声明 HTTP 请求的类型。 1.1.1.2. 方法的参数可以使用 RequestParam、RequestHeader、PathVa…

开源项目Umami网站统计MySQL8.0版本Docker+Linux安装部署教程

Umami是什么? Umami是一个开源项目,简单、快速、专注用户隐私的网站统计项目。 下面来介绍如何本地安装部署Umami项目,进行你的网站统计接入。特别对于首次使用docker的萌新有非常好的指导、参考和帮助作用。 Umami的github和docker镜像地…

研究 Day.js 及其在 Vue3 和 Vue 框架中的应用详解

前言 在前端开发中,日期和时间处理是一个常见需求。随着技术的发展,我们有了更多高效、灵活的日期库可供选择。Day.js 就是一个轻量级、易于使用的 JavaScript 日期库,其灵感来源于 Moment.js,但体积更小,速度更快。本…

python基础语法(3) -------- 学习笔记分享

目录: 1. 函数 1.1 语法格式 1.2 函数参数 1.3 函数返回值 1.4 变量的作用域 1.5 函数的执行过程 1.6 函数的链式调用 1.7 函数的嵌套调用 1.8 函数递归 1.9 参数默认值 1.10 函数的关键字传参 2. 列表和元组 2.1 列表和元组是啥 2.2 创建列表 2.3 访问下标 2.…

ceph新增节点,OSD设备,标签管理(二)

一、访问客户端集群方式 方式一: 使用cephadm shell交互式配置 [rootceph141 ~]# cephadm shell # 注意,此命令会启动一个新的容器,运行玩后会退出! Inferring fsid c153209c-d8a0-11ef-a0ed-bdb84668ed01 Inferring config /var/lib/ce…

解决查看服务器ESN(许可证管理)

服务器的ESN(许可证管理)和SN码是两个东西。 查看步骤如下: 进入服务器的iBMC管理系统(一般为机房运维人员可以查看) 选择“许可证管理” 红框中即可看到信息。

《深入解析:DOS检测的技术原理与方法》

DDOS入侵检测与防御 一、实现Linux下DDOS的入侵检测与防御 利用Python编程实现对wrk的泛洪攻击检测,并让程序触发调用Linux命令实现防御: 1、泛洪攻击的检测,可以考虑使用的命令,这些命令可以通过Python进行调用和分析 (1) netstat -ant …

论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(四)

Understanding Diffusion Models: A Unified Perspective(四) 文章概括学习扩散噪声参数(Learning Diffusion Noise Parameters)三种等效的解释(Three Equivalent Interpretations) 文章概括 引用&#xf…

1.23 补题 寒假训练营

E 一起走很长的路! 输入描述 第一行输入两个整数 n,q(1≤n,q≤210^5),代表多米诺骨牌的个数和询问次数。 第二行输入 n 个整数 a1,a2,…,an​(1≤ai≤10^9),表示多米诺骨牌的重量。 此后输入…

dmfldr实战

dmfldr实战 本文使用达梦的快速装载工具,对测试表进行数据导入导出。 新建测试表 create table “BENCHMARK”.“TEST_FLDR” ( “uid” INTEGER identity(1, 1) not null , “name” VARCHAR(24), “begin_date” TIMESTAMP(0), “amount” DECIMAL(6, 2), prim…

在深度Linux (Deepin) 20中安装Nvidia驱动

文章创作不易,麻烦大家点赞关注收藏一键三连。 在Deepin上面跑Tensorflow, pytorch等人工智能框架不是一件容易的事情。特别是如果你要使用GPU,就得有nvidia的驱动。默认情况下Deepin系统自带的是nouveau开源驱动。这是没办法用tensorflow的。下面内容是…

【Linux】IPC:匿名管道、命名管道、共享内存

⭐️个人主页:小羊 ⭐️所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 1、管道2、进程池3、命名管道4、共享内存 1、管道 我们知道进程具有独立性,但是在一些场景中进程间也需要通信&#…

Pyside6(PyQT5)中的QTableView与QSqlQueryModel、QSqlTableModel的联合使用

QTableView 是QT的一个强大的表视图部件,可以与模型结合使用以显示和编辑数据。QSqlQueryModel、QSqlTableModel 都是用于与 SQL 数据库交互的模型,将二者与QTableView结合使用可以轻松地展示和编辑数据库的数据。 QSqlQueryModel的简单应用 import sys from PySid…

DeepSeek学术题目选择效果怎么样?

论文选题 一篇出色的论文背后,必定有一个“智慧的选题”在撑腰。选题足够好文章就能顺利登上高水平期刊;选题不行再精彩的写作也只能“当花瓶”。然而许多宝子们常常忽视这个环节,把大量时间花在写作上,选题时却像抓阄一样随便挑一…

Linux的权限和一些shell原理

目录 shell的原理 Linux权限 sudo命令提权 权限 文件的属性 ⽂件类型: 基本权限: chmod改权限 umask chown 该拥有者 chgrp 改所属组 最后: 目录权限 粘滞位 shell的原理 我们广义上的Linux系统 Linux内核Linux外壳 Linux严格…

【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(一)

目录 1 -> 概述 1.1 -> 整体架构 2 -> 文件组织 2.1 -> 目录结构 2.2 -> 文件访问规则 2.3 -> 媒体文件格式 3 -> js标签配置 3.1 -> pages 3.2 -> window 3.3 -> 示例 4 -> app.js 4.1 -> 应用生命周期 4.2 -> 应用对象6…

计算机的错误计算(二百二十二)

摘要 利用大模型化简计算 实验表明,虽然结果正确,但是,大模型既绕了弯路,又有数值计算错误。 与前面相同,再利用同一个算式看看另外一个大模型的化简与计算能力。 例1. 化简计算摘要中算式。 下面是与一个大模型的…