机器学习西瓜书+南瓜书吃瓜教程学习笔记第六章支持向量机

news2024/11/26 15:51:19

视频来源:b站直播
+周志华老师机器学习西瓜树+南瓜书
以下是我的学习笔记:
在这里插入图片描述
支持向量机(support vector machines,SVM)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,通过对偶问题,最终转化为一个凸二次规划问题来求解。由简至繁的模型包括:

  • 当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机
  • 当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机
  • 当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性支持向量机

算法原理:从几何角度,对于线性可分数据集,支持向量机就是找距离正负样本都最远的超平面,相比于感知机,其解是唯一的,且不偏不倚,泛化性能更好。

三个重点“间隔(margin)” “对偶(duality)” “核技巧(kernel trick)”
以下是第一个证明:在这里插入图片描述

最大间隔超平面

超平面是分割输入变量空间的线。
从二维扩展到多维空间中时,将和完全正确地划分开的就成了一个超平面。为了使这个超平面更具鲁棒性,我们会去找最佳超平面,以最大间隔把两类样本分开的超平面,也称之为最大间隔超平面。
在这里插入图片描述

  • 两类样本分别分割在该超平面的两侧;
  • 两侧距离超平面最近的样本点到超平面的距离被最大化了

边距是最近类点上两条线之间的间隙。这被计算为从线到支持向量或最近点的垂直距离。如果类之间的边距较大,则认为是好的边距,较小的边距是差的边距。

处理非线性和不可分的平面

有些问题不能使用线性超平面解决,在这种情况下,SVM 使用内核技巧将输入空间转换为更高维空间,数据点绘制在 x 轴和 z 轴上(Z 是 x 和 y 的平方和:z=x2=y2)。现在,您可以使用线性分离轻松分离这些点。

 显然,支持向量机(SVM)的目标函数是关于\boldsymbol{w}的凸函数,
  (海塞矩阵是半正定的)且其约束函数仍然为一个凸函数,
  因此支持向量机是一个凸优化问题。

我们现在面对的是不等式优化问题,针对这种情况其主要思想是将不等式约束条件转变为等式约束条件,引入松弛变量,将松弛变量也是为优化变量。

为什么支持向量机通常都采用拉格朗日对偶求解呢?
1.无论主问题是何种优化问题,对偶问题恒为凸优化问题,因此更容易求解(尽管支持向量机的主问题本就是凸优化问题),而且原始问题的时间复杂度和特征维数呈正比(因为未知量是w),而对偶问题和数据量成正比(因为未知量是),当特征维数远高于数据量的时候拉格朗日对偶更高效;
2.对偶问题能很自然地引入核函数,进而推广到非线性分类问题(最主要的原因)

核函数

在这里插入图片描述在这里插入图片描述
这里的函数K(.,.)就是核函数。只要一个对称矩阵所对应的核矩阵半正定,他就能作为一个核函数使用。
常用核函数:
在这里插入图片描述

强对偶性

在这里插入图片描述

非线性支持向量机

在这里插入图片描述
在这里插入图片描述

软间隔

算法原理:在现实任务中,线性不可分的情形才是最常见的,因此需要允许支持向量机犯错。
我们一直假定训练样本在样本空间或特征空间中是“线性可分”的,即存在一个超平面能将不同类样本完全划分开,这称为“硬间隔”。然而,在现实任务中,往往很难确定合适的核函数使得训练样本在特征空间中线性可分。即便恰好找到了某个核函数使训练集在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于“过拟合”所造成的。为此,我们引入“软间隔”的概念,允许支持向量机在一些样本上出错。
在这里插入图片描述
从数学角度来说,软间隔就是允许部分样本(但要尽可能少)不满足下式中的约束条件
在这里插入图片描述
因此,可以将必须严格执行的约束条件转化为具有一定灵活性的“损失”,合格的损失函数要求如下:

  • 当满足约束条件时,损失为0;
  • 当不满足约束条件时,损失不为0,
  • (可选)当不满足约束条件时,损失与其违反约束条件的程度成正比
    只有满足以上要求,才能保证在最小化(min)损失的过程中,保证不满足约束条件的,样本尽可能的少。
    在这里插入图片描述
    其中,L0/1是“0/1损失函数”
    在这里插入图片描述
    C>0是一个常数,用来调节损失的权重,显然当C趋于无穷时,会迫使所有样本的损失为0,进而退化为严格执行的约束条件,退化为硬间隔,因此,本式子可以看作支持向量机的一般化形式。

