机器学习算法篇(八)-------svm支持向量机

目录

​​1. SVM 的核心原理(必须掌握)​​

​​2. Python 中的实践重点​​

​​(1) Scikit-learn 的 SVM 实现​​

​​(2) 数据预处理​​

​​(3) 模型评估与调优​​

​​3. 学习侧重点优先级​​

​​4. 经典案例实践方向​​

​​5. 学习资源推荐​​

​​总结​​

附录


基于svm支持向量机的二分类算法是深度学习神经网络出来前,最受欢迎的机器学习算法,没有之一,其算法原理的非数学部分还是非常容易理解的-------找到一个最佳的超平面,将数据分成两类的同时,间隔最大,然后就是啪啦啪啦一大堆的数学建模求解这个问题,煮啵自知功力有限,不在这里班门弄斧了,但又想大家不错过这个算法,所以我在这里只提供一下以能够灵活应用为导向,学习这个算法的思路和侧重点,附上几篇我认为写的非常好的有关svm支持向量机的算法或应用讲解的博文,链接放在文末,读者可以点击链接去阅读欣赏:

学习 ​​SVM(支持向量机)​​ 并在 Python 中实际应用时,你的学习侧重点应该围绕以下几个核心方向:


​1. SVM 的核心原理(必须掌握)​

  • ​核心思想​​:

    • 寻找一个​​最优超平面​​(决策边界),最大化不同类别数据之间的​​间隔​​(Margin)。

    • 对线性不可分数据,通过​​核技巧(Kernel Trick)​​ 映射到高维空间实现分离。

  • ​关键概念​​:

    • ​支持向量​​:距离超平面最近的样本点,决定超平面的位置。

    • ​间隔(Margin)​​:支持向量到超平面的距离,越大则模型泛化能力越强。

    • ​核函数(Kernel)​​:解决非线性问题的数学工具(如线性、多项式、高斯核)。


​2. Python 中的实践重点​

​(1) Scikit-learn 的 SVM 实现​
from sklearn.svm import SVC
model = SVC(kernel='rbf', C=1.0, gamma='scale')  # 高斯核
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
  • ​关键参数​​:

    • kernel:核函数(linear, poly, rbf, sigmoid)。

    • C:正则化参数,控制分类器的​​容错性​​(越小容错性越强)。

    • gamma(高斯核专属):控制决策边界的​​复杂度​​(值越大越容易过拟合)。

​(2) 数据预处理​
  • SVM 对数据​​尺度敏感​​,必须标准化:

    from sklearn.preprocessing import StandardScaler
    scaler = StandardScaler()
    X_train = scaler.fit_transform(X_train)
    X_test = scaler.transform(X_test)
​(3) 模型评估与调优​
  • ​评估指标​​:准确率(accuracy_score)、混淆矩阵(confusion_matrix)。

  • ​调参工具​​:网格搜索(GridSearchCV):

    from sklearn.model_selection import GridSearchCV
    param_grid = {'C': [0.1, 1, 10], 'gamma': [0.1, 1, 10]}
    grid = GridSearchCV(SVC(), param_grid, cv=5)
    grid.fit(X_train, y_train)
    print(grid.best_params_)

​3. 学习侧重点优先级​

​优先级​

​内容​

​为什么重要?​

★★★★★

核函数选择与参数调优

直接决定模型能否解决非线性问题

★★★★☆

数据标准化与特征工程

SVM 对数据分布敏感,需保证特征尺度一致

★★★☆☆

支持向量的可视化与分析

理解模型如何做决策(适合二维/三维数据)

★★☆☆☆

数学推导(拉格朗日乘子法)

工程中通常不需要,但面试/科研可能需要


​4. 经典案例实践方向​

  1. ​线性可分数据​​:

    • 使用 kernel='linear',观察支持向量和决策边界。

    • 案例:鸢尾花分类(sklearn.datasets.load_iris)。

  2. ​非线性数据​​:

    • 使用 kernel='rbf',调整 gamma观察过拟合/欠拟合。

    • 案例:月亮数据集(sklearn.datasets.make_moons)。

  3. ​不平衡数据​​:

    • 使用 class_weight参数处理类别不平衡。

    • 案例:信用卡欺诈检测(Kaggle数据集)。


​5. 学习资源推荐​

  • ​快速入门​​:Scikit-learn 官方文档 SVM指南

  • ​深入原理​​:《统计学习方法》(李航)第7章

  • ​实战项目​​:Kaggle 上的 SVM 案例(如手写数字识别)

  • csdn博客: 链接放在文末了


​总结​

你的学习路径应该是:

