机器学习6_支持向量机_算法流程

news2024/11/29 15:30:15

最大化:\theta (\alpha ,\beta )=\sum_{i=1}^{N}\alpha _i-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}y_i y_j\alpha _i\alpha _j\varphi (X_i)^T\varphi (X_j)

限制条件:

        (1)0\leq \alpha _i\leq C,(i=1\sim N)

        (2)\sum_{i=1}^{N}\alpha _iy_i=0,(i=1\sim N)

如何求解这个对偶问题,同时基于对偶问题给出支持向量机算法的统一流程。

\varphi (X_i)^T\varphi (X_j)=K(X_i,X_j) (核函数)

只要知道核函数,就可以求个这个最优化的对偶问题。

求解了这个对偶问题后,解出了 \alpha (i=1\sim N)

可以根据上面的式子 \omega =\sum_{i=1}^{N}\alpha _iy_i\varphi (x_i)

由于 \varphi (x) 不知道是否具有显示表达,所以 \omega 也不知道是否具有显示表达。

无须知道 \omega 的显示表达,也可以通过核函数 K(X_1,X_2)\Rightarrow\omega ^TX+b 的值 

如何求b

由于 \omega =\sum_{j=1}^{N}\alpha _jy_j\varphi (X_j)

则 \omega^T\varphi (X_i) =\sum_{j=1}^{N}\alpha _jy_j\varphi (X_j)^T\varphi (X_i)

                       =\sum_{j=1}^{N}\alpha _jy_jK(X_j,X_i)

\varphi (X_j)^T\varphi (X_i)=K(X_i,X_j)

\alpha _i[1+\delta _i-y_i\omega ^T\varphi (X_i)-y_ib]=0

\beta _i\delta _i=0 \Rightarrow (c-\alpha _i)\delta _i=0

如果对某个 i,\alpha _i\neq 0 且 \alpha _i\neq c ,则根据KKT条件,必有 \delta _i=0 ;

1+\delta _i-y_i\omega ^T\varphi(X_i) -y_ib=0

y_i\omega ^T\varphi(X_i)

\Uparrow

\mathbf{=\sum_{j=1}^{N}\alpha _iy_iy_jK(X_j,X_i)}

只需要找一个 0<\alpha _i<c

b=\frac{1-\sum_{j=1}^{N}\alpha_jy_iy_jK(X_j,X_i)}{y_i }

对于一个测试样本X如何获得其预测的类别?

需要计算 \omega^T\varphi (X)+b ,将 \omega =\sum_{i=1}^{N}\alpha _jy_i\varphi (X_i) 代入,将会得到

\omega^T\varphi (X)+b =\sum_{i=1}^{N}\alpha _iy_i\varphi (X_i)^T\varphi (X)+b

                        =\sum _{i=1}^{N}\alpha _iy_iK (X_i,X)+b

即使不知道 \varphi (x) ,只知道 K(X_1,X_2) ,也可以算出 \omega ^TX+b

这一结论被称为——核函数系法(Kernel Trick)

可以得到如下判决标准:

如果 \sum _{i=1}^{N}\alpha _iy_iK (X_i,X)+b\geq 0 ,那么 X\in C_1

如果 \sum _{i=1}^{N}\alpha _iy_iK (X_i,X)+b< 0 ,那么 X\in C_2


基于对偶问题的求解,总结支持向量机训练的测试的流程

训练过程:

输入训练数据 \left \{ \left ( X_i,y_i \right ) \right \}i=1\sim N ,其中 y_i=\pm1

最大化:\theta (\alpha )=\sum_{i=1}^{N}\alpha _i\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}y_iy_j\alpha_i\alpha_j\varphi (X_i)^T\varphi (X_j)

限制条件:

(1)0\leq \delta _i\leq C,(i=1\sim N)

(2)\sum_{i=1}^{N}\alpha _iy_i=0,(i=1\sim N)

求b

找一个 \alpha _i\neq 0 且 \alpha _i\neq c ,则 b=\frac{1-\sum_{j=1}^{N}\alpha_jy_iy_jK(X_j,X_i)}{y_i }

测试过程

考察测试数据X,预测它的类别y。

