1. 分类

支持向量机包含三种:

  1. 线性可分支持向量机:当训练数据线性可分时,可通过硬间隔最大化,学习一个线性的分类器,叫线性可分支持向量机,也称硬间隔支持向量机
  2. 线性支持向量机:当训练数据近似线性可分时,可通过软间隔最大化,也学习一个线性的分类器,叫线性支持向量机,也称为软间隔支持向量机
  3. 非线性支持向量机:当训练数据线性不可分时,通过使用核函数技巧及软间隔最大化,学习一个非线性的支持向量机

2. 公式理解及推导

2.1. 线性可分支持向量机:

线性可分支持向量机原来及公式推导

2.2. 线性支持向量机:

相较于1的基础上,加入了松弛变量和惩罚参数C,其目标函数变成:

最小化目标函数包含两层含义:使 12∥w∥2\frac{1}{2}\left \| w \right \|^{2}21​∥w∥2 的值尽量小即间隔尽量大,同时使误分类点的个数尽量小,C是调和二者的系数。其他推导类似1的过程,线性支持向量机公式推导参考

2.3. 非线性支持向量机:

相较于2的基础上,加入了核技巧,通过一个非线性变换将输入空间(高维)对应于一个特征空间(低维),使得在输入空间中的非线性模型对应于特征空间的线性模型,再进一步去求解。推导过程类似2,只需将其中对偶形式中的內积换成核函数即可。

2.3.1. 常用的核函数及选取规则:

常用的核:Linear核与RBF核
选取规则:

  1. 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
  2. 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
  3. 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况

2.SVM和LR的对比

参考:https://blog.csdn.net/qq_35945399/article/details/81175772

相同点:

  1. 都是有监督的分类算法
  2. 不考虑核函数,均为线性分类
  3. 都是判别式模型

不同点:

  1. Loss不同:

    • LR是基于极大似然估计,sigmoid+对数似然
    • SVM是基于集合间隔最大化,合页函数
  2. SVM是结构风险最小化,LR是经验风险最小化
    • svm的损失函数自带w正则项,是在训练误差和模型复杂度之间找平衡,可以防止过拟合
    • lr需要额外增加正则项
  3. SVM只考虑个别点,而LR考虑所有点(若lr的不同类别数不平衡,需要先对数据做处理)
  4. SVM不能产生概率,lr能产生概率
  5. svm可以用核函数,LR一般不用
  6. svm计算复杂,但是效果好,适合小数据集;LR计算简单,适合大数据

机器学习之支持向量机(SVM)小结相关推荐

  1. 机器学习实战 支持向量机SVM 代码解析

    机器学习实战 支持向量机SVM 代码解析 <机器学习实战>用代码实现了算法,理解源代码更有助于我们掌握算法,但是比较适合有一定基础的小伙伴.svm这章代码看起来风轻云淡,实则对于新手来说有 ...

  2. 机器学习之支持向量机SVM之python实现ROC曲线绘制(二分类和多分类)

    目录 一.ROC曲线 二.TP.FP.TN.FN 三. python绘制ROC曲线(二分类) 1.思路 2.关键代码 3.完整代码 四. python绘制ROC曲线(多分类) 五.参考文献 一.ROC ...

  3. 优达学城机器学习之--支持向量机(SVM)

    前言 SVM是支持向量机的简称(Support Vector Machine) 文章目录如下: 简述 选择分隔线 核函数(kernel)及其参数c, gamma 过拟合 over-fitting SV ...

  4. OpenCV之ml 模块. 机器学习:支持向量机(SVM)介绍 支持向量机对线性不可分数据的处理

    支持向量机(SVM)介绍 目标 本文档尝试解答如下问题: 如何使用OpenCV函数 CvSVM::train 训练一个SVM分类器, 以及用 CvSVM::predict 测试训练结果. 什么是支持向 ...

  5. 机器学习:支持向量机SVM的SVC和SVR

    支持向量机SVM SVM的工作原理及分类 支持向量机的原理 线性可分的SVM 非线性可分的支持向量机 支持向量机分类SVC 支持向量机回归SVR SVR原理 SVR模型 时间序列曲线预测 SVM的工作 ...

  6. 【机器学习】支持向量机(SVM)代码练习

    本课程是中国大学慕课<机器学习>的"支持向量机"章节的课后代码. 课程地址: https://www.icourse163.org/course/WZU-1464096 ...

  7. [机器学习-实践]支持向量机(SVM)从例子代码中学习

    [机器学习-原理篇]支持向量机(SVM)深入理解 1.用SVM的linear做鸢尾花分类 利用sklearn中自带的dataset,鸢尾花数据库为例,进行二分类. #载入鸢尾花数据集,datasets ...

  8. 机器学习:支持向量机SVM和人工神经网络ANN的比较

    在统计学习理论中发展起来的支持向量机(Support Vector Machines, SVM)方法是一种新的通用学习方法,表现出理论和实践上的优势.SVM在非线性分类.函数逼近.模式识别等应用中有非 ...

  9. 入门机器学习(十三)--支持向量机(SVM)

    1. 优化目标(Optimization Objective) 目前来说,我们已经学过了单变量与多变量的线性回归,逻辑回归以及神经网络等机器学习算法,他们在各自的领域都发挥着巨大的作用.但是还有一个算 ...

  10. 吴恩达机器学习7——支持向量机SVM

    吴恩达机器学习7 一.SVM直观理解 1. SVM引入逻辑回归 2. 大边界分类器SVM 3. SVM原理 二.核函数 1. 核函数原理和概念 2. SVM和核函数结合的计算步骤 三.使用SVM 一. ...

最新文章

  1. 软件开发环境-环境信息库
  2. 《剑指offer》第十八题(在O(1)时间删除链表结点)
  3. matlab练习程序(点云表面法向量)
  4. 我发现有的人就活该他赚钱,他们的脑子就是个聚宝盆
  5. LeetCode刷题目录
  6. Leetcode 刷题笔记(三十) ——动态规划篇之子序列问题:回文
  7. [HDOJ5734]Acperience(数学,公式推导)
  8. WIFI 信道 channel
  9. java无损压缩图片
  10. 几个不常见但非常出色的 .NET 开源库
  11. java生成短连接(调用新浪微博api生成)
  12. 仿“当当网”首页-Flash图片轮换
  13. java定义全局变量_java全局变量
  14. 感恩节,感谢大家的一路相伴
  15. 比特大陆裁员潮据称已波及整个BCH开发团队
  16. leetcode-954. 二倍数对数组
  17. Win10启动文件夹在哪里,Win10怎么添加开机启动项?
  18. iOS8.1 APP图片模糊变形解决
  19. ceph bluestore中的磁盘空间管理
  20. 企业微信朋友圈和个人微信朋友圈有哪些区别?

热门文章

  1. Angular JS(二) 指令部分
  2. 关于简历和面试【整理自知乎】
  3. 后台弹框。刷新不提示确认VB或.NET
  4. B/S应用中的ActiveX数字签名相关问题杂谈
  5. 跟我一起学jQuery——第一集
  6. SELinux系列(十七)—awk命令使用详解
  7. easyui combobox下拉框 的取value text的API
  8. 大厂HR:“不会数据分析,你还想干运营?”
  9. 有了数据湖,距离数据仓库消失还有几年?
  10. 互联网人必看的中台理论,阿里腾讯架构师用大白话讲出来了