当前位置: 首页 > news >正文

机器学习---多分类SVM、支持向量机分类

1. 多分类SVM

1.1 基本思想

        Grammer-singer多分类支持向量机的出发点是直接用超平面把样本空间划分成M个区域,其

中每个区域对应一个类别的输入。如下例,用从原点出发的M条射线把平面分成M个区域,下图画

出了M=3的情形:

1.2 问题描述 

设训练点集为:

则存在着  使得训练点满足下式:

 

引进记号:

           

根据最大间隔原则:

           

其中:进而最优化问题可转化为:

     

添加松弛变量:

    

其中:

引入拉格朗日函数:

对偶函数:

样本与样本间的参数无约束

由此,进一步可优化如下目标函数: 

     其中,最后一项为常数。

带入得到凸二次优化问题:

构建拉格朗日函数:

求偏导:

如果   ,那么   

如果  , 那么  ,由此可得:

但有约束:

所以:

代入可得:

求解算法:

        总结:这个其实是不实用的,因为将所有的sample放在一个优化函数里面,这样的训练时间非

常长,几乎无法忍受的地步,test时间还是可以的。小规模数据集可以考虑,如果数据集规模很

大,建议不要使用这个。

2. 支持向量机回归

        SVM本身是针对经典的二分类问题提出的,支持向量回归机(Support Vector Regression

SVR)是支持向量在函数回归领域的应用。SVRSVM分类有以下不同:SVM回归的样本点只有

一类,所寻求的最优超平面不是使两类样本点分得“最开”,而是使所有样本点离超平面的“总偏差”

最小。这时样本点都在两条边界线之间,求最优回归超平面同样等价于求最大间隔。

2.1 SVR基本模型

对于线性情况,支持向量机函数拟合首先考虑用线性回归函数拟合。

标准支持向量机采用ε -不灵敏度函数,即假设所有训练数据在精度 ε下用线性函数拟合图。 

 约束条件:

该问题的求解为二次优化问题,通过拉格朗日乘子转化为其对偶形式:

计算b的值及决策函数:

2.2 支持向量机回归--非线性 

        非线性SVR的基本思想是通过事先确定的非线性映射将输入向量映射的一个高维特征空间

中,然后在此高维空间中再进行线性回归,从而取得在原空间非线性回归的效果。

首先将输入量通过映射  映射到高维特征空间H中,则

则优化目标函数变为:

在高维空间中计算内积十分复杂,鉴于核函数优秀的内积计算性质:

则优化目标函数可表示为:

得到回归函数即为标准ε-不敏感损失函数下的回归函数形式。 

可以表示为:  

SVM与神经网络(NN)的对比:

①SVM的理论基础比NN更坚实,更像一门严谨的“科学”(三要素:问题表示、问题解决、证明)

②SVM----严格的数学推理

③NN----强烈依赖于工程技巧

④推广能力取决于“经验风险值”和“置信范围值”,NN不能控制两者中的任何一个。

⑤NN设计者用高超的工程技巧弥补了数学上的缺陷----设计特殊的结构,利用启发式算法,有时

能得到出人意料的好结果。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • FFMPEG库实现mp4/flv文件(H264+AAC)的封装与分离
  • 中文编程软件视频推荐,自学编程电脑推荐,中文编程开发语言工具下载
  • SDN和NFV笔记
  • k8s docker cgroup驱动问题 —— 筑梦之路
  • HTTPS安全相关-通信安全的四个特性-ssl/tls
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • 【Proteus仿真】【51单片机】水质监测报警系统设计
  • 城市内涝积水的原因有哪些?万宾科技内涝积水监测仪工作原理
  • JSON方法实现深拷贝存在的问题
  • 2022年12月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • JavaScript中的Math
  • Ionic组件 ion-list ion-list-header
  • Python中的Socket编程
  • scrapy发json的post请求
  • 双十一“静悄悄”?VR购物拉满沉浸式购物体验
  • 网络传输文件的问题
  • 4. 路由到控制器 - Laravel从零开始教程
  • create-react-app做的留言板
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • gitlab-ci配置详解(一)
  • leetcode98. Validate Binary Search Tree
  • Nacos系列:Nacos的Java SDK使用
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • React+TypeScript入门
  • Spring核心 Bean的高级装配
  • text-decoration与color属性
  • webpack+react项目初体验——记录我的webpack环境配置
  • 产品三维模型在线预览
  • 初探 Vue 生命周期和钩子函数
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 给初学者:JavaScript 中数组操作注意点
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 7行Python代码的人脸识别
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #NOIP 2014# day.2 T2 寻找道路
  • (1)SpringCloud 整合Python
  • (52)只出现一次的数字III
  • (C)一些题4
  • (第一天)包装对象、作用域、创建对象
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (接口封装)
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • .bashrc在哪里,alias妙用
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET Core 版本不支持的问题
  • .Net Winform开发笔记(一)
  • .NET 材料检测系统崩溃分析
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 快速重构概要1
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .net流程开发平台的一些难点(1)