支持向量机算法(一):像讲故事一样讲明白它的原理及实现奥秘
1、支持向量机算法介绍
支持向量机(Support Vector Machine,SVM)是一种基于统计学习理论的模式识别方法, 属于有监督学习模型,主要用于解决数据分类问题。SVM将每个样本数据表示为空间中的点,使不同类别的样本点尽可能明显地区分开。通过将样本的向量映射到高维空间中,寻找最优区分两类数据的超平面,使各分类到超平面的距离最大化,距离越大表示SVM的分类误差越小。通常SVM用于二元分类问题,对于多元分类可将其分解为多个二元分类问题,再进行分类,主要的应用场景有图像分类、文本分类、面部识别、垃圾邮件检测等领域。
☀关于支持向量机的理解,有3个问题,请进一步解释。
☀(1)空间中的点,这个空间是什么?
在支持向量机(SVM)的语境中,这个“空间”是特征空间。假设我们有一个数据集,每个样本有多个特征。例如,在一个简单的二维数据集(如判断一个水果是苹果还是橙子),我们可能有两个特征:水果的大小和颜色深浅。如果把水果的大小作为x轴,颜色深浅作为y轴,那么每个水果样本就可以用这个二维平面(空间)中的一个点来表示。
当有更多的特征时,比如再加上水果的甜度、硬度等特征,这个空间就会变成三维、四维甚至更高维度。这个空间的维度取决于数据集中样本的特征数量。一般来说,空间中的每个维度对应着一个特征,这样就可以通过这些维度来定位样本在这个空间中的位置,也就是用空间中的点来表示样本数据。
☀(2)怎么将样本的向量映射到高维空间中,高维空间是什么?
①高维空间的概念:高维空间是相对于我们日常所熟悉的二维或三维空间而言的。在SVM中,高维空间是一个数学抽象概念。以一个简单的例子来说明,如果我们在二维平面中有一些线性不可分的数据,比如一个圆内的点属于一类,圆外的点属于另一类。在二维空间中,很难找到一个直线(超平面)来划分这两类数据。但是如果我们把这些数据映射到三维空间,通过一个合适的函数(比如),在三维空间中这些数据可能就变得线性可分了。高维空间就是具有更多维度的空间,其维度数量取决于我们使用的映射函数和数据的特性。
②映射方法:通常使用核函数(Kernel Function)来将样本向量映射到高维空间。常见的核函数有线性核函数、多项式核函数、高斯径向基核函数(RBF)等。对于线性核函数,它在一定程度上可以看作是一种简单的映射,在某些线性可分的数据情况下可以很好地工作。而对于高斯径向基核函数,它能够将数据映射到一个无穷维的空间。这个函数通过计算两个样本点之间的距离,将其转换为一个新的表示形式,从而实现了从低维空间到高维空间(这里是无穷维)的映射。
☀(3)什么是超平面,如何寻找 ?
①超平面的概念:在二维空间中,超平面是一条直线,它可以将平面分成两个部分。例如,对于一个简单的二元分类问题,在平面上的直线就是一个超平面,直线一侧的点可以被归为一类,另一侧的点归为另一类。在三维空间中,超平面是一个平面,如。一般地,在维空间中,超平面是一个维的子空间。它的方程可以写成,其中是权重向量,是样本向量,是偏置项。
②寻找超平面的方法:SVM的目标是找到一个最优的超平面,使得两类数据之间的间隔(Margin)最大化。这个间隔是指从超平面到最近的样本点(支持向量)的距离。通过求解一个优化问题来找到这个超平面。具体来说,我们要最小化,同时满足约束条件。这个优化问题可以通过一些优化算法,如序列最小优化(Sequential Minimal Optimization,SMO)算法来求解,从而得到最优的超平面。
2、支持向量机算法实现
支持向量机模型由简单到复杂分为以下三种:
①线性可分支持向量机(Linear Support Vector Machine In Linearly Separable Case),有一些苹果和橙子,把它们的大小、颜色深浅当作特征,在二维平面上,能找到一条直线将苹果和橙子完全分开,每个水果都能精准归类,这就是线性可分,这条直线就是分类超平面,此为硬间隔最大化,这便是线性可分支持向量机的作用。
②线性支持向量机(Linear Support Vector machine),有一堆水果,多数苹果和橙子能用一条直线大致分开,但有几个坏果混在对面堆里。这时引入松弛因子,允许少量分错,找到一条尽量分对多数水果的直线,实现软间隔最大化,得到的就是线性支持向量机,应对近似线性可分样本。
③非线性支持向量机(Non-Linear Support Vector Machine),看一群形状各异的云朵和飞鸟,在平面上画直线根本分不开。利用核技术,将它们 “变” 到高维空间,在那可能云朵聚一堆、飞鸟聚一堆,再用软间隔最大化找到个曲面分开它们,这就是非线性支持向量机,处理非线性可分样本。
在实际应用中很少有线性问题,支持向量机模型应用最多的是第三种模型。然而,复杂模型是简单模型的改进,而且通过核函数映射就能将低维的非线性问题转化为高维空间的线性问题。
(1)线性可分支持向量机
首先假设有两分类数据,如下图所示。
现在要找出一条最佳的分割线,将两类数据分隔开。对于线性可分两分类数据,支持向量机就是条直线,对于高维数据点就是一个超平面,下图所示的三条直线都可以将上图中的两类数据分开。
除了a、b、c外还有无数条分割线,那么,在这些分割线中哪条是最完美的呢?目标是选择一条具有较强分类能力的直线,即较稳定的分类结果和较强的抗噪声能力。
假如在上图中又增加了一些数据,如下图所示。
由于新增了样本数据,相对于直线b而言,直线a与c对样本变化的适应性变差,使用直线a进行分类,标记的圆形点会被分到三角形中,使用直线c进行分类,标记的三角形点会被分到圆形中。 如何找到最优分类数据的分割线,使得具有最优的数据分类能力呢?这条分界线要尽可能地远离两类数据点,即数据集的边缘点到分界线的距离d最大,这里虚线穿过的边缘点就叫作支持向量,分类间隔2d,如下图所示。
(下图中,虚线共穿过了3个点,那么共有3个支持向量)
这里的数据点到超平面的距离就是间隔(margin),当间隔越大,这条分割线(分类器)也就越健壮,当有新的数据点的时候,使用这条分割线得到的分类结果也就越可信。
假设b为最优分割线,那么此分割线方程为:
转化成向量形式:
只是在二维形式上的表示,如果扩展到n维,那么将变成:
①x代表样本的特征向量,n表示特征的数量,不同的应用场景下特征的数量和具体内容会有所不同。
②w代表权重向量,这些权重值反映了各个特征在分类决策中的重要程度。
③γ是偏置项,用于调整超平面的位置,使得超平面能够更好地对不同类别的样本进行分类。
可以将超平面方程写成更一般的表达形式:
本次线性可分支持向量机的内容已讲解完毕,下次继续支持向量机知识点的讲解。
相关文章:
支持向量机算法(一):像讲故事一样讲明白它的原理及实现奥秘
1、支持向量机算法介绍 支持向量机(Support Vector Machine,SVM)是一种基于统计学习理论的模式识别方法, 属于有监督学习模型,主要用于解决数据分类问题。SVM将每个样本数据表示为空间中的点,使不同类别的…...
掌握RabbitMQ:全面知识点汇总与实践指南
前言 RabbitMQ 是基于 AMQP 高级消息队列协议的消息队列技术。 特点:它通过发布/订阅模型,实现了服务间的高度解耦。因为消费者不需要确保提供者的存在。 作用:服务间异步通信;顺序消费;定时任务;请求削…...
Ansys Discovery 优化模式:掌握网格划分方法
本篇博客文章介绍了 Ansys Discovery 中高级 CFD 仿真的 Refine 模式下可用的网格划分方法。上一篇文章讨论了 Explore 模式中可用的网格划分技术。 Refine 模式下的高级网格划分技术 使用 Ansys Discovery 时,Refine 模式提供的网格划分技术比 Explore 模式多。这…...
CentOS: RPM安装、YUM安装、编译安装(详细解释+实例分析!!!)
目录 1.什么是RPM 1.1 RPM软件包命名格式 1.2RPM功能 1.3查询已安装的软件:rpm -q 查询已安装软件的信息 1.4 挂载:使用硬件(光驱 硬盘 u盘等)的方法(重点!!!) 1…...
(转)rabbitmq怎么保证消息不丢失?
RabbitMQ 可以通过以下多种机制来保证消息不丢失: 生产阶段 - 持久化队列和交换器: - 在声明队列和交换器时,将 durable 参数设置为 true ,确保它们是持久化的。这样,即使 RabbitMQ 节点重新启动,队列和交…...
List ---- 模拟实现LIST功能的发现
目录 listlist概念 list 中的迭代器list迭代器知识const迭代器写法list访问自定义类型 附录代码 list list概念 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素…...
电力场景输电线覆冰分割数据集labelme格式1227张2类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):1227 标注数量(json文件个数):1227 标注类别数:2 标注类别名称:["ice","powerline"] 每个…...
springboot 日志实现
日志 日志框架可以分为 日志门面(Facade) 和 日志实现(Implementation),Spring Boot 使用了 SLF4J 作为日志门面,Logback 或 Log4j2 作为日志实现。 日志门面以及日志实现 日志门面 日志门面࿰…...
Ubuntu Server安装谷歌浏览器
背景 服务器上跑爬虫服务器需要安装谷歌浏览器 安装 wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb### sudo apt install ./google-chrome-stable_current_amd64.deb...
毕业项目推荐:基于yolov8/yolov5/yolo11的动物检测识别系统(python+卷积神经网络)
文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…...
计算机网路HTTP、TCP详解
HTTP HTTP基本概念 HTTP(超文本传输协议):HTTP是在计算机世界中两点之间传输文字、图片、视频等超文本内容数据的约束与规范。 常见状态码: 2xx:报文被收到,已经在正确处理中。 3xx:重定向…...
小程序未来趋势预测:技术革新与市场前景
一、引言 在数字化转型加速的时代,小程序作为一种轻量级、无需下载安装的应用形式,凭借其快速开发、易于使用的特点,迅速崛起并成为企业和开发者拓展业务的重要工具。随着移动互联网的进一步普及和用户对便捷应用体验的需求增长,…...
JavaEE初阶——计算机工作原理
一、什么是JavaEE JavaEE(Java Platform,Enterprise Edition)是sun公司(2009年4月20日甲骨文将其收购)推出的企业级应用程序版本。这个版本以前称为 J2EE。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器…...
Web前端ui框架
文章目录 Element简介 Ant Design vue简介关键特点: iview简介 Element 官网:https://element.eleme.cn/#/zh-CN/component/installation添加链接描述 简介 Elementui 一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库 Ant Design …...
炸弹 (boom.c)
炸弹 (boom.c) 时间限制: 800ms 内存限制: 256000KiB 进度: 57/12406 0.5% 题目描述 出题助教: Sakiyary 验题助教: Corax、XiEn、ErinwithBMQ、runz、MacGuffin、Bob 维多利亚的腐烂荒野上出现了 N 个魔物,你和小维需要抓紧时间调配炸弹对付它们。 荒野可以视…...
【C语言】可移植性陷阱与缺陷(八): 随机数的大小
在C语言编程中,随机数的生成和使用是一个常见的需求。然而,由于不同平台上的C标准库实现可能存在差异,随机数的生成和使用也可能面临可移植性问题。本文将深入探讨C语言中随机数的大小与可移植性相关的陷阱与缺陷,并提供相应的解决…...
SSL VPN
SSL VPN 是什么? 是采用SSL/TLS协议来实现远程接入的一种轻量级 VPN 技术。利用 SSL 协议提供的基于证书的身份认证、数据加密和消息完整性验证机制,可以为应用层之间的通信建立安全连接。因为 SSL 协议内置于浏览器中,使用 SSL VPN 可以免于…...
C语言:函数
目录 1.函数的解释 2.C语言函数的分类 2.1库函数 2.2自定义函数 2.2.1自定义函数的语法格式 2.2.2自定义函数的实践 (1)第一题:欢迎光临 (2)第二题 打印数字的平方 编辑 (3)第三题 计算和 3.函数的参数 3.1值传递的表现 --- 形参 3.2地址传递的表现 -…...
Vue 环境配置与项目创建指南
1. 前置要求 在开始配置 Vue 开发环境之前,需要确保以下工具已安装: Node.js:Vue 的构建工具依赖 Node.js。 npm 或 yarn:Node.js 自带 npm 包管理工具,也可以选择安装 yarn。 安装 Node.js 前往 Node.js 官网 下…...
关于物联网的基础知识(三)——物联网技术架构:连接万物的智慧之道!连接未来的万物之网!
成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于物联网的基础知识(三&a…...
iOS - Tagged Pointer
1. 基本结构 // Tagged Pointer 的内存布局 union TaggedPointer {uintptr_t bits; // 完整的指针值struct {uintptr_t data : 60; // 数据部分uintptr_t tag : 4; // 类型标记};// 扩展类型struct {uintptr_t extData : 52; // 扩展数据uintptr_t extTag : …...
基于SpringBoot的音乐网站与分享平台
基于SpringBoot的音乐网站与分享平台 摘要1. 研究背景2.研究内容3.系统功能 3.1前台首页功能模块3.2在线听歌功能模块3.3后台登录功能模块3.4在线听歌管理模块 4.部分功能代码实现5.源码分享(免费获取) 需要源码联系我即可(免费获取)~ ??大家点赞、收藏、关注、评论啦 、查…...
【机器学习篇】 科技异次元的超强 “魔杖”,开启奇幻新程
一起开启这场旅行吧,关注博主,点赞支持不迷路,下面一同欣赏本篇的美妙吧!! ! 博主主页: 羑悻的小杀马特.-CSDN博客 在当今科技飞速发展的时代,机器学习宛如一把来自科技异次元的超强…...
opencv CV_TM_SQDIFF未定义标识符
opencv CV_TM_SQDIFF未定义标识符 opencv4部分命名发生变换,将CV_WINDOW_AUTOSIZE改为WINDOW_AUTOSIZE;CV_TM_SQDIFF_NORMED改为TM_SQDIFF_NORMED。...
OneFlow的简单介绍
OneFlow 是北京一流科技有限公司旗下的采用全新架构设计的开源工业级通用深度学习框架。以下是关于 OneFlow 的详细介绍: 本篇文章的目录 特点 功能 应用场景 发展历程 特点 简洁易用的接口:为深度学习相关的算法工程师提供一套简洁易用的用户接口…...
如何配置【Docker镜像】加速器+【Docker镜像】的使用
一、配置Docker镜像加速器 1. 安装/升级容器引擎客户端 推荐安装1.11.2以上版本的容器引擎客户端 2. 配置镜像加速器 针对容器引擎客户端版本大于1.11.2的用户 以root用户登录容器引擎所在的虚拟机 修改 "/etc/docker/daemon.json" 文件(如果没有…...
《OpenCV》——模版匹配
文章目录 什么是模版匹配?函数介绍实例 什么是模版匹配? 模板匹配是在一幅图像中寻找与另一幅模板图像最匹配部分的技术。OpenCV 提供了多种模板匹配的方法,它在目标检测、物体识别等众多计算机视觉任务中有广泛的应用。例如,你有…...
【网络安全技术与应用】(选修)实验3 网络侦察
一、实验目的 培养学生综合运用搜索引擎、Whois数据库等手段对目标站点进行侦查的能力,了解站点查询常用的信息源及搜索工具,熟练掌握常见搜索工具的功能及使用技巧。培养学生使用搜索引擎在互联网查找特定设备的能力,熟悉联网设备搜索引擎的功能,熟练掌握设备搜索引擎的使…...
基于XGBoost的集成学习算法
目录 一、XGBoost原理1.1 提升方法(Boosting)1.2 提升决策树 (BDT)1.3 梯度提升决策树 (GBDT)1.4 极限梯度提升(XGBoost)1.4.1 XGBoost改进1.4.2 XGBoostcsklearn实现1.4.3 XGBoost回…...
【84键矮轴无线键盘】个人使用经历
推荐: 前行者MK84键(理由:价格实惠,键位布局好,其他都是可接受程度)K3 max(理由:除了短命的续航、脚垫容易脱落,已无明显短板) 我需要一把在小巧、舒适的主力…...
基于Arduino的FPV头部追踪相机系统
构建FPV头部追踪相机:让你置身于遥控车辆之中! 在遥控车辆和模型飞行器的世界中,第一人称视角(FPV)体验一直是爱好者们追求的目标。通过FPV头部追踪相机,你可以像坐在车辆或飞行器内部一样,自由…...
Flutter:邀请海报,Widget转图片,保存相册
记录下,把页面红色区域内的内容,转成图片后保存到相册的功能 依赖 # 生成二维码 qr_flutter: ^4.1.0 # 保存图片 image_gallery_saver_plus: ^3.0.5view import package:demo/common/index.dart; import package:ducafe_ui_core/ducafe_ui_core.dart; i…...
CSS——16. nth—child序列选择器1
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>nth-child选择器</title><style type"text/css">/* 选择的是li的父元素(ul)中的第9个li子元素 */li:nth-child(9){color: red…...
【HarmonyOS 5.0】从0到1开发购物应用App(二):登录页对接口
【HarmonyOS Arkts笔记】http网络请求封装 【HarmonyOS Arkts笔记】ohos.data.preferences用户首选项实现存储信息 登录页 点击登录按钮调用login()方法 import { promptAction, router } from kit.ArkUI; import loginApi from "../../api/login" import Prefere…...
asp.net core webapi中的数据注解与数据验证
在这一课中,主要讲解了如何在 Web API 中使用数据注解(Data Annotations)和进行数据验证,以确保请求数据的有效性和完整性。 在 Web API 中,数据验证是确保客户端传递的数据符合业务规则和格式要求的关键步骤。数据注…...
VulnHub—potato-suncs
使用命令扫描靶机ip arp-scan -l 尝试访问一下ip 发现一个大土豆没什么用 尝试扫描一下子域名 没有发现什么有用的信息 尝试扫描端口 namp -A 192.168.19.137 -p- 尝试访问一下端口,发现都访问不进去 查看源代码发现了网页的标题 potato,就想着爆破一下密码 hydr…...
uniapp 微信小程序 自定义日历组件
效果图 功能:可以记录当天是否有某些任务或者某些记录 具体使用: 子组件代码 <template><view class"Accumulate"><view class"bx"><view class"bxx"><view class"plank"><…...
云架构Web端的工业MES系统设计之区分工业过程
云架构Web端的工业MES系统设计之区分工业过程 在当今数字化浪潮席卷全球的背景下,制造业作为国家经济发展的重要支柱产业,正面临着前所未有的机遇与挑战。市场需求的快速变化、客户个性化定制要求的日益提高以及全球竞争的愈发激烈,都促使制造企业必须寻求更加高效、智能的生产…...
Harbor 仓库部署(docker-compose 部署方式)
一、 安装的前提条件 硬件 资源 最低 推荐 cpu2C4C内存4G8G硬盘40G160G 软件 软件 版本 描述 dockerv17.0.6-ce 安装参考官方文档 Install Docker Engine | Docker Documentation docker-composev1.18.0 安装参考官方文档 Overview | Docker Documentation Openssllatest…...
机器学习基础-支持向量机SVM
目录 基本概念和定义 1. 超平面(Hyperplane) 2. 支持向量(Support Vectors) 3. 线性可分 4. 边界 SVM算法基本思想和分类 基本思想 间隔最大化 间隔(Margin) 软边距 SVM 核函数的概念 基本概念…...
卸载wps后word图标没有变成白纸恢复
这几天下载了个wps教育版,后头用完了删了 用习惯的2019图标 给兄弟我干没了??? 其他老哥说什么卸载关联重新下 ,而且还要什么撤销保存原来的备份什么,兄弟也是不得不怂了 后头就发现了这个半宝藏博主&…...
mongodb==安装prisma连接
官网下载mongodb,解压安装 Download MongoDB Community Server | MongoDB 修改bin/mongod.cfg # mongod.conf# for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/# Where and how to store data. storage:dbPat…...
python代码实现了一个金融数据处理和分析的功能,主要围绕国债期货及相关指数数据展开
# 忽略某些模块的提示信息 import warnings warnings.filterwarnings("ignore") # 在全局配置中添加RQData账号信息 import rqdatac as rq from typing import List import pandas as pd import numpy as np import re from datetime import datetime, timedelta,tim…...
声音是如何产生的
一、音频概述 RTMP中一般音频采用aac编码,采样率为44100HZ, 每帧1024采样,帧率43,23.2ms一帧 RTC中一般音频采用opus编码,采样率为48000HZ,每帧480采样,帧率100,10ms一帧 通道数(c…...
Matlab回归预测大合集(不定期更新)-188
截至2025-1-2更新 1.BP神经网络多元回归预测(多输入单输出) 2.RBF神经网络多元回归预测(多输入单输出) 3.RF随机森林多元回归预测(多输入单输出) 4.CNN卷积神经网络多元回归预测(多输入单输…...
CUDA编程【7】 线程束
文章目录 线程束和线程块线程束线程块 线程束的分化问题线程束分化(Warp Divergence)线程束分化的执行机制如何避免线程束的分化 线程束和线程块 线程束 线程束是SM中基本的执行单元当一个网格被启动(即一个核函数被启动)&#…...
nodejs:nodejs的技巧有哪些(2)
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者构建高性能的网络应用。 1. 使用异步编程,利用 async/await 来处理异步操作,使代码更清晰、易读。 const fetchData async () > { const data await getDataFrom…...
构建数字化校园:定义与意义
随着信息技术的快速发展,"数字化校园"这一概念逐渐成为教育领域内热议的话题。数字化校园是指利用先进的信息技术手段,如互联网、大数据、云计算等,对学校的教学、科研、管理和服务等方面进行全面升级和优化的过程。它不仅改变了传…...
LabVIEW语言学习过程是什么?
学习LabVIEW语言的过程可以分为几个阶段,每个阶段的重点内容逐步加深,帮助你从入门到精通。以下是一个简洁的学习过程: 1. 基础入门阶段 理解图形化编程:LabVIEW是一种图形化编程语言,与传统的文本编程语言不同&am…...
阿里云 人工智能与机器学习
阿里云的 人工智能(AI)与机器学习(ML) 服务为企业提供了全面的AI解决方案,帮助用户在多个行业实现数据智能化,提升决策效率,推动业务创新。阿里云通过先进的技术和丰富的工具,支持用…...