当前位置:网站首页>Support Vector Machine SVM
Support Vector Machine SVM
2022-08-05 10:57:00 【Ding Jiaxiong】
13. 支持向量机SVM
文章目录
13.1 简介
SVM全称是supported vector machine(支持向量机),即寻找到一个超平面使样本分成两类,并且间隔最大

SVM能够执行线性或非线性分类、回归,甚至是异常值检测任务.它是机器学习领域最受欢迎的模型之一.SVM特别适用于中小型复杂数据集的分类
13.2 硬间隔和软间隔
13.2.1 硬间隔
- 只有在数据是线性可分离的时候才有效
- 对异常值非常敏感
13.2.2 软间隔
- 尽可能在保持最大间隔宽阔和限制间隔违例之间找到良好的平衡
13.3 API
from sklearn import svm
SVM具有良好的鲁棒性,对未知数据拥有很强的泛化能力,特别是在数据量较少的情况下,相较其他传统机器学习算法具有更优的性能
13.3.1 使用SVMas a training model,通常流程
- 对样本数据进行归一化
- The samples are mapped with a kernel function(最常采用和核函数是RBF和Linear,在样本线性可分时,Linear效果要比RBF好)
- 用cross-validation和grid-search对超参数进行优选
- 用最优参数训练得到模型
- 测试
13.3.2 sklearnThere are three methods for support vector classification
SVC
class sklearn.svm.SVC(C=1.0, kernel=‘rbf’, degree=3,coef0=0.0,random_state=None)
- C: 惩罚系数,用来控制损失函数的惩罚系数,类似于线性回归中的正则化系数
- kernel: 算法中采用的核函数类型,核函数是用来将非线性问题转化为线性问题的一种方法
- degree:
当指定kernel为’poly’时,表示选择的多项式的最高次数,默认为三次多项式;
若指定kernel不是’poly’,则忽略,即该参数只对’poly’有用. - coef0: 核函数常数值(y=kx+b中的b值)
NuSVC
class sklearn.svm.NuSVC(nu=0.5)
- nu: 训练误差部分的上限和支持向量部分的下限,取值在(0,1)之间,默认是0.5
LinearSVC
class sklearn.svm.LinearSVC(penalty=‘l2’, loss=‘squared_hinge’, dual=True, C=1.0)
- penalty:正则化参数
- loss:损失函数
- dual:是否转化为对偶问题求解,默认是True
- C:惩罚系数
13.4 算法原理
13.4.1 目标函数
13.4.2 The objective function solution process

对目标函数添加符号,Convert to find the minimum


求得超平面
求得分类决策函数
13.5 损失函数
0/1损失函数
Hinge损失函数
Logistic损失函数

13.6 核方法
核函数
将原始输入空间映射到新的特征空间,从而,使得原本线性不可分的样本可能在核空间可分
常见核函数
13.7 SVM回归
- Let as many instances as possible lie on the prediction line,同时限制间隔违例
- 线距的宽度由超参数ε控制
13.8 案例:数字识别器
13.9 SVM总结
一种二类分类模型
A linear classifier that finds a separation hyperplane that maximizes the margin in the feature space
13.9.1 优点
- 在高维空间中非常高效
- 即使在数据维度比样本数量大的情况下仍然有效
- 在决策函数(称为支持向量)中使用训练集的子集,因此它也是高效利用内存的
- 通用性:不同的核函数与特定的决策函数一一对应
13.9.2 缺点
- 如果特征数量比样本数量大得多,在选择核函数时要避免过拟合
- 对缺失数据敏感
- 对于核函数的高维映射解释力不强
边栏推荐
- 大佬们 我是新手,我根据文档用flinksql 写个简单的用户访问量的count 但是执行一次就结束
- uniapp中的view高度设置100%
- Oracle的自动段空间管理怎么关闭?
- 双因子与多因子身份验证有什么区别?
- #yyds干货盘点#JS数组和树相互转化
- 2022杭电多校 第6场 1008.Shinobu Loves Segment Tree 规律题
- Scaling-law和模型结构的关系:不是所有的结构放大后都能保持最好性能
- PG优化篇--执行计划相关项
- Ali's new launch: Microservices Assault Manual, all operations are written out in PDF
- GPU-CUDA-图形渲染分析
猜你喜欢

PostgreSQL 2022 Report: Rising popularity, open source, reliability and scaling key

数据可视化(一)

Use KUSTO query statement (KQL) to query LOG on Azure Data Explorer Database

This notebook of concurrent programming knowledge points strongly recommended by Ali will be a breakthrough for you to get an offer from a big factory

Dynamics 365Online PDF导出及打印

DocuWare平台——文档管理的内容服务和工作流自动化的平台详细介绍(下)

Data Middle Office Construction (10): Data Security Management

阿里全新推出:微服务突击手册,把所有操作都写出来了PDF

一张图看懂 SQL 的各种 join 用法!

Google启动通用图像嵌入挑战赛
随机推荐
七夕来袭!还要做CDH数据迁移怎么办?来看看DistCp
SQL外连接之交集、并集、差集查询
一张图看懂 SQL 的各种 join 用法!
Scaling-law和模型结构的关系:不是所有的结构放大后都能保持最好性能
如何用Golang来手写一个Blog - Milu.blog 开发总结
GPU-CUDA-图形渲染分析
poj2935 Basic Wall Maze (2016xynu暑期集训检测 -----D题)
数据可视化(一)
停电。。。烦烦烦!!!
教你本地编译运行一个IDEA插件,在IDEA里聊天、下棋、斗地主!
60行从零开始自己动手写FutureTask是什么体验?
[Android]如何使用RecycleView in Kotlin project
Data Middle Office Construction (10): Data Security Management
Use KUSTO query statement (KQL) to query LOG on Azure Data Explorer Database
产品太多了,如何实现一次登录多产品互通?
L2-042 老板的作息表
Android 开发用 Kotlin 编程语言 二 条件控制
FPGA:开发环境Vivado的使用
智能算力的枢纽如何构建?中国云都的淮海智算中心打了个样
Go compilation principle series 6 (type checking)