​理解核心思想 → 掌握调参技巧 → 解决实际问题​​。

数学推导可以后期补足,优先​​能用 Python 实现并调优模型​​。


附录

天阶:

支持向量机通俗导论(理解SVM的三层境界)-CSDN博客文章浏览阅读10w+次,点赞3.4k次,收藏1.2w次。动笔写这个支持向量机是费了不少劲和困难的,原因很简单一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力二者这个东西也不好讲清楚,尽管网上已经有朋友写得不错了(见文末参考链接),但在描述数学公式的时候还是显得不够。得益于同学白石的数学证明,我还是想尝试写一下,希望本文在兼顾通俗易懂的基础上,真真正正能足以成为一篇完整概括和介绍支持向量机的导论性的文章本文在写的过程中,参考了不少资料,包括《支持向量机导论》、《统计学习方法》及网友pluskid的支持向量机系列等等,于此,还是一篇。_支持向量机 https://blog.csdn.net/v_JULY_v/article/details/7624837?fromshare=blogdetail&sharetype=blogdetail&sharerId=7624837&sharerefer=PC&sharesource=Sunhen_Qiletian&sharefrom=from_link机器学习最经典算法-SVM支持向量机-【基本解读算法+详细实际案例分部流程】_svm算法实战-CSDN博客文章浏览阅读5.8k次,点赞16次,收藏67次。本文深入浅出地介绍了支持向量机(SVM)的基本原理,包括数学推导、核函数选择及参数调节等内容,并通过多个案例展示了SVM在人脸识别等实际应用场景中的强大表现。 https://blog.csdn.net/weixin_43213884/article/details/115924152?fromshare=blogdetail&sharetype=blogdetail&sharerId=115924152&sharerefer=PC&sharesource=Sunhen_Qiletian&sharefrom=from_link

天街残卷,需要取其精华,多篇整合:

支持向量机(SVM)详解:原理、API使用与实战案例-CSDN博客文章浏览阅读621次。支持向量机_使用支持向量机算法对训练集建模为什么要选择1和0 https://blog.csdn.net/weixin_45707277/article/details/120639424?fromshare=blogdetail&sharetype=blogdetail&sharerId=120639424&sharerefer=PC&sharesource=Sunhen_Qiletian&sharefrom=from_link支持向量机(SVM)算法推导_svm怎么推导参数b的最优值-CSDN博客文章浏览阅读1.2k次。本文详细介绍了支持向量机(SVM)的概念、原理及其应用场景。包括线性可分支持向量机、间隔最大化的思想、软间隔最大化以及如何通过核函数处理非线性问题。 https://deep-rec.blog.csdn.net/article/details/78137217?fromshare=blogdetail&sharetype=blogdetail&sharerId=78137217&sharerefer=PC&sharesource=Sunhen_Qiletian&sharefrom=from_link支持向量机SVM(直观理解原理、推导)_svm cost-CSDN博客文章浏览阅读1.9k次。这里主要基于吴恩达机器学习课程对于SVM的讲解进行总结回顾,并参考各类资料对其推导过程进一步理解及实现。所以分为两个部分及最后的一些个人总结。(内容较多、篇幅较长,静下心来、慢慢体会)第一部分也即吴恩达课程是从逻辑回归的cost函数讲到svm的cost优化问题的,其实直接上来看是有一定理解难度的(要求有一定相关基础),可以先看第二部分推导,再回过头来看第一部分会有一个更加深刻的理解和掌握。1、..._svm cost https://blog.csdn.net/Enjoy_endless/article/details/83575659?fromshare=blogdetail&sharetype=blogdetail&sharerId=83575659&sharerefer=PC&sharesource=Sunhen_Qiletian&sharefrom=from_link

【机器学习实战-python3】支持向量机(Support Vecrtor Machines SVM)_支持向量机分类 程序 python3-CSDN博客文章浏览阅读2.7k次。本文详述了支持向量机(SVM)的概念,包括最大间隔、SMO优化算法及其在Python3中的实现。通过实例展示了如何使用序列最小优化(SMO)算法训练SVM,并探讨了核函数的作用,特别是径向基核函数在手写识别问题中的应用。文章还介绍了如何调整参数以优化SVM的性能,并分享了实际测试中的错误率。 https://blog.csdn.net/sinat_17196995/article/details/59542432?fromshare=blogdetail&sharetype=blogdetail&sharerId=59542432&sharerefer=PC&sharesource=Sunhen_Qiletian&sharefrom=from_link

同仁篇:

机械学习--SVM 算法-CSDN博客文章浏览阅读1.1k次,点赞45次,收藏24次。给定线性可分的训练集,其中是特征向量,是类别标签。超平面方程为:其中是法向量,b 是截距。分类决策函数为。 https://blog.csdn.net/enlybbq/article/details/150074689?fromshare=blogdetail&sharetype=blogdetail&sharerId=150074689&sharerefer=PC&sharesource=Sunhen_Qiletian&sharefrom=from_link

机器学习:支持向量机(SVM)-CSDN博客文章浏览阅读698次,点赞27次,收藏14次。非线性类型通常是二维平面不可分,为了使数据可分,需要通过一个函数将原始数据映射到高维空间,从而使得数据在高维空间很容易可分,需要通过一个函数将原始数据映射到高维空间,从而使得数据在高维空间很容易区分,这样就达到数据分类或回归的目的,而实现这一目标的函数称为核函数。对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集。由于原本的优化问题的表达式要考虑所有的样本点,在此基础上寻找正负类之间的最大几何间隔,而几何间隔本身代表的是距离,是非负的,像这样有噪声的情况会使整个问题无解。 https://blog.csdn.net/2501_91113915/article/details/149981947?fromshare=blogdetail&sharetype=blogdetail&sharerId=149981947&sharerefer=PC&sharesource=Sunhen_Qiletian&sharefrom=from_link机器学习之支持向量机(SVM)算法详解-CSDN博客文章浏览阅读830次,点赞24次,收藏3次。然而,SVM的训练速度较慢,且对参数选择敏感。支持向量机是一种二分类模型,其基本思想是找到一个超平面,将不同类别的数据分隔开,并且使得两类数据点到超平面的距离(即间隔)最大化。对于非线性问题,SVM通过核函数将数据映射到高维空间,使其在高维空间中线性可分。SVM的核心目标是找到一个最优超平面,使得两类数据点的间隔最大化。其中,(yi) 是样本的标签(取值为 +1 或 -1),(xi) 是样本特征。对于线性可分的数据,SVM的优化目标是最大化间隔。其中,(C) 是正则化参数,用于控制分类错误和间隔的平衡。 https://blog.csdn.net/weixin_74414860/article/details/150118290?fromshare=blogdetail&sharetype=blogdetail&sharerId=150118290&sharerefer=PC&sharesource=Sunhen_Qiletian&sharefrom=from_link

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

发票查验接口接收参数说明-PHP语言集成-财务管理

发票验真服务接口可实时联网核验发票真伪,查验一致时返回全票面信息。其支持核验增值税发票管理系统开具发票的真伪,且能进行发票批量查验,当日开具的发票当日即可查验。同时,结合发票识别接口可实现自动识别发票信息核验&#xf…

Uniapp物联网平台登录与温湿度监测系统

下面是一个完整的Uniapp物联网平台实现,包含登录功能和温湿度监测系统。这个解决方案采用现代化UI设计,模拟了物联网平台的核心功能。文章末尾提供源码下载。 系统功能说明 这个Uniapp物联网平台登录与温湿度监测系统包含以下核心功能: 1.…

【企业架构】TOGAF概念之四(终结)

导读:学习TOGAF(The Open Group Architecture Framework,开放组架构框架)相关概念的意义和价值,体现在它为企业架构(Enterprise Architecture, EA)实践提供了标准化方法论、跨领域协同框架、战略…

centos 怎么部署 vscode 网页版

安装编译工具 下载适用于 linux 版本的 rpm 格式文件 下載 Visual Studio Tools - 免費安裝 Windows、Mac、Linux 拷贝路径,下载文件 wget https://vscode.download.prss.microsoft.com/dbazure/download/stable/e3550cfac4b63ca4eafca7b601f0d2885817fd1f/code…

sql的关键字 limit 和offset

核心概念LIMIT (限制): 指定查询最多返回多少行记录。OFFSET (偏移): 指定在开始返回记录之前要跳过多少行记录。它定义了结果集的起始点。核心前提: 必须 使用 ORDER BY 子句来确保分页结果的顺序稳定和可预测。示例: 假设 employees 表有 100 条记录&a…

git config的配置全局或局部仓库的参数: local, global, system

git config的范围参数: local, global, system1. --local: 作用于当前仓库2. --global: 作用于当前用户的全局范围的 Git 仓库3. --system: 作用于系统范围内的 Git 仓库4. 注意事项参考链接1. --local: 作用于当前仓库 --local: 这个参数的作用范围是当前仓库。其配置的参数保…

应用系统连达梦数据库报“服务器模式不匹配”的根源与修复方案

