当前位置: 首页 > news >正文

机器学习模型——SVM(支持向量机)

基本概念:

Support Vector Machine (支持向量机):  

支持向量:支持或支撑平面上把两类类别划分开来的超平面的向量点。

:一个算法

SVM是基于统计学习理论的一种机器学习方法。简单地说,就是将数据单元表示在多维空间中,然后在这个空间中对数据做划分的算法。  

SVM是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性之间寻求最佳折衷,以期获得最好的推广能力(或泛化能力)。所谓VC维是对函数类的一种度量,可以简单的理解为问题的复杂程度,VC维越高,一个问题就越复杂。正是因为SVM关注的是VC维,因此SVM解决问题的时候,和样本的维数是无关的。(甚至样本是上万维的都可以,这使得SVM很适合用来解决文本分类的问题,当然也是因为因为引入了核函数)。

https://www.cnblogs.com/massquantity/p/10920043.html      具体原理推荐大家看这一篇

详细介绍:

SVM,即支持向量机(Support Vector Machine),是一种用于分类和回归分析的机器学习算法

线性分类器:SVM的基础是一个线性分类器,这意味着它通过在特征空间中绘制一条直线来区分不同的类别。在二维空间中,这条线就是一条直线;在三维空间中,它变成了一个平面;在更高维的空间中,它是一个超平面。

最大间隔:SVM的一个特点是它试图找到最佳的分界线,使得两个类别之间的间隔(距离)尽可能大。这个间隔被称为“最大边距”,这样做的目的是为了确保分类的准确性和可靠性。

支持向量:在SVM中,最靠近分界线的点被称为“支持向量”。这些点对于确定分界线的位置至关重要,因为它们是构建模型的关键数据点。

核技巧:尽管SVM最初是线性分类器,但它可以通过所谓的“核技巧”来处理非线性问题。核技巧允许SVM将数据映射到一个更高维的空间,在这个空间中数据变得线性可分。

泛化能力:SVM的设计旨在通过有限的样本信息在模型的复杂性和学习能力之间寻求平衡,以获得良好的泛化能力,即在新的数据上也能做出准确的预测。

SVM的原理较为复杂,里面有提到拉格朗日等知识,这里我就不多说了。

当一个分类问题,数据是线性可分的,也就是用一根棍就可以将两种小球分开的时候,我们只要将棍的位置放在让小球距离棍的距离最大化的位置即可,寻找这个最大间隔的过程,就叫做最优化。 但是,现实往往是很残酷的,一般的数据是线性不可分的,也就是找不到一个棍将两种小球很好的分类。这个时候,我们就需要像大侠一样,将小球拍起,用一张纸代替小棍将小球进行分类。想要让数据飞起,我们需要的东 西就是核函数(kernel),用于切分小球的纸,就是超平面。

核函数:

https://www.zhihu.com/question/24627666 核函数

由于从输入空间到特征空间的这种映射会使得维度发生爆炸似地增长,这给映射过程中的内积的计算带来了很大地困难,而且如果遇到无穷维的情况就根本无法计算。而且如果先将数据从低维映射到高维后,再计算两数据的内积,计算量会非常大,因此核函数就此被引入用来解决SVM分类的非线性问题。

核函数:基本作用是接受两个低维空间里的向量,能够计算出经过某个变换后在高维空间里的向量的内积。因此只需要在输入空间内就可以进行特征空间的内机。 通过上述描述,我们知道要想构造核函数,需要明确输入空间内数据的分布情况,我们并不知道自己所处理的数据的具体分布,故一般很难构造出完全符合输入空间的核函数。因此常用几种常用的核函数来代替构造核函数。

 常用核函数的特性:

线性核函数:主要用于线性可分的情况,我们可以看到特征空间到输入空间的维度是一样的,但是其参数减少速度快,对于线性可分数据,其分类效果很理想且效率更高。因此我们通常首先使用线性核函数来做分类,如果不行再换用其他核函数。

多项式核函数:多项式核函数可以实现将低维的输入空间映射到高维的特征空间,但是多项式核函数的参数多,当多项式的阶数比较高的时候,核矩阵的元素值将趋于无穷大或者无穷小,计算复杂度是会大到无法计算(线性核函数可以看作多项式核函数的一种)。

高斯核函数:在常用的核函数中,使用最广泛的就是RBF核,无论低维、高维、小样本、大样本等情况,RBF核都适用,具有较宽的收敛域,是较理想的分类依据函数。

Sigmoid核函数:采用Sigmoid核函数,支持向量机实现得就是一种多层神经网络。

理解SVM要用到的数学知识较多,这里我就不解释了,我直接用代码来实现了,想了解原理可以学习一下李航老师的统计学习方法。

完全解读 | 支持向量机 SVM 的推导

相关文章:

机器学习模型——SVM(支持向量机)

基本概念: Support Vector Machine (支持向量机): 支持向量:支持或支撑平面上把两类类别划分开来的超平面的向量点。 机:一个算法 SVM是基于统计学习理论的一种机器学习方法。简单地说,就是将数据单元…...

服务器CPU使用过高的原因

大多使用服务器的站长都会碰见这样的问题,在长时间使用后,系统越来越慢,甚至出现卡死或强制重启的情况。打开后台 才发现,CPU使用率已经快要到达90%。那么,我告诉你哪些因素会导致服务器CPU高使用率,从而严…...

基于tensorflow和kereas的孪生网络推理图片相似性

一、环境搭建 基础环境:cuda 11.2 python3.8.13 linux ubuntu18.04 pip install tensorflow-gpu2.11.0 验证:# 查看tensorflow版本 import tensorflow as tf tf.__version__ # 是否能够成功启动GPU from tensorflow.python.client import device_lib pr…...

day4|gin的中间件和路由分组

中间件其实是一个方法, 在.use就可以调用中间件函数 r : gin.Default()v1 : r.Group("v1")//v1 : r.Group("v1").Use()v1.GET("test", func(c *gin.Context) {fmt.Println("get into the test")c.JSON(200, gin.H{"…...

nodejs的express负载均衡

我们知道nodejs是单线程的,在特定场合是不能利用CPU多核的优势的。一般有两种方式来解决,一种是利用nodejs的cluster模块创建多个子进程来处理请求以充分利用cpu的多核,还有一种是nodejs运行多个服务分别监听在不同的port,利用nginx创建一个u…...

计算机网络-HTTP相关知识-RSA和ECDHE及优化

HTTPS建立基本流程 客户端向服务器索要并验证服务器的公钥。通过密钥交换算法(如RSA或ECDHE)协商会话秘钥,这个过程被称为“握手”。双方采用会话秘钥进行加密通信。 RSA流程 RSA流程包括四次握手: 第一次握手:客户…...

axios 封装 http 请求详解

前言 Axios 是一个基于 Promise 的 HTTP 库,它的概念及使用方法本文不过多赘述,请参考:axios传送门 本文重点讲述下在项目中是如何利用 axios 封装 http 请求。 一、预设全局变量 在 /const/preset.js 中配置预先设置一些全局变量 window.…...

牛客2024年愚人节比赛(A-K)

比赛链接 毕竟是娱乐场,放平心态打吧。。。 只有A一个考了数学期望,其他的基本都是acmer特有的脑筋急转弯,看个乐呵即可。 A 我是欧皇,赚到盆满钵满! 思路: 我们有 p 1 p_1 p1​ 的概率直接拿到一件实…...

loadbalancer 引入与使用

在消费中pom中引入 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency> 请求调用加 LoadBalanced 注解 进行服务调用 默认负载均衡是轮训模式 想要切换…...

Yolov5封装detect.py面向对象

主要目标是适应摄像头rtsp流的检测 如果是普通文件夹或者图片&#xff0c;run中的while True去掉即可。 web_client是根据需求创建的客户端&#xff0c;将检测到的数据打包发送给服务器 # YOLOv5 &#x1f680; by Ultralytics, GPL-3.0 license """ Run inf…...

入门级深度学习主机组装过程

一 配置 先附上电脑配置图&#xff0c;如下&#xff1a; 利用公司的办公电脑对配置进行升级改造完成。除了显卡和电源&#xff0c;其他硬件都是公司电脑原装。 二 显卡 有钱直接上 RTX4090&#xff0c;也不能复用公司的电脑&#xff0c;其他配置跟不上。 进行深度学习&…...

python爬虫之selenium4使用(万字讲解)

文章目录 一、前言二、selenium的介绍1、优点&#xff1a;2、缺点&#xff1a; 三、selenium环境搭建1、安装python模块2、selenium4新特性3、安装驱动WebDriver驱动选择驱动安装和测试 基础操作1、属性和方法2、单个元素定位通过id定位通过class_name定位一个元素通过xpath定位…...

【ARM 嵌入式 C 头文件系列 22 -- 头文件 stdint.h 介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 C 头文件 stdint.h定长整数类型最小宽度整数类型最快最小宽度整数类型整数指针类型最大整数类型 C 头文件 stdint.h 在 C 语言中&#xff0c;头文件 <stdint.h> 是 C99 标准的一部分&#xff0c;旨在提供一组明确的整数类型…...

LabVIEW专栏三、探针和断点

探针和断点是LabVIEW调试的常用手段&#xff0c;该节以上一节的"测试耗时"为例 探针可以打在有线条的任何地方&#xff0c;打上后&#xff0c;经过这条线的所有最后一次的数值都会显示在探针窗口。断点可以打在程序框图的所有G代码对象&#xff0c;包括结构&#xf…...

Transformer模型-softmax的简明介绍

今天介绍transformer模型的softmax softmax的定义和目的&#xff1a; softmax&#xff1a;常用于神经网络的输出层&#xff0c;以将原始的输出值转化为概率分布&#xff0c;从而使得每个类别的概率值在0到1之间&#xff0c;并且所有类别的概率之和为1。这使得Softmax函数特别适…...

记录一下做工厂的打印pdf程序

功能&#xff1a;在网页点击按钮调起本地的打印程序 本人想到的就是直接调起方式&#xff0c;网上大佬们说用注册表的形式来进行。 后面想到一种&#xff0c;在电脑开机时就开启&#xff0c;并在后台运行&#xff0c;等到有人去网页里面进行触发&#xff0c;这时候就有个问题&a…...

Linux网络编程一(协议、TCP协议、UDP、socket编程、TCP服务器端及客户端)

文章目录 协议1、分层模型结构2、网络应用程序设计模式3、ARP协议4、IP协议5、UDP协议6、TCP协议 Socket编程1、网络套接字(socket)2、网络字节序3、IP地址转换4、一系列函数5、TCP通信流程分析 第二次更新&#xff0c;自己再重新梳理一遍… 协议 协议&#xff1a;指一组规则&…...

Python读取Excel根据每行信息生成一个PDF——并自定义添加文本,可用于制作准考证

文章目录 有点小bug的:最终代码(无换行):有换行最终代码无bug根据Excel自动生成PDF,目录结构如上 有点小bug的: # coding=utf-8 import pandas as pd from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import letter from reportlab.pdfbase import pdf…...

http: server gave HTTP response to HTTPS client 分析一下这个问题如何解决中文告诉我详细的解决方案

这个错误信息表明 Docker 客户端在尝试通过 HTTPS 协议连接到 Docker 仓库时&#xff0c;但是服务器却返回了一个 HTTP 响应。这通常意味着 Docker 仓库没有正确配置为使用 HTTPS&#xff0c;或者客户端没有正确配置以信任仓库的 SSL 证书。以下是几种可能的解决方案&#xff1…...

Flume学习笔记

视频地址:https://www.bilibili.com/video/BV1wf4y1G7EQ/ 定义 Flume是一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。 Flume高最要的作用就是实时读取服务器本地磁盘的数据,将数据写入HDFS。 官网:https://flume.apache.org/releases/content/1.9.0/…...

FastJson漏洞实战:手把手教你用JNDI反弹Shell(附完整工具链)

