1. 简单介绍SVM(详细原理)
(回答的思路:从分类平面,到求两类间的最大间隔,到转化为求间隔分之一,等优化问题,然后就是优化问题的解决办法,首先是用拉格拉日乘子把约束优化转化为无约束优化,对各个变量求导令其为零,得到的式子带入拉格朗日式子从而转化为对偶问题, 最后再利用SMO(序列最小优化)来解决这个对偶问题。svm里面的c有啥用)
个人理解:SVM又叫最大间隔分类器,最早用来解决二分类问题。SVM有三宝,间隔, 对偶 ,核技巧。****
1.1间隔:
1.1.1 hard-margin svm (数据完全线性可分)
1.1.2 soft-margin svm(数据近似线性可分)
个人理解为 hard-margin svm + loss
loss 损失函数有 :
0-1 损失函数 (函数不连续可导)
合页损失函数 (max( 0, 1 - yi * ( wx + b )))**
**其中 c为惩罚系数,调节优化方向中两个指标(间隔大小,分类准确度)偏好的权重. C值越大,分类器就越不愿意允许分类错误(“离群点”)。如果C值太大,分类器就会竭尽全力地在训练数据上少犯错误,而实际上这是不可能/没有意义的,于是就造成过拟合。而C值过小时,分类器就会过于“不在乎”分类错误,于是分类性能就会较差。
1.1.3 kernel svm (数据线性不可分)
1.2.对偶:
原来的问题是一个凸优化问题 , 看到凸优化问题一般会想到, 利用拉格朗日乘子法, 将有约束的问题转换为无约束的问题, 在将无约束的原问题转化为对偶问题(注意这里面的KKT条件), 进而利用SMO(序列最小优化)来解决这个对偶问题。
1. 3. 核技巧
核函数的思想在于它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就是避免了直接在高维空间的复杂计算。核技巧有助于解决非线性SVM的问题。
1.3.1 常见的核函数有
线性核(Linear核)
多项式核 (Polynomial核)
高斯核(RBF核 / 径向基核
1.3.2 核函数的选取方法
如果特征的