从0开始机器学习--Day23--支持向量机

经过前面的学习,我们已经知道在解决问题时,重要的不仅仅是要在算法A或算法B中选择更优的,而是考虑怎么选择用于学习算法的特征和正则化参数,相比神经网络和逻辑回归,支持向量机在这两个方面做得更好。

优化目标(Optimization objective)

让我们先从逻辑回归开始讲起,看看如何通过一个小小的改动转为支持向量机。

逻辑回归图像

如图,假如我们有一个y=1的样本,我们的期望是算法经过计算后预测的h_{\theta}(x)\approx1,也就是\theta^{T}x远远大于0;同理,对于y=0的样本期望也是其\theta^{T}x远远小于0。

我们分别画出y=1y=0样本的代价函数图像,并参照其弯曲程度,画出两个新的折线,我们将这两条线命名为cost_{1}(z)cost_{0}(z),如下:

两个新的代价函数图像

接下来,我们就可以写出SCM,也就是支持向量机的1代价函数了,像上述所说,我们把cost_{1}(z)cost_{0}(z)替换进原来的代价函数里,我们把代价函数和正则项看做A和B,那么新的代价函数就是\frac{A}{m}+\frac{B}{2m},由于\frac{1}{m}是常数,不影响我们计算代价函数的最小值,可以约去。在原来的定义里,正则项参数是用于衡量参数\theta的权重,在SVM里也着重研究\theta,只是其形式为CA+B,将C乘在第一项前,如果其很小,说明B的权重很大,在这里只是按照惯例规定,与之前的研究对象并无不同。

值得注意的是,SVM并不会像逻辑回归一样输出一个概率,他的输出是直接对样本进行预测,即当\theta^{T}x\gg0时结果为1,相反则为0。

直观上的大间隔(Large margin intuition)

对比SVM和逻辑回归,两者从结果上来看仅仅是其预测的判定范围不太一样,SVM的范围相比逻辑回归更小,也就意味着其是作了更严谨的判断来得到这样的结果,相差的一小段范围我们称为安全因子。

下面有两幅图,在第一幅图中,最中间的决策边界就是SVM画出来的,你会发现它跟其他线相比和两组样本都隔了一个很远的距离,以确保有新的样本出现时分错的概率更低,也就是鲁棒性(指一个系统在面对内部结构或外部环境改变时,仍然能够维持其功能稳定运行的能力‌)更好;而在第二幅图中,假如我们的C取得很大(可能是为了考虑到一个极端样本),线的倾斜度很高;如果不需要考虑这个样本,那么决策边界大概就是中间这条线,我们可以将其简单理解为线性回归,C就是系数的倒数,C越大,直线越倾斜:

样本线性可分时SVM的决策边界

出现异常值时SVM的决策边界

视频学习来自:https://www.bilibili.com/video/BV1By4y1J7A5?spm_id_from=333.788.player.switch&vd_source=867b8ecbd62561f6cb9b4a83a368f691&p=72

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

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

相关文章

Vulnhub靶场案例渗透[9]- HackableIII

文章目录 一、靶场搭建1. 靶场描述2. 下载靶机环境3. 靶场搭建 二、渗透靶场1. 确定靶机IP2. 探测靶场开放端口及对应服务3. 扫描网络目录结构4. 敏感数据获取5. 获取shell6. 提权6.1 敏感信息获取6.2 lxd提权 一、靶场搭建 1. 靶场描述 Focus on general concepts about CTF…

鸿蒙5.0版开发:使用HiLog打印日志(ArkTS)

在HarmonyOS 5.0中,HiLog是系统提供的一个日志系统,它允许应用和服务按照指定的级别、标识和格式字符串输出日志内容,帮助开发者了解应用的运行状态,更好地调试程序。本文将详细介绍如何在ArkTS中使用HiLog打印日志,并…

生成 Django 中文文档 PDF 版

文章目录 背景克隆 Django 文档和翻译仓库配置 conf.py设置和同步翻译生成 .pot 文件运行 sphinx-intl update复制翻译文件 构建 PDF生成 tex 文件安装 MikTeX生成 PDF Sphinx 生成文档 背景 浏览看到一个帖子,有个评论说可以用 sphinx 构建一个 pdf,正…

LeetCode 每日一题 2024/11/4-2024/11/10

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 11/4 633. 平方数之和11/5 3222. 求出硬币游戏的赢家11/6 3254. 长度为 K 的子数组的能量值 I11/7 3255. 长度为 K 的子数组的能量值 II11/8 3235. 判断矩形的两个角落是否…

关于我、重生到500年前凭借C语言改变世界科技vlog.18——内存函数

文章目录 1. memcpy函数2. memmove函数3. memset函数4. memcmp函数希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xff01; 内存函数是用于 操作内存块的一组函数&#xff0c;它们可以对内存进行复制、移动、设置和比较等操作。这些函数主要在 <str…

下划线命名json数组转java对象

/*** 将驼峰式命名的字符串转换为下划线方式* @param camelCase* @return*/ private static String toUnderlineCase(String camelCase) {return StrUtil.toUnderlineCase(camelCase); }/*** 下划线-赋值给-驼峰* @param source 源数据* @param target 目标数据*/ public stati…

【计算机网络】Socket编程接口

