第十章《搞懂算法:支持向量机是怎么回事》笔记

2023-11-06 11:52

本文主要是介绍第十章《搞懂算法:支持向量机是怎么回事》笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

支持向量机(Support Vector Machine,SVM )主要用于分类问题的处理。

10.1 SVM有什么用

SVM 的分类效果很 好,适用范围也较广,但模型的可解释性较为一般。

SVM 根据线性可分的程度不同,可以分为 3 类:线性可分 SVM、线性 SVM 和非线性 SVM。

10.2 SVM算法原理和过程是什么

样本数据的特征向量构成了一 个空间,每个样本点都占据空间中的一个位置。如果有一条线、一个面或者一个特殊形状将样本数据分割成两部分,其中一部分为正样本,另一部分为负样本,这样就太美好了。因为我们把新数据的特征向量跟这个分割线(面)进行比较,就可以判断新数据是正样本还是负样本了,也就实现了对新数据的分类。这样的一个分割线(面)就叫作超平面。所以采用 SVM 的目的就 是找到这样一个超平面。

但大多数时候,满足这样条件的超平面(分割线)不是唯一的,而是有多个。分割线更加远离正、负样本数据点,具有更好和更稳定的分类效果,这就是我们想寻找的分离超平面。

10.2.1 分离超平面是什么

一般来说,SVM 中把这种对正、负样本进行分割的操作叫作“分离超平面”。分离超平面在不同维度上表现的形态 不同。

最佳分离超平面的判断标准,是间隔与支持向量。

10.2.2 间隔与支持向量是什么

理想的分离超平面应该具有这样的特点:能够分割正、负样本,但同时尽可能远离所有样本数据点。

三维空间中,任何一个平面都可以用 Ax+By+Cz+D=0 来表示,于是点 (x0 , y0 , z0) 到该平面

的距离为,一维空间和二维空间也类似。。分别是一维空间、二维空间、三维空间中的范数,被记 作 ‖w‖。

假设超平面能够将样本正确分类,那么距离超平面最近的几个训练样本数据点被称为“支持向量”。

两个不同类支持向量到分离超平面的距离之和为,这个距离被称为“间隔”。

最佳分离超平面就是“间隔”最大的分离超平面,而要想找到“最大间隔”的分离超平面,就要找到满足约束条件(将样本分为两类)的参数 w 和 b,使得 γ 取到最大值。

解决线性不可分的方法就是使用核函数。核函数解决线性不可分的本质思想就 是把原始样本通过核函数映射到高维空间中,从而让样本在高维空间中成为线性可分的,然后 再使用常见的线性分类器进行分类。

n 维空间上线性不可分的问题可以通过升维到 n+1 维空间中构造新的分类函数并使其在 n 维空间上的投影对样本数据点进行分类来解决。SVM 中 这种通用的升维方法就是核函数,常见的核函数有线性核函数、多项式核函数、径向基核函数(RBF 核函数)、高斯核函数等。

10.3 编程实践:手把手教你写代码

这篇关于第十章《搞懂算法:支持向量机是怎么回事》笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/356459

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

一文带你搞懂Nginx中的配置文件

《一文带你搞懂Nginx中的配置文件》Nginx(发音为“engine-x”)是一款高性能的Web服务器、反向代理服务器和负载均衡器,广泛应用于全球各类网站和应用中,下面就跟随小编一起来了解下如何... 目录摘要一、Nginx 配置文件结构概述二、全局配置(Global Configuration)1. w

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO