SVM知识点总结
SVM的原理是什么?
SVM是一种二类分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。(间隔最大是它有别于感知机)
- 当训练样本线性可分时,通过**硬间隔[2]**最大化,学习一个线性分类器,即线性可分支持向量机;
- 当训练数据近似线性可分时,引入松弛变量,通过**软间隔[3]**最大化,学习一个线性分类器,即线性支持向量机;
- 当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
SVM为什么采用间隔最大化?
当训练数据线性可分时,存在无穷个分离超平面可以将两类数据正确分开,支持向量机利用间隔最大化求得分离超平面,它的分类结果是最鲁棒的,对未知实例的泛化能力也最强。
为什么要将求解SVM的原始问题转换为其对偶问题?
- 带约束的原问题求解比较困难,变成对偶问题可以把约束条件和待优化的目标融合在一个表达式里面
- 拉格朗日对偶问题一般是凹函数(求最大值),即使原问题是非凸的,变成对偶问题更容易优化求解
- 自然引入核函数,进而推广到非线性分类问题。
为什么对偶问题更加高效
因为对偶问题只用求解alpha系数,而alpha系数中0占绝大部分,只有支持向量非零,其他全部为零
alpha系数有多少
样本点的个数
为什么SVM要引入核函数?
当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
引入映射后的对偶问题:
在学习预测中,只定义核函数K(x,y),而不是显式的定义映射函数。因为特征空间维数可能很高,甚至可能是无穷维,因此直接计算映射函数是比较困难的。相反,直接计算核函数)比较容易(即直接在原来的低维空间中进行计算,而不需要显式地写出映射后的结果)。
核函数的定义:K(x,y)=<ϕ(x),ϕ(y)>,即特征空间的内积等于它们在原始样本空间中通过核函数K计算的结果。
为什么SVM对缺失数据敏感?
这里说的缺失数据是指缺失某些特征数据,向量数据不完整。SVM没有处理缺失值的策略(决策树有)。而SVM希望样本在**特征空间[1]**中线性可分,所以特征空间的好坏对SVM的性能很重要。缺失特征数据将影响训练结果的好坏。
SVM的泛化误差代表什么?
SVM对新数据的预测准确度。
SVM的惩罚因子C
C是一个由用户指定的系数,表示对分错的点加入惩罚的程度,当C很大的时候,分错的点就会很少,但是过拟合的情况可能比较严重,但是当C很小的时候,分错的点可能会很多,此时的模型也会不太准确。大部分情况C的选择是通过经验尝试得到的。
C同时也代表了分类准确性和模型复杂度之间的权衡。
当数据存在很多误差,同时设置C为无穷大时,数据仍可正确分类,不过会存在过拟合问题。
过拟合方差过大偏差过小
四分类问题,你要用One-vs-all策略训练一个SVM的模型,需要训练积分SVM模型
4个,需要为每一个类建立一个唯一的分器
但是如果时二分类问题,则只需要训练一个SVM模型
SVM算法的最小时间复杂度是多少?
O(n2),所以SVM不适合大数据集
SVM算法的性能取决于
- 核函数的选择
- 核函数的参数
- 软间隔参数C
核函数:
将低维空间映射到高维空间
他是一个相似度函数
[1]特征空间
从特征提取中发现从原始数据中提取特征是将原始数据映射到一个更高维的空间,特征空间中的特征是从原始数据更高维的抽象。特征工程主要需要解决的问题是对具体的问题构建出适合表示该问题的特征。
映射到高维
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mzImEKez-1597657945839)(C:\Users\kingdom\AppData\Roaming\Typora\typora-user-images\image-20200815150410712.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KR6SrvS7-1597657945841)(C:\Users\kingdom\AppData\Roaming\Typora\typora-user-images\image-20200815150422934.png)]
[2]硬间隔
硬间隔只允许出现极小的误差,这通常会引起过拟合
硬间隔svm模型的建立是基于数据为“线性可分”的,约束条件可以保证两类样本分别位于两条绿色虚线的两侧,所有样本点都被正确的分类。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lEA76GqO-1597657945844)(C:\Users\kingdom\AppData\Roaming\Typora\typora-user-images\image-20200815160713016.png)]
[3]软间隔
决策平面是绿色实线,约束条件为蓝色虚线,且红色样本点在红色箭头一侧即可,紫色样本点在紫色箭头一侧即可。
同时引入松弛变量,即偏离绿色虚线的函数距离(绿色虚线到决策平面的距离为1),松弛两越大表示样本点可以偏离绿色虚线的距离越远,如果松弛变量大于1,表示样本可以越过决策平面,即允许该样本热闹点被分错。
在红色箭头一侧即可,紫色样本点在紫色箭头一侧即可。
同时引入松弛变量,即偏离绿色虚线的函数距离(绿色虚线到决策平面的距离为1),松弛两越大表示样本点可以偏离绿色虚线的距离越远,如果松弛变量大于1,表示样本可以越过决策平面,即允许该样本热闹点被分错。
C惩罚因子表示在目标函数中松弛变量的权重,C和惩罚因子成反比。