一、sockaddr结构体 二、Socket常见接口 1. socket() 2. bind() 3. recvfrom() 4. sendto() 5. listen() 6. accept() 三、基本转换函数 1. 与port有关的转换 2.与ip有关的转换 IP地址的表示有两种&#xff1a;点分十进制表示和整数表示 "192.168.1.100" …

ReactOS 4.2 OBJECT_TYPE_INITIALIZERj结构体的实现

Windows内核为新对象类型的定义提供了一个全局的OBJECT_TYPE_INITIALIZER 数据结构,作为需要填写和递交的“申请单”: OBJECT_TYPE_INITIALIZER // // Object Type Initialize for ObCreateObjectType // typedef struct _OBJECT_TYPE_INITIALIZER {USHORT Length;BOOLEAN Us…

SpringCloud篇(注册中心 - Nacos)

目录 一、Nacos安装指南 1. Windows安装 1.1. 下载安装包 1.2. 解压 1.3. 端口配置 1.4. 启动 1.5. 访问 2. Linux安装 2.1. 安装JDK 2.2. 上传安装包 2.3. 解压 2.4. 端口配置 2.5. 启动 3. Nacos的依赖 二、Nacos注册中心的入门使用 1. 认识和安装Nacos 2. 服…

链游系统定制化开发:引领游戏产业的新时代

在数字革命的浪潮中&#xff0c;链游&#xff08;区块链游戏&#xff09;作为一种新兴游戏形式&#xff0c;正重新定义游戏产业的发展方向。链游将区块链技术与传统游戏结合&#xff0c;使游戏体验更加公平透明&#xff0c;并赋予玩家真正的资产所有权。这一领域不仅为玩家带来…

TortoiseSVN提示服务器凭证检核错误:站点名称不符

电脑重装了系统&#xff0c;下载了新版本SVN软件&#xff0c;一切准备就绪&#xff0c;准备大干一场。 打开SVN&#xff0c;一遍一遍的提示【TortoiseSVN提示服务器凭证检核错误:站点名称不符】&#xff0c;一次次的让我接受&#xff0c;终于忍受不了了。 TortoiseSVN提示服务…

《传统视觉算法在视觉算法中的地位及应用场景

一、引言 在计算机视觉领域的发展历程中&#xff0c;传统视觉算法扮演了至关重要的角色。尽管近年来深度学习算法在视觉任务中取得了巨大的成功&#xff0c;但传统视觉算法依然具有不可替代的地位。传统视觉算法通常基于数学模型和手工设计的特征&#xff0c;具有计算效率高、…

docker构建jdk11

# 建立一个新的镜像文件&#xff0c;配置模板&#xff1a;新建立的镜像是以centos为基础模板 # 因为jdk必须运行在操作系统之上 FROM centos:7.9.2009# 作者名 MAINTAINER yuanhang# 创建一个新目录来存储jdk文件 RUN mkdir /usr/local/java#将jdk压缩文件复制到镜像中&#…

第四十二章 Vue中使用mutations修改Vuex仓库数据

目录 一、mutations修改仓库数据 1.1. 概述 1.2. mutations修改数据基本步骤 1.3. 完整代码 1.3.1. main.js 1.3.2. App.vue 1.3.3. index.js 1.3.4. Son1.vue 1.3.5. Son2.vue 二、mutations传参语法 2.1. mutations传参基本步骤 2.2. 完整代码 2.2.1. index.js …

六通道CAN集线器

六通道CAN集线器 --SG-CanHub-600 功能概述 SG_CanHub_600是一款具有六路通道的工业级智能 CAN数字隔离中继集线器。 SG_CanHub_600能够实现信号再生、延长通信距离、提高总线负载能力、匹配不同速 率 CAN网络&#xff0c;同时强大的 ID过滤功能可以极大降低 CAN总线负荷&a…

学校服务器连接pycharm配置2

上一个可能还是有点问题&#xff0c;因为实际在跑的时候读取的其实是本地的anaconda&#xff0c;这个重新整了一下流程 首先在学校服务器先激活自己创建的虚拟环境&#xff0c;这里就不截图了 然后在pycharm里面打开设置 选择这个python解释器 这里有添加解释器 选择SSH …

基于node一键发布到服务器的js脚本

基于node一键将打包后的前端文件发布到服务器指定目录的js脚本 需要使用node的2个包 npm install ssh2 scp2基于node进行ssh连接的控件 下面直接贴代码&#xff0c;已经在代码中加了注释 const { exec } require(child_process); const { Client } require(ssh2); const …

LeetCode面试经典150题|228.汇总区间

给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b] 应该按…

excel-VLOOKUP函数使用/XVLOOKUP使用

多个窗口同时编辑表格&#xff0c;方便对照操作 使用开始-视图-新建窗口 将战区信息表的三列数据匹配到成交数据表上 可以使用VLOOKUP函数 有4个参数&#xff08;必须要查找的值&#xff0c; 要查找的区域&#xff0c;要返回区域的第几列数据&#xff0c;一个可选参数查找匹…

boost::intrusive_ptr为什么叫做倾入指针

boost::intrusive_ptr的命名来源于其工作原理和设计目的。这个智能指针被称为“倾入指针”&#xff08;intrusive&#xff09;是因为它依赖于对象本身提供的功能来管理引用计数&#xff0c;而不是像std::shared_ptr和std::weak_ptr那样在指针内部自动管理引用计数。 具体来说&…