落在带子上的样本不计算损失(类比线性回归在线上的点预测误差为0),不在带子上的则以偏离带子的距离作为损失(类比线性回归的均方误差),然后以最小化损失的方式迫使间隔带从样本最密集的地方
(中心地带)穿过,进而达到拟合训练样本的目的。
在这里插入图片描述

优缺点

1、优点
与朴素贝叶斯算法相比,SVM 分类器提供了良好的准确性并执行更快的预测。它们还使用较少的内存,因为它在决策阶段使用训练点的子集。支持向量机在具有明显分离边距和高维空间的情况下效果很好。
具体如下:

  • 可以解决高维问题,即大型特征空间;

  • 解决小样本下机器学习问题;

  • 能够处理非线性特征的相互作用;

  • 无局部极小值问题;(相对于神经网络等算法)

  • 无需依赖整个数据;

  • 泛化能力比较强。
    2、缺点
    支持向量机不适合大型数据集,因为它的训练时间长,而且与朴素贝叶斯相比,它也需要更多的训练时
    间。它在重叠类中效果不佳,并且对使用的内核类型也很敏感。
    具体如下:

  • 当观测样本很多时,效率并不是很高;

  • 对非线性问题没有通用解决方案,有时候很难找到一个合适的核函数;

  • 对于核函数的高维映射解释力不强,尤其是径向基函数;

  • 常规SVM只支持二分类;

  • 对缺失数据敏感。

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

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

相关文章

Java进阶必会JVM-深入浅出Java虚拟机

系列文章目录 送书第一期 《用户画像:平台构建与业务实践》 送书活动之抽奖工具的打造 《获取博客评论用户抽取幸运中奖者》 送书第二期 《Spring Cloud Alibaba核心技术与实战案例》 送书第三期 《深入浅出Java虚拟机》 文章目录 系列文章目录前言一、推荐书籍二…

LeetCode 周赛上分之旅 #48 一道简单的树上动态规划问题

⭐️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问。 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度…

软件测试/测试开发丨python 多态与super 学习笔记

本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/26828 python 多态与super 多态的概念 多态:Polymorphism 同名方法呈现多种行为 多态的表现 号 加法:数字 数字拼接:字符串 字符串合…

2023年10月腾讯云优惠活动汇总:腾讯云最新优惠、代金券整理

腾讯云作为国内领先的云服务提供商,致力于为用户提供优质、稳定的云服务。为了更好地满足用户需求,腾讯云推出了各种优惠活动。本文将给大家分享腾讯云最新优惠活动,帮助用户充分利用腾讯云提供的优惠。 一、腾讯云优惠券领取【点此领取】 腾…

北京互联网公司、外企、国企大盘点

今天来盘点北京的泛互联网公司。涵盖了综合类、外企类、硬件类、电商类、游戏类、娱乐类、生活类、工具类、人工智能类、金融类、教育类、招聘类、汽车类、外包类、信息化类以及国企央企类等多个领域。 综合类 字节跳动 美团 百度 阿里巴巴 腾讯 网易 外企类 微软 谷歌 亚马逊…

CSP-J第二轮试题-2021年-4题

文章目录 参考:总结 [CSP-J 2021] 小熊的果篮题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 样例 #3样例输入 #3样例输出 #3 提示答案1答案2答案3 现场真题注意事项 参考: https://www.luogu.com.cn/problem/P…

Leetcode 50.Pow(x,n)

实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 示例 1: 输入:x 2.00000, n 10 输出:1024.00000示例 2: 输入:x 2.10000, n 3 输出:9.26100示例…

Java大数 -- BigInteger类

在java语言中,每一种整数类型都有自己的上限和下限,如果要想对非常大的整数做运算,就需要使用BigInteger类。特别在做算法题传入一个数值型的字符串时。 1.包 import java.math.*; 2.构造方法 public BigInteger(String str){...} BigInte…

Go_原子操作和锁

原子操作和锁 本文先探究并发问题,再探究锁和原子操作解决问题的方式,最后进行对比。 并发问题 首先,我们看一下程序 num该程序表面看上去一步就可以运行完成,但是实际上,在计算机中是分三步运行的,如下…

让大脑自由

前言 作者写这本书的目的是什么? 教会我们如何让大脑更好地为自己工作。 1 大脑的运行机制是怎样的? 大脑的基本运行机制是神经元之间通过突触传递信息,神经元的兴奋和抑制状态决定了神经网络的运行和信息处理,神经网络可以通过…

[架构之路-226]:信息系统建模 - 实体关系图、数据流图、数据字典、流程图

目录 一、信息系统建模概述 二、常见建模工具 2.1 实体关系图 -- “实体》类” 》关注实体,对象 2.2 数据流图 -- 数据流动 -- 关注数据本身 2.3 业务-流程图 -- 活动步骤 -- 关注动作、活动 三、建模工具的比较 3.1 数据流图与业务流程图的区别 3.2 数据、…

Linux高性能服务器编程 学习笔记 第九章 IO复用

IO复用使程序能同时监听多个文件描述符,这可以提高程序的性能,通常网络程序在以下情况需要使用IO复用: 1.客户端进程需要同时处理多个socket。 2.客户端进程需要同时处理用户输入和网络连接。 3.TCP服务器要同时处理监听socket和连接socket…

网络-Ajax

文章目录 前言一、Ajax优点:缺点: 二、使用步骤XNLHttpRequest对象完整代码 总结 前言 本文主要记录Ajax技术的简介,以及用法。 一、Ajax Ajax是一组用于在Web浏览器和Web服务器之间进行异步通信的Web开发技术。 它代表着Asynchronous Java…

如果在 Mac 上的 Safari 浏览器中无法打开网站

使用网络管理员提供的信息更改代理设置。个人建议DNS解析,设置多个例如114.114.114.114 8.8.8.8 8.8.4.4 如果打不开网站,请尝试这些建议。 在 Mac 上的 Safari 浏览器 App 中,检查页面无法打开时出现的信息。 这可能会建议解决问题的…

第 114 场 LeetCode 双周赛题解

A 收集元素的最少操作次数 模拟: 反序遍历数组&#xff0c;用一个集合存当前遍历过的不超过 k k k 的正数 class Solution { public:int minOperations(vector<int> &nums, int k) {unordered_set<int> vis;int n nums.size();int i n - 1;for (;; i--) {if…

nodejs+vue活鲜物流监控系统elementui

第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;技术背景 5 3.2.2经济可行性 6 3.2.3操作可行性&#xff1a; 6 3.3 项目设计目标与原则 6 3.4系统流程分析 7 3.4.1操作流程 7 3.4.2添加信息流程 8 3.4.3删除信息流程 9 第4章 系统设计 11 …

蓝桥等考Python组别十级003

第一部分&#xff1a;选择题 1、Python L10 &#xff08;15分&#xff09; 已知s Pencil&#xff0c;下列说法正确的是&#xff08; &#xff09;。 s[0]对应的字符是Ps[1]对应的字符是ns[-1]对应的字符是is[3]对应的字符是e 正确答案&#xff1a;A 2、Python L10 &am…

【OpenCV-Torch-dlib-ubuntu】Vm虚拟机linux环境摄像头调用方法与dilb模型探究

前言 随着金秋时节的来临&#xff0c;国庆和中秋的双重喜庆汇聚成一片温暖的节日氛围。在这个美好的时刻&#xff0c;我们有幸共同迎来一次长达8天的假期&#xff0c;为心灵充电&#xff0c;为身体放松&#xff0c;为未来充实自己。今年的国庆不仅仅是家国团聚的时刻&#xff…

SSL/TLS介绍以及wireshark抓包TLS Handshake报文

文章目录 1.概念1.1 SSL/TLS发展历史1.2 TLS两个阶段1.3 TLS报文头 2.TLS Handshake2.1 Handshake具体过程2.1.1 单向认证和双向认证2.1.2 复用TLS协商结果Session Identifier&#xff08;会话标识符&#xff09;Session Ticket&#xff08;会话票据&#xff09; 2.2 Handshake…

实验篇——根据群体经纬度提取环境数据(数据降维)

实验篇——根据群体经纬度提取环境数据&#xff08;数据降维&#xff09; 文章目录 前言一、先导二、R语言实现2.1. 分气温、降水、光照、风速、蒸汽压划分数据集2.2. 对每个数据集降维处理2.2.1. 气温2.2.2. 降水2.2.2. 光照2.2.3. 风速2.2.4. 蒸汽压2.2.5.定义一个函数&#…