关于SVM的一些知识点
SVM支持向量机
定义:支持向量机是主要用于解决分类问题的学习模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。
分类
1-当训练样本线性可分,通过硬间隔最大化,学习一个线性分类器,叫线性可分支持向量机
2-当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,叫线性支持向量机
3-当训练数据线性不可分的时候,通过使用核技巧以及软间隔最大化,学习非线性支持向量机
SVM算法的主要优点有:
1) 解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。
2) 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。
3) 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。
4) 样本量不是海量数据的时候,分类准确率高,泛化能力强。
SVM算法的主要缺点有:
1) 如果特征维度远远大于样本数,则SVM表现一般。
2) SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。
3) 非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。
4) SVM对缺失数据敏感。
SVM核函数的意义
SVM通过核函数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面,从而把平面上本身无法线性可分的数据分开。核函数的真正意义在于没有真正映射到高维空间却达到了映射的作用,减少了大量的映射计算。
如何选择以及核函数的种类
1-如果特征的数量大到和样本数量差不多,则使用线性核函数SVM或者LR(逻辑回归)
2-如果特征的数量小,样本的数量正常,则使用高斯核函数SVM
3-如果特征的数量小,样本数量很多,由于求解最优化问题的时候,目标函数涉及两两样本计算内积,使用高斯核明显计算会大于线性核,所以手动添加一些特征,使得线性可分,然后可以用LR或者线性核的SVM
4-利用交叉验证,试用不同的核函数,误差最小的就是效果最好的核函数
5-混合核函数方法,将不同的核函数结合起来
为什么要将求解SVM的原始问题转换为对偶问题
对偶问题可以给出原始问题的一个下界,当满足一定条件时,原始问题和对偶问题的解是等价的,并且它还可以自然地引入核函数
SVM为什么采用间隔最大化
当训练数据线性可分的时候,存在无穷个分离超平面可以将两类数据正确分开。感知机或者神经网络等利用误分类最小策略,求得分离超平面,不过此时的解有无穷多个。线性可分支持向量机利用间隔最大化求得最优分离超平面,此时的解释唯一的。另一方面,此时的分隔超平面所产生的的分类结果是最鲁棒的,对未知实例的泛化能力最强。
为什么SVM对噪声以及缺失值敏感
当噪声出现的过多的话,或者当噪声出现并成为支持向量的时候,噪声对模型影响是巨大的
这里的缺失值是指缺失某些特征数据,向量数据不完整。因为SVM不像决策树一样有处理缺失值的策略,所以如果存在缺失值,这些数据在该特征维度很难正确的分类,将影响到训练结果的好坏。
SVM中样本偏斜的处理方法
样本偏斜是指数据集中真负类样本数量不均,例如正类样本有10000个,负类样本只有100个,这样的话就会使超平面被推向负类,因为负类数量少,分布的不够广,这样会影响结果的准确性。
解决方法:我们可以对正类的样本使用惩罚因子C+,负类样本用另一个C-,这个比例的确定一个好的方法时衡量他们分布的情况,具体的做法是给负类找一个高维空间中的超球体,它包含了所有负类的样本,再给正类找一个,比较一下两个球的半径,半径大的分布广,惩罚因子小。
实际中根据需要选择简单的就行,例如libSVM就可以直接使用样本的数量比。比如上面举例中就可以定义 c+ :c-=1 : 100
关于SVM的一些知识点的更多相关文章
- SVM知识点
SVM(Support Vector Machine),支持向量机,有监督学习模型,一种分类模型.在特征空间(输入空间为欧式空间或离散集合,特征空间为欧式空间或希尔伯特空间)中寻找间隔最大化的分离超平 ...
- SVM面试知识点总结
1. SVM 原理 SVM 是一种二类分类模型.它的基本思想是在特征空间中寻找间隔最大的分离超平面使数据得到高效的二分类,具体来讲,有三种情况(不加核函数的话就是个线性模型,加了之后才会升级为一个非线 ...
- EasyPR--开发详解(6)SVM开发详解
在前面的几篇文章中,我们介绍了EasyPR中车牌定位模块的相关内容.本文开始分析车牌定位模块后续步骤的车牌判断模块.车牌判断模块是EasyPR中的基于机器学习模型的一个模块,这个模型就是作者前文中从机 ...
- Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx
Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx 分类 图像处理知识点体系 v2 qb24.xlsx 分类 分类 理论知识 图像金字塔 常用底层操作 卷积扫描 ...
- 支持向量机(SVM)基础
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...
- SVM入门
前言: 又有很长的一段时间没有更新博客了,距离上次更新已经有两个月的时间了.其中一个很大的原因是,不知道写什么好-_-,最近一段时间看了看关于SVM(Support Vector Machine)的文 ...
- 常用的机器学习&数据挖掘知识点【转】
转自: [基础]常用的机器学习&数据挖掘知识点 Basis(基础): MSE(Mean Square Error 均方误差),LMS(LeastMean Square 最小均方),LSM(Le ...
- 支持向量机(SVM)利用网格搜索和交叉验证进行参数选择
上一回有个读者问我:回归模型与分类模型的区别在哪?有什么不同,我在这里给他回答一下 : : : : 回归问题通常是用来预测一个值,如预测房价.未来的天气情况等等,例如一个产品的实际价格为500元,通过 ...
- 机器学习中的算法(2)-支持向量机(SVM)基础
版权声明:本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gma ...
随机推荐
- ACM-ICPC 2018 沈阳赛区现场赛 K. Let the Flames Begin (约瑟夫环问题)
题目链接: 题意:有 n 个人围成一个圈,从 1 开始报到第 k 个人出环,问第 m 个出环的人是谁,n.m.k <= 1e18 且 min(m,k)<= 2e6. 题解:容易得出O(m) ...
- Qt 把连续两次单击当成双击
方法1: 主要通过计时器,在一段时间内的连续两次单击,触发双击事件 void init() { m_nClickCount = 0; m_timer = new QTimer(this); conne ...
- 彻底搞懂prototype和__proto__
prototype是函数特有的属性,是Function的静态属性:__proto__是对象特有的属性. 因为函数本身是一种对象,所以函数既有prototype属性也有__proto__属性. 当函数使 ...
- vii
#!/bin/bash ] then vi exit fi ] then echo "参数太多了!" exit fi ] # 文件已存在,一律直接打开不作任何处理 then exi ...
- Linux 修改文件夹的用户组权限
将ubsadm文件夹所属用户修改为userschown -R ubsadm:users /home/ubsadm 此命令将用户123的用户组改为rootusermod -g 123 root
- Ubuntu 14.04 64bit中永久添加DNS的方法
第一种方法修改如下文件,默认是空的sudo vim /etc/resolvconf/resolv.conf.d/base在里面加入你想添加的DNS服务器,一行一个nameserver 114.114. ...
- 线上bug或故障界定及填写规范
[线上故障与线上Bug界定] 一.线上故障: 1. 故障参照公司规范稍做调整: a) 1级故障:资讯首页或主App首页无法打开:多条业务线同时不可用:超过15分钟: b) ...
- 重读APUE(12)-SIGCHLD与僵尸进程
SIGCHLD信号是当子进程终止时向父进程发送的信号:它的语义如下: 如果进程明确的将该信号设置为SIG_IGN,则调用进程不会产生僵尸进程:这种情况下,wait是等不到给子进程收尸的,所以wait阻 ...
- Linux设备驱动程序 之 中断和锁
中断和锁 1. 硬中断和软中断(包括tasklet和timer)共享数据,硬中断中使用spin_lock/spin_unlock,软中断中使用spin_lock_irq/spin_unlock_irq ...
- 《你不知道的JavaScript(上)》笔记——函数作用域和块作用域
关于函数声明:如果 function 是声明中的第一个词, 那么就是一个函数声明, 否则就是一个函数表达式.例如匿名函数这种形式,函数会被当作函数表达式而不是一个标准的函数声明来处理. (functi ...