导航

  • Mathematical Model

Mathematical Model

令x1,…,xm∈Rnx_1, \dots, x_m\in\mathbb{R}^nx1​,…,xm​∈Rn为给定的训练集,yi∈{−1,+1}y_i\in\{-1, +1\}yi​∈{−1,+1}为标签集合,要求找到分离超平面wTx=bw^Tx=bwTx=b满足
yi(wTxi−b)≥1y_i(w^Tx_i-b)\geq 1 yi​(wTxi​−b)≥1
分离间隔{x∈Rn:−1<wTx−b<1}\{x\in\mathbb{R}^n: -1<w^Tx-b<1\}{x∈Rn:−1<wTx−b<1}不包含任何样本点,间隔宽度为2∥w∥−12\lVert w\rVert^{-1}2∥w∥−1,最大化间隔等价于最小化∥w∥\lVert w\rVert∥w∥,即求解优化问题(硬间隔SVM)
min⁡b,w12∥w∥2s.t.yi(wTxi−b)≥1\begin{aligned} &\min_{b, w} &\frac{1}{2}\lVert w\rVert^2 \\ &s.t. &y_i(w^Tx_i-b)\geq 1 \end{aligned} ​b,wmin​s.t.​21​∥w∥2yi​(wTxi​−b)≥1​
相比较硬间隔SVM,软间隔SVM在模型精度和鲁棒性之间进行平衡,是一种更加常用的模型.
min⁡w,b12∥w∥2+C∑i=1mξis.t.yi(wTxi−b)≥1−ξi,i=1,…,mξi≥0,i=1,…,m\begin{aligned} &\min_{w, b}\quad &\frac{1}{2}\lVert w\rVert^2+C\sum_{i=1}^m\xi_i \\ &s.t. \quad &y_i(w^Tx_i-b)\geq 1-\xi_i, i=1,\dots, m\\ &\quad& \xi_i\geq 0, i=1,\dots, m \end{aligned} ​w,bmin​s.t.​21​∥w∥2+Ci=1∑m​ξi​yi​(wTxi​−b)≥1−ξi​,i=1,…,mξi​≥0,i=1,…,m​
矩阵形式表达为
min⁡b,w,ξ12∥w∥2+CeTξs.t.y×(Xw−be)+ξ≥eξ≥0\begin{aligned} &\min_{b, w, \xi}\quad& \frac{1}{2}\lVert w \rVert^2+C\mathbf{e}^T\xi\\ &s.t. \quad & y\times(Xw-b\mathbf{e})+\xi\geq \mathbf{e}\\ &\quad &\xi\geq 0 \end{aligned} ​b,w,ξmin​s.t.​21​∥w∥2+CeTξy×(Xw−be)+ξ≥eξ≥0​
使用锥形式描述soft-marginSVM
min⁡b,w,ξ,tt+CeTξs.t.y×(Xw−be)+ξ≥e(1,t,w)∈Qrn+2ξ≥0\begin{aligned} &\min_{b, w, \xi, t}\quad& t+C\mathbf{e}^T\xi\\ &s.t.\quad& y\times(Xw-b\mathbf{e})+\xi\geq \mathbf{e}\\ &\quad &(1, t, w)\in\mathcal{Q}_r^{n+2}\\ &\quad &\xi\geq 0 \end{aligned} ​b,w,ξ,tmin​s.t.​t+CeTξy×(Xw−be)+ξ≥e(1,t,w)∈Qrn+2​ξ≥0​
mosek建模代码

with fusion.mosek import *
import randomdef primal_svm(m, n, X, y, CC):with Model() as M:w=M.variable('w', n, Domain.unbounded())t=M.variable('t', 1, Domain.unbounded())b=M.variable('b', 1, Domain.ubbounded())xi=M.variable('xi', m, Domain.greaterThan(0.0))# 分量描述约束M.constraint(Expr.add(Expr.mulElm(y, Expr.sub(Expr.mul(X, w), Var.repeat(b, m))),xi), Domain.greaterThan(1.0))M.constraint(Expr.vstack(1, t, w), Domain.inRotatedQCone())for C in CC:M.objective(ObjectiveSense.Minimize, Expr.add(t, Expr.mul(C, Expr.sum(xi))))M.solve()# 考虑到可能存在无解的情况try:cb='{0:6f} | {1:8f} | '.format(C, b.level()[0])wstar=' '.join(['{0:8f}'.format(wi) for wi in w.level()])print(cb+wstar)except:pass    def main():"""generate a random dataset of two groups of points, each from a Gaussian, eachfrom a Gaussian distribution in R^2 with centers (1.0, 1.0) and (-1.0, -1.0)"""CC = [500.0*i for i in range(10)]m, n = 50, 3random.seed(0)nump=random.randint(0, 50)numm=m-numpy=[1 for _ in range(nump)]+[-1 for _ in range(numm)]mean=1, var=1X=[[random.gauss(mean, var) for _ in range(n)] for _ in range(nump)]+[[random.gauss(-mean, var) for _ in range(n)] for _ in range(numm)]primal_svm(m, n, X, y, CC)

【mosek.fusion】Primal SVM相关推荐

  1. 【机器学习系列】之SVM核函数和SMO算法

    作者:張張張張 github地址:https://github.com/zhanghekai [转载请注明出处,谢谢!] [机器学习系列]之SVM硬间隔和软间隔 [机器学习系列]之SVM核函数和SMO ...

  2. 【机器学习系列】之SVM硬间隔和软间隔

    作者:張張張張 github地址:https://github.com/zhanghekai [转载请注明出处,谢谢!] [机器学习系列]之SVM硬间隔和软间隔 [机器学习系列]之SVM核函数和SMO ...

  3. 【知识星球】从SVM对偶问题,到疲劳驾驶检测,到实用工业级别的模型压缩技巧...

    欢迎大家来到<知识星球>专栏,本次发布这两天有三AI知识星球中专栏<AI 1000问>,<模型结构1000变>,<数据集>的知识便利贴. 作者& ...

  4. 网格向量必须包含特征点。_【专题研究】基于SVM支持向量机模型的选股策略

    研究过集成学习中的随机森林和XGBoost后,本文将介绍一种更传统的机器学习方法:SVM支持向量机.SVM由于其较高的准确度,并且能够解决非线性分类问题,曾一度成为非常流行的机器学习算法.本文分别介绍 ...

  5. 【opencv机器学习】基于SVM和神经网络的车牌识别

    基于SVM和神经网络的车牌识别 深入理解OpenCV:实用计算机视觉项目解析 本文用来学习的项目来自书籍<实用计算机视觉项目解析>第5章Number Plate Recognition 提 ...

  6. CVPR2005【行人检测】HOG+SVM用于人体检测的梯度方向直方图

    目录 CVPR2005-用于人体检测的梯度方向直方图 Histograms of Oriented Gradients for Human Detection 使用的数据集 研究方法 数据 流程 双对 ...

  7. 【VMware Fusion】如何配置VMware Fusion中的Vmnet网卡

    文章目录 前言 一.vmnet网卡是什么? 二.配置方法 总结 前言 在VMware Fusion下,如果需要实现两台虚拟机之间的互通,可以利用vmnet1.2.8的网卡,并可以修改为想要的ip地址. ...

  8. 【人脸识别】Gabor+SVM比较PCA+SVM人脸识别【含GUI Matlab源码 685期】

    ⛄一.简介 Gabor+SVM:利用Gabor程序实现对人脸的特征提取,然后用SVM进行分类: 1 Gabor Gabor 特征提取算法可以在不同方向上描述局部人脸特征,对光照.遮挡以及表情变换等情况 ...

  9. 【Python机器学习】之 SVM 支持向量机算法(二)

    SVM 支持向量机(二) 1.支持向量机 ​ 这样,由于w,x\mathbf{w,x}w,x初始值的不同,最后得到的分割超平面也有可能不同,那么一定存在一个最优的超平面,这种方法就是支持向量机. ​ ...

  10. 【模式识别/机器学习】支持向量机SVM浅析

    支持向量机(Support Vector Machines,SVM)是1995年Cortes喝Vapnik首先提出的,它在解决小样本.非线性以及高位模式识别问题中表现出了许多特有的优势,并且可以推广应 ...

最新文章

  1. char类型怎么输入 c语言_还没搞懂C语言指针?这里有最详细的纯干货讲解(附代码)...
  2. Swift 与 Objective-C混编xxx-Swift.h File not found
  3. 李宏毅线性代数笔记2: 线性方程组和数域
  4. api分层内部外部 spring_java - Spring boot restful API分层架构验证 - SO中文参考 - www.soinside.com...
  5. 忍“乳”负重,身材好的女孩子究竟有多不容易?我从科学的角度算出来了……...
  6. Java新手造假_老板居然让我在Java项目中“造假”
  7. 日常问题 - 远程服务器运行Tomcat出现卡顿阻塞
  8. MQTT 遗嘱消息(Will Message)的使用
  9. 使用工具包自动生成向EBS系统注册表和字段的代码
  10. 算法:冒泡排序(Bubble Sort)、插入排序(Insertion Sort)和选择排序(Selection Sort)总结...
  11. eclipse怎么将项目打包成jar文件
  12. 软件测试网上订餐系统,星月外卖网上订餐系统软件测试报告(正式).doc
  13. 对照ArcGIS坐标系统文件(.prj)用Deskpro完成投影转换
  14. 【推荐】精选行政文书模板大全(调查报告+会议纪要+通知+通告+总结+规定等模板,共177份)
  15. b365老掉线 h3c路由器_H3C路由器PPP连接的常见故障及解决方法
  16. 华大基因首席运营官张凌离职
  17. java高校图书馆管理网站计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  18. 干货:统计学派的18种经典「数据分析方法」
  19. 间隔1.5s发送一次DHCP DISCOVER报文
  20. 解开机器学习模型黑盒的 4 种方法(终极指南)

热门文章

  1. ORB SLAM2源码解读
  2. math_Taylor_常见幂级数展开
  3. matlab三机九节点,matlab三机九节点电力系统仿真(带程序).doc
  4. Vivado 错误代码 [DRC PDCN-2721] 解决
  5. H3C Comware V7新增的RBAC
  6. 牛顿三次插值 matlab,matlab 牛顿插值法 三次样条插值法[行业二类]
  7. java html模板转图片、动态绑定数据
  8. Ubuntu安装无线网卡驱动
  9. 初识ubuntu 安装steam
  10. 前端使用js来获取ip起始和结束地址