近期遇到很多个应用系统连接达梦数据库报“服务器模式不匹配”的问题,省流直接说文章结论通常两种场景 初次连接达梦数据库时报服务器模式不匹配,可能是配置文件中LOGIN_MODE参数配置与数据库状态不一致导致连接失败应用系统正常运行负载大或者偶发报服务…

git:分支

分支命名可以使用斜杠(/)构建分层命名方案不能以减号(-)开头,分层的命名不能以点(.)开头不能使用连接两个点(.)不能包括空格或其他空白字符以及~ ^ : ? * [列出分支名称 git branch 列出本地版本库的分支git branch -r 列出远程跟踪分支git branch -a …

T05_卷积神经网络

全连接网络存的弊端 以MINST数字识别为例,创建一个4层全连接网络层,输入为28x28,中间三个隐藏层的节点数都是 256,输出节点数是10。通过summary()函数打印出模型每一层的参数量,计算总的参数量超过34万个网络参数&…

区块链在可信空间智能合约中的应用

区块链在可信数据空间的智能合约应用,通过去中心化信任机制、自动化执行、可验证计算等特性,正在重塑数据存储、共享、交易和治理的模式。以下是其核心应用方向、关键技术及落地案例的深度解析: 一、核心应用方向 1. 数据确权与授权管理 应用场景 个人数据主权:用户通过智…

pycharm配置python解释器教程

一个解释器对应一个环境,无论是conda环境或是Python环境。python环境的解释器的路径形如"D:\Python3.12\python.exe",conda环境的解释器的路径形如"D:\anaconda3\envs\opencv\python.exe"。 如何在Pycharm中设置解释器 打开pycharm&…

C#教程之NPOI读写excel文件XLS,XLSX格式

NPOI 是开源的 POI 项目的.NET版,可以用来读写Excel,Word,PPT文件。仅需处理 XLS/XLSX 格式的文本和数字读写,最少需要加载 2 个核心 DLL:NPOI.dll包含所有格式的通用接口(IWorkbook、ISheet、IRow、ICell …

Perforce P4 Git 连接器

Perforce P4 Git连接器将Git代码库与数字资产集中存储于Perforce P4(前身为Helix Core),为所有数字资产(源码二进制文件)构建单一事实来源。 突破代码库与文件限制 当艺术家、开发者及工程师组成的大型团队仅使用Git时…

day10_寻找用户推荐人

一、题目给出一张customer表,里面有id(客户id)——主键,name(客户姓名),referee_id(推荐人客户id)三个字段二、题目要求1、找出被id不是2的用户推荐的客户姓名2、没有被任…

python爬虫(三)----Selenium

目录 1. Selenium 1.1 Selenium是啥 1.2 安装chrom Driver 1.3 selenium 使用 1.4 selenium元素定位 1.5 访问元素信息 1.6 交互 2. Phantomjs、Chrom handless 1. Selenium 1.1 Selenium是啥 自动化Web浏览器操作 主要用于Web应用程序的测试 支持多操作系统、多浏览器…

《事务隔离级别与 MVCC 机制深度剖析》

🔍 事务隔离级别与 MVCC 机制深度剖析 🧠 前言 在高并发场景下,数据库事务是保证数据一致性的基石。但在 MySQL InnoDB 中,事务的隔离级别、锁策略、MVCC(多版本并发控制)之间的配合,常常是面…

20250814,通义万相,无限生成权限(慢速)

今天看小红书,发现通义万相可以免费生成慢速图片。研究一下每天10分用完后,按钮就变成0,但是可以点击这个0,进入排队慢速生成状态。原来通义万相的收费主要是用来提速的(快速出图),不着急的话也…

Salesforce方案:医疗行业“患者随访与健康管理”

医疗行业“患者随访与健康管理”的Salesforce方案设计 一、业务需求核心解析 医疗行业患者随访与健康管理需实现三大目标: 全周期健康记录:整合患者基本信息、病史、诊疗记录及检查结果,形成完整健康档案个性化随访计划:基于病种和…

vscode使用keil5出现变量跳转不了

vscode使用keil5出现变量跳转不了,或者未包含文件,或者未全局检索; 参考如下文章后还会出现; 为什么vscode搜索栏只搜索已经打开的文件_vscode全局搜索只能搜当前文件-CSDN博客 在机缘巧合之下发现如下解决方式: 下载…

如何查看SQL Server的当前端口

想知道SQL Server用的是哪个端口? 很简单,通过注册表就能查到。第一步:打开注册表按下 Win R,输入:regedit回车,打开注册表编辑器。第二步:找到路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSS…