机器学习之支持向量机(SVM)小结
1. 分类
支持向量机包含三种:
- 线性可分支持向量机:当训练数据线性可分时,可通过硬间隔最大化,学习一个线性的分类器,叫线性可分支持向量机,也称硬间隔支持向量机
- 线性支持向量机:当训练数据近似线性可分时,可通过软间隔最大化,也学习一个线性的分类器,叫线性支持向量机,也称为软间隔支持向量机
- 非线性支持向量机:当训练数据线性不可分时,通过使用核函数技巧及软间隔最大化,学习一个非线性的支持向量机
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核
选取规则:
- 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
- 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
- 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
2.SVM和LR的对比
参考:https://blog.csdn.net/qq_35945399/article/details/81175772
相同点:
- 都是有监督的分类算法
- 不考虑核函数,均为线性分类
- 都是判别式模型
不同点:
- Loss不同:
- LR是基于极大似然估计,sigmoid+对数似然
- SVM是基于集合间隔最大化,合页函数
- SVM是结构风险最小化,LR是经验风险最小化
- svm的损失函数自带w正则项,是在训练误差和模型复杂度之间找平衡,可以防止过拟合
- lr需要额外增加正则项
- SVM只考虑个别点,而LR考虑所有点(若lr的不同类别数不平衡,需要先对数据做处理)
- SVM不能产生概率,lr能产生概率
- svm可以用核函数,LR一般不用
- svm计算复杂,但是效果好,适合小数据集;LR计算简单,适合大数据
机器学习之支持向量机(SVM)小结相关推荐
- 机器学习实战 支持向量机SVM 代码解析
机器学习实战 支持向量机SVM 代码解析 <机器学习实战>用代码实现了算法,理解源代码更有助于我们掌握算法,但是比较适合有一定基础的小伙伴.svm这章代码看起来风轻云淡,实则对于新手来说有 ...
- 机器学习之支持向量机SVM之python实现ROC曲线绘制(二分类和多分类)
目录 一.ROC曲线 二.TP.FP.TN.FN 三. python绘制ROC曲线(二分类) 1.思路 2.关键代码 3.完整代码 四. python绘制ROC曲线(多分类) 五.参考文献 一.ROC ...
- 优达学城机器学习之--支持向量机(SVM)
前言 SVM是支持向量机的简称(Support Vector Machine) 文章目录如下: 简述 选择分隔线 核函数(kernel)及其参数c, gamma 过拟合 over-fitting SV ...
- OpenCV之ml 模块. 机器学习:支持向量机(SVM)介绍 支持向量机对线性不可分数据的处理
支持向量机(SVM)介绍 目标 本文档尝试解答如下问题: 如何使用OpenCV函数 CvSVM::train 训练一个SVM分类器, 以及用 CvSVM::predict 测试训练结果. 什么是支持向 ...
- 机器学习:支持向量机SVM的SVC和SVR
支持向量机SVM SVM的工作原理及分类 支持向量机的原理 线性可分的SVM 非线性可分的支持向量机 支持向量机分类SVC 支持向量机回归SVR SVR原理 SVR模型 时间序列曲线预测 SVM的工作 ...
- 【机器学习】支持向量机(SVM)代码练习
本课程是中国大学慕课<机器学习>的"支持向量机"章节的课后代码. 课程地址: https://www.icourse163.org/course/WZU-1464096 ...
- [机器学习-实践]支持向量机(SVM)从例子代码中学习
[机器学习-原理篇]支持向量机(SVM)深入理解 1.用SVM的linear做鸢尾花分类 利用sklearn中自带的dataset,鸢尾花数据库为例,进行二分类. #载入鸢尾花数据集,datasets ...
- 机器学习:支持向量机SVM和人工神经网络ANN的比较
在统计学习理论中发展起来的支持向量机(Support Vector Machines, SVM)方法是一种新的通用学习方法,表现出理论和实践上的优势.SVM在非线性分类.函数逼近.模式识别等应用中有非 ...
- 入门机器学习(十三)--支持向量机(SVM)
1. 优化目标(Optimization Objective) 目前来说,我们已经学过了单变量与多变量的线性回归,逻辑回归以及神经网络等机器学习算法,他们在各自的领域都发挥着巨大的作用.但是还有一个算 ...
- 吴恩达机器学习7——支持向量机SVM
吴恩达机器学习7 一.SVM直观理解 1. SVM引入逻辑回归 2. 大边界分类器SVM 3. SVM原理 二.核函数 1. 核函数原理和概念 2. SVM和核函数结合的计算步骤 三.使用SVM 一. ...
最新文章
- 软件开发环境-环境信息库
- 《剑指offer》第十八题(在O(1)时间删除链表结点)
- matlab练习程序(点云表面法向量)
- 我发现有的人就活该他赚钱,他们的脑子就是个聚宝盆
- LeetCode刷题目录
- Leetcode 刷题笔记(三十) ——动态规划篇之子序列问题:回文
- [HDOJ5734]Acperience(数学,公式推导)
- WIFI 信道 channel
- java无损压缩图片
- 几个不常见但非常出色的 .NET 开源库
- java生成短连接(调用新浪微博api生成)
- 仿“当当网”首页-Flash图片轮换
- java定义全局变量_java全局变量
- 感恩节,感谢大家的一路相伴
- 比特大陆裁员潮据称已波及整个BCH开发团队
- leetcode-954. 二倍数对数组
- Win10启动文件夹在哪里,Win10怎么添加开机启动项?
- iOS8.1 APP图片模糊变形解决
- ceph bluestore中的磁盘空间管理
- 企业微信朋友圈和个人微信朋友圈有哪些区别?