如果 \sum _{i=1}^{N}\alpha _iy_iK (X_i,X)+b\geq 0 ,那么 y=+1

如果 \sum _{i=1}^{N}\alpha _iy_iK (X_i,X)+b< 0 ,那么 y=-1

这里只是用到了核函数 K(X_1,X_2)

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

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

相关文章

DM8 Docker环境部署

1 环境说明 类别 版本 介质 操作系统 CentOS-7-x86_64-DVD-2207-02.iso docker-27.3.1.tgz Dm8 Docker DM8开发版 dm8_20241119_x86_rh6_64_rq_ent_8.1.2.84.tar 备注&#xff1a; 下载docker源码包 下载地址&#xff1a; https://download.docker.com/linux/static/stable/x…

DevOps工程技术价值流:Jenkins驱动的持续集成与交付实践

一、Jenkins系统概述 Jenkins&#xff1a;开源CI/CD引擎的佼佼者 Jenkins&#xff0c;作为一款基于Java的开源持续集成&#xff08;CI&#xff09;与持续交付&#xff08;CD&#xff09;系统&#xff0c;凭借其强大的插件生态系统&#xff0c;成为DevOps实践中不可或缺的核心…

apache实现绑定多个虚拟主机访问服务

1个网卡绑定多个ip的命令 ip address add 192.168.45.140/24 dev ens33 ip address add 192.168.45.141/24 dev ens33 在linux服务器上&#xff0c;添加多个站点资料&#xff0c;递归创建三个文件目录 分别在三个文件夹下&#xff0c;建立测试页面 修改apache的配置文件http.…

【css实现收货地址下边的平行四边形彩色线条】

废话不多说&#xff0c;直接上代码&#xff1a; <div class"address-block" ><!-- 其他内容... --><div class"checked-ar"></div> </div> .address-block{height:120px;position: relative;overflow: hidden;width: 500p…

启动SpringBoot

前言&#xff1a;大家好我是小帅&#xff0c;今天我们来学习SpringBoot 文章目录 1. 环境准备2. Maven2.1 什么是Maven2.2 创建⼀个Maven项⽬2.3 依赖管理2.3.1 依赖配置2.3.2 依赖传递2.3.4 依赖排除2.3.5 Maven Help插件&#xff08;plugin&#xff09; 2.4 Maven 仓库2.6 中…

ERROR CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM

如果你的spark on yarn任务正常运行&#xff0c;能得到结果&#xff0c;但是日志中出现了如下的报错 看见这个报错不要慌张&#xff0c;这个是你开启了动态伸缩容器&#xff0c;且当这个容器触发了空闲关闭的阈值&#xff0c;默认是60秒&#xff0c;这时候该容器会被删除掉&a…

SpringBoot实战(三十二)集成 ofdrw,实现 PDF 和 OFD 的转换、SM2 签署OFD

目录 一、OFD 简介1.1 什么是 OFD&#xff1f;1.2 什么是 版式文档&#xff1f;1.3 为什么要用 OFD 而不是PDF&#xff1f; 二、ofdrw 简介2.1 定义2.2 Maven 依赖2.3 ofdrw 的 13 个模块 三、PDF/文本/图片 转 OFD&#xff08;ofdrw-conterver&#xff09;3.1 介绍&#xff1a…

QT6学习第四天 感受QT的文件编译

QT6学习第四天 感受QT的文件编译 使用纯代码编写程序新建工程 使用其他编辑器纯代码编写程序并在命令行运行使用 .ui 表单文件生成界面使用自定义 C 窗口类使用现成的QT Designer界面类 使用纯代码编写程序 我们知道QT Creator中可以用拖拽的方式在 .ui 文件上布局&#xff0c…

C++:用红黑树封装map与set-2

文章目录 前言一、红黑树封装map与set中const迭代器1. 框架的搭建2. set实现const迭代器3. map实现const迭代器 二、operator[ ]1. operator[ ]要达成的样子2. insert的改变 三. 解决insert里set中的问题四. 解决map中的operator[ ]总结用红黑树封装map与set代码 前言 前面我们…

微信小程序下拉刷新与上拉触底的全面教程

微信小程序下拉刷新与上拉触底的全面教程 引言 在微信小程序的开发中,用户体验至关重要。下拉刷新和上拉触底是提高用户交互体验的重要功能,能够让用户轻松获取最新数据和内容。本文将详细介绍这两个功能的实现方式,结合实际案例、代码示例和图片展示,帮助开发者轻松掌握…

【博主推荐】C#中winfrom开发常用技术点收集

文章目录 前言1.打开文件夹并选中文件2.窗体之间传参3.异步调用&#xff1a;让数据处理不影响页面操作4.创建一个多文档界面(MDI) 应用程序5.在WinForms中使用数据绑定6.在WinForms中后台使用控件的事件处理7.在WinForms中窗体跳转的几种方式8.后台处理方法中&#xff0c;调用窗…

第四十二篇 EfficientNet:重新思考卷积神经网络的模型缩放

文章目录 摘要1、简介2、相关工作3、复合模型缩放3.1、 问题公式化3.2、扩展维度3.3、复合比例 4、EfficientNet架构5、实验5.1、扩展MobileNets和ResNets5.2、EfficientNet的ImageNet结果5.3、EfficientNet的迁移学习结果 6、讨论7、结论 摘要 卷积神经网络(ConvNets)通常在固…

【Android】MMKV—高性能轻量化存储组件

【Android】MMKV—高性能轻量化存储组件 本文参考以及学习文档&#xff1a; Android存储&#xff1a;轻松掌握MMKV通过学习本文&#xff0c;轻松掌握腾讯开发的 MMKV 组件&#xff0c;尽早在项目中替换掉SharedPr - 掘金 MMKV——Android上的使用(替换SP存储)MMKV 是基于 mmap …

python+django自动化平台(一键执行sql) 前端vue-element展示

一、开发环境搭建和配置 pip install mysql-connector-pythonpip install PyMySQL二、django模块目录 dbOperations ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-313.pyc │ ├── admin.cpython-313.pyc │ ├── apps.cpython-313.pyc │ …

arm Rk1126 编译Qt工程报错: Could not find qmake spec

首先修改qmake.conf文件&#xff0c;配置好正确的交叉编译工具&#xff1a; 然后执行编译&#xff1a; /opt/Rv1126/Rv1126-盒子代码/rv1126-qt5-sdk/bin/qmake untitled.pro 报错。 原因&#xff1a;中文路径。修改路径为英文路径即可

[保姆式教程]使用labelimg2软件标注定向目标检测数据和格式转换

定向目标检测是一种在图像或视频中识别和定位对象的同时&#xff0c;还估计它们方向的技术。这种技术特别适用于处理有一定旋转或方向变化的对象&#xff0c;例如汽车、飞机或文本。定向目标检测器的输出是一组旋转的边界框&#xff0c;这些框精确地包围了图像中的对象&#xf…

C语言刷题笔记3(7)

7.1 数组处理斐波那契数列 题目描述:用数组来处理Fibonacci数列并输出。 输入:一个不超过40且大于2的整数n&#xff0c;表示需要处理并输出的Fibonacci数个数。 输出:输出前n个Fibonacci数&#xff0c;每行输出5个值&#xff0c;按每12位向右对齐的方式输出。请注意不要在第…

PHP 去掉特殊不可见字符 “\u200e“

描述 最近在排查网站业务时&#xff0c;发现有数据匹配失败的情况 肉眼上完全看不出问题所在 当把字符串 【M24308/23-14F‎】复制出来发现 末尾有个不可见的字符 使用删除键或左右移动时才会发现 最后测试通过 var_dump 打印 发现这个"空字符"占了三个长度 &#xf…

构建 LLM (大型语言模型)应用程序——从入门到精通(第七部分:开源 RAG)

通过检索增强生成 (RAG) 应用程序的视角学习大型语言模型 (LLM)。 本系列博文 简介数据准备句子转换器矢量数据库搜索与检索大语言模型开源 RAG&#xff08;本帖&#xff09;评估服务LLM高级 RAG 1. 简介 我们之前的博客文章广泛探讨了大型语言模型 (LLM)&#xff0c;涵盖了其…

linux基础2

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…