FastJson漏洞深度解析与防御实践 FastJson作为Java生态中广泛使用的高性能JSON处理库&#xff0c;其安全性一直备受关注。2017年曝光的CVE-2017-18349漏洞因其危害性大、利用门槛低&#xff0c;成为企业安全防护的重点对象。本文将系统性地剖析该漏洞的技术原理、攻击手法&…...

Atmosphere 1.9.0:深度解析Nintendo Switch定制固件的实用指南

Atmosphere 1.9.0&#xff1a;深度解析Nintendo Switch定制固件的实用指南 【免费下载链接】Atmosphere Atmosphre is a work-in-progress customized firmware for the Nintendo Switch. 项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere Atmosphere是一款…...

VLC播放RTSP流常见问题及解决方案

1. VLC播放RTSP流的基础操作指南 RTSP&#xff08;Real Time Streaming Protocol&#xff09;是一种广泛应用于监控摄像头、视频会议系统等场景的流媒体传输协议。作为一款开源跨平台的播放器&#xff0c;VLC对RTSP协议有着良好的支持。先说说最基本的操作流程&#xff0c;这对…...

超级千问语音设计世界:5分钟上手,用文字指挥AI声音的像素冒险

超级千问语音设计世界&#xff1a;5分钟上手&#xff0c;用文字指挥AI声音的像素冒险 1. 引言&#xff1a;当像素风遇上AI语音 还记得小时候玩红白机时&#xff0c;那些简单却充满魔力的8-bit音效吗&#xff1f;现在&#xff0c;这种复古魅力与最先进的AI语音技术相遇了。&qu…...

基于OpenCV的二维码识别与创建:图像算法、Python与GUI界面的实时生成与识别功能

基于opencv二维码的识别与创建&#xff0c;图像算法&#xff0c;python&#xff0c;gui界面&#xff0c;具有生成二维码功能&#xff0c;图片视频和摄像头实时识别功能最近在折腾二维码相关的项目&#xff0c;发现OpenCV自带的二维码识别模块比想象中好用。直接上实战吧&#x…...

TradingAgents-CN:多智能体架构在金融决策领域的突破性实践

TradingAgents-CN&#xff1a;多智能体架构在金融决策领域的突破性实践 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 在金融科技快速发展的今天…...

别再只写‘Hello World’了!用C语言sprintf函数演示缓冲区溢出攻击(Windows环境)

从sprintf到Shellcode&#xff1a;C语言缓冲区溢出攻防实战指南 在编程初学者的世界里&#xff0c;"Hello World"往往是第一个里程碑。但当我们将目光投向更复杂的现实场景时&#xff0c;那些看似无害的标准库函数可能隐藏着致命陷阱。sprintf——这个C语言中用于格式…...

生态数据小白也能搞定:用Python把居为民团队的全球GPP数据转成GIS能用的GeoTIFF

生态数据可视化实战&#xff1a;Python轻松转换全球GPP数据为GIS友好格式 当生态学者第一次拿到居为民教授团队的全球GPP数据时&#xff0c;那种兴奋感往往很快会被技术障碍冲淡——这些珍贵的.img格式文件在常用GIS软件中无法直接打开。作为曾经同样踩过这个坑的研究者&#x…...

Lychee-rerank-mm多语言支持实战:中英文混合检索方案

Lychee-rerank-mm多语言支持实战&#xff1a;中英文混合检索方案 1. 为什么中英文混合检索成了业务刚需 最近帮一家跨境电商平台做搜索优化&#xff0c;他们遇到一个很实际的问题&#xff1a;商品标题和描述里经常混着中英文&#xff0c;比如“iPhone 15 Pro Max 256GB 黑色”…...

【架构实战】云原生架构设计原则

一、什么是云原生 云原生&#xff08;Cloud Native&#xff09;是一种构建和运行应用程序的方法论&#xff0c;充分利用云计算的优势&#xff0c;让系统更加弹性、可靠、高效。 核心定义 云原生计算基金会&#xff08;CNCF&#xff09;对云原生的定义&#xff1a;云原生技术使组…...