SMO算法,platt论文的原始算法及优化算法

 platt论文:[PDF] Sequential Minimal Optimization : A Fast Algorithm for Training Support Vector Machines | Semantic Scholar

算法优化:[PDF] Improvements to Platt's SMO Algorithm for SVM Classifier Design | Semantic Scholar

包含个人实现代码、SMO 优化算法、libsvm:yanzhi0922/SVM: 2024.07.12 (github.com)

数据集获取:LIBSVM Data: Classification, Regression, and Multi-label (ntu.edu.tw)

原论文伪代码:

target = desired output vector
point = training point matrix
procedure takeStep(i1,i2)if (i1 == i2) return 0alph1 = Lagrange multiplier for i1y1 = target[i1]E1 = SVM output on point[i1] – y1 (check in error cache)s = y1*y2Compute L, H via equations (13) and (14)if (L == H)return 0k11 = kernel(point[i1],point[i1])k12 = kernel(point[i1],point[i2])k22 = kernel(point[i2],point[i2])eta = k11+k22-2*k12if (eta > 0){a2 = alph2 + y2*(E1-E2)/etaif (a2 < L) a2 = Lelse if (a2 > H) a2 = H}else{Lobj = objective function at a2=LHobj = objective function at a2=Hif (Lobj < Hobj-eps)a2 = Lelse if (Lobj > Hobj+eps)a2 = Helsea2 = alph2}if (|a2-alph2| < eps*(a2+alph2+eps))return 0a1 = alph1+s*(alph2-a2)Update threshold to reflect change in Lagrange multipliersUpdate weight vector to reflect change in a1 & a2, if SVM is linearUpdate error cache using new Lagrange multipliersStore a1 in the alpha arrayStore a2 in the alpha arrayreturn 1
endprocedureprocedure examineExample(i2)y2 = target[i2]alph2 = Lagrange multiplier for i2E2 = SVM output on point[i2] – y2 (check in error cache)r2 = E2*y2if ((r2 < -tol && alph2 < C) || (r2 > tol && alph2 > 0)){if (number of non-zero & non-C alpha > 1){i1 = result of second choice heuristic (section 2.2)if takeStep(i1,i2)return 1}loop over all non-zero and non-C alpha, starting at a random point{i1 = identity of current alphaif takeStep(i1,i2)return 1}loop over all possible i1, starting at a random point{i1 = loop variableif (takeStep(i1,i2)return 1}}return 0
endproceduremain routine:numChanged = 0;examineAll = 1;while (numChanged > 0 | examineAll){numChanged = 0;if (examineAll)loop I over all training examplesnumChanged += examineExample(I)elseloop I over examples where alpha is not 0 & not CnumChanged += examineExample(I)if (examineAll == 1)examineAll = 0else if (numChanged == 0)examineAll = 1
}

以上算法基本原理相同,结果相同,优化是时间复杂度上的优化 ,libsvm时间复杂度最优

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

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

相关文章

2024年【危险化学品生产单位安全生产管理人员】最新解析及危险化学品生产单位安全生产管理人员考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 危险化学品生产单位安全生产管理人员最新解析参考答案及危险化学品生产单位安全生产管理人员考试试题解析是安全生产模拟考试一点通题库老师及危险化学品生产单位安全生产管理人员操作证已考过的学员汇总&#xff0c;…

export在linux中的作用

在某些项目中常常使用export命令。该命令的作用是设置环境变量&#xff0c;并且该环境变量为当前shell进程与其启动的子进程共享。 export MODEL_NAME"stable-diffusion-v1-4"比如以上命令&#xff0c;如果不采用export&#xff0c;设置的变量仅在当前shell命令/进程…

基于JSP的毕业生就业信息管理系统

你好&#xff0c;我是专注于信息系统开发的码农小野&#xff01;如果你对毕业生就业信息管理有需求&#xff0c;欢迎联系我。 开发语言&#xff1a;JSP 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 SSM框架 工具&#xff1a;Eclipse、Maven、Navicat 系统展示 首页…

nhdeep电子档案长期保存系统

nhdeep电子档案长期保存系统&#xff0c;用于导入管理系统中的著录项信息&#xff0c;并安装档案相关规范&#xff0c;转换为适合长期保存的电子文件格式和封装包结构&#xff0c;进行管理和存储。 著录信息列表页面&#xff0c;用于导入著录项&#xff0c;挂接原文文件&#…

【漏洞复现】CmsEasy crossall_act.php SQL注入漏洞

漏洞描述 CmsEasy存在SQL注入漏洞,通过文件service.php加密SQL语句执行即可执行任何SQL命令 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资…

protobuf2.5升级protobuf3.14.0

这个升级搞得心力憔悴&#xff0c;我VS2010升级到了VS2017&#xff0c;所有的库都要编译一下&#xff0c;想着顺便把其他的三方库也升级了。搞了好几天&#xff0c;才升级完&#xff0c;因为不仅要搞windows还要搞linux版本各种库的升级。hpsocket的升级&#xff0c;jsoncpp的升…

pve笔记

配置显卡直通参考 https://blog.csdn.net/m0_59148723/article/details/130923893 https://foxi.buduanwang.vip/virtualization/pve/561.html/ https://www.cnblogs.com/MAENESA/p/18005241 https://www.wangsansan.com/archives/181/ pve配置显卡直通到虚拟机后&#xff0c;…

LLM 大语言模型显存消耗估计与计算

LLM 大语言模型显存消耗估计与计算 1. LLM 大语言模型开发流程 在大模型&#xff08;如 LLaMA-7B、GPT-3 等&#xff09;的开发、训练、微调、推理和部署过程中&#xff0c;各个阶段的流程都涉及多个复杂的步骤。以下是详细的流程描述&#xff0c;涵盖训练和微调的区别&#…

机器学习 第7章-贝叶斯分类器

机器学习 第7章-贝叶斯分类器 7.1 贝叶斯决策论 贝叶斯决策论(Bayesian decision theory)是概率框架下实施决策的基本方法。对分类任务来说&#xff0c;在所有相关概率都已知的理想情形下&#xff0c;贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。下面我…

Transformer,注意力机制。

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

流媒体服务器二:RTMP协议详解 以及 RTMP学习到什么程度算是合格?

一个问题&#xff1f; 在上一节我们使用SRS搭建了RTMP环境&#xff0c;那么在企业开发中&#xff0c;是否使用第三方的RTMP服务器&#xff08;例如上一节的SRS&#xff09;就可以了呢&#xff1f;或者说&#xff1a;作为一个音视频开发人员&#xff0c;就会配置就OK了呢&#…

深入理解ESM、CJS与IIFE:JavaScript模块化的三大主流范式

随着JavaScript生态的不断发展&#xff0c;模块化成为了前端开发不可或缺的一部分。它允许开发者将大型的程序拆分成小块&#xff0c;便于管理和复用。在JavaScript中&#xff0c;主要有三种模块化标准&#xff1a;ES Modules&#xff08;ESM&#xff09;、CommonJS&#xff08…

JavaFX布局-TilePane

JavaFX布局-TilePane 常用属性alignmenttileAlignmentorientationhgapvgappadding 实现方式Javafxml 自动排列其子节点成网格状根据容器的大小以及子节点的数量和大小自动计算最佳的排列方式推荐子节点固定大小&#xff0c;参差不齐的子节点&#xff0c;效果很诡异 常用属性 …

普元EOS学习笔记-某些版本的EOS提供的maven获取依赖失败的问题解决

前言 普元EOS的开发包中&#xff0c;提供了maven&#xff0c;因为EOS项目的某些依赖只能从普元官方仓库获取&#xff0c;因此&#xff0c;编译EOS项目必须使用EOS提供的maven。 maven拉取依赖失败 某些版本的EOS提供的maven在编译EOS项目的时候会出现拉取失败的现象。 [FATA…

Docker 安装 Redis 单机集群总结

前言 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于 内存 、 分布式 、可选持久性的键值对( Key-Value )存储数据库 redis版本&#xff1a;redis:6.2.13作者&#xff1a;易墨 安装单机版 安装源&#xff1a;DockerHub 默认配置文件&#xff1a;配…

安装Keil5 MDK

文章目录 前言一、安装Keil5 MDK 软件以及器件支持包1. 器件支持包离线安装方式2. 器件支持包在线安装方式 二、软件注册三、驱动安装1. 安装STLINK驱动2. 安装USB转串口驱动 前言 提示&#xff1a;本文主要用作在学习江协科大STM32入门教程后做的归纳总结笔记&#xff0c;旨在…

Maven引入与打包指定目录下的第三方sdk

针对远程仓库没有的jar包&#xff0c;应该如何引入与打包&#xff1f; 1、deploy到远程仓库 申请账号与权限&#xff0c;使用mvn deploy命令发布到远程仓库或者是私有仓库。 1、在Maven的conf/settings.xml文件配置远程仓库的认证信息 <settings><!-- 配置远程仓库…

Linux网络编程之TCP

文章目录 Linux网络编程之TCP1、TCP协议的简单认识2、TCP网络编程接口2.1、socket2.2、bind2.3、listen2.4、accept2.5、connect 3、简单的TCP网络程序3.1、服务器响应程序3.2、服务器执行命令行 4、TCP客户端connect断线重连5、应用层自定义协议以及序列化和反序列化 Linux网络…

springboot整合 knife4j 接口文档

第一步&#xff1a;引入依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.4.0</version></dependency> 第二步&#xff1a;写入配置 方…