原理
SVM是去找一个超平面来划分样本,而如何去找到这个超平面,SVM基于几何间隔最大化原理,去寻找最大几何间隔的分类面为最优分类超平面。(一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度,SVM就是要最大化这个间隔值)我们可以发现,SVM划分超平面的选择只和支持向量有关!
硬间隔
软间隔
核函数
SVM的优缺点
优点:
理论完善,逻辑优美。
SVM 的最终决策函数**只由少数的支持向量所确定**,计算的复杂性取决于**支持向量的数目**,而不是样本空间的**维数**,这在某种意义上避免了“维数灾难”。
SVM 对异常值不敏感
少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本
SVM 目标是求解最大间隔超平面,算法分类具有较好的“鲁棒”性。
SVM可以利用核函数解决逻辑回归解决不了的高维分类问题。
缺点:
-
**SVM**算法对大规模训练样本难以实施
由于**SVM**是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。
-
用**SVM**解决多分类问题存在困难
经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组合来解决。主要有一对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器的组合来解决。主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度。如:与粗集理论结合,形成一种优势互补的多类问题的组合分类器。
LR和SVM的区别和联系
相同点:
都是有监督的分类算法
如果不考虑核函数,LR和SVM都是线性分类算法,其决策面都是线性的
LR和SVM都是判别式模型
不同点:
loss函数不一样,分类原理不同
svm是结构风险最小化,LR是经验风险最小化
SVM只考虑分界面附近的少数点,而LR则考虑所有点
在解决非线性问题时,SVM可采用核函数机制,而LR通常不采用核函数的方法。
SVM计算复杂,但效果比LR好,使用小数据集;LR计算简单,使用大数据集,可以在线训练。
如果特征较多,用LR和SVM?
最好采用SVM。因为SVM只和样本数量有关,和特征无关,不易过拟合,而特征较多,LR容易过拟合。
SVM和LR的应用场景
如果feature数量很大,和样本数量差不多,选用LR或者Linear Kernel的SVM
如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
为什么SVM对缺失数据敏感?
这里的缺失数据是指缺失某些特征数据,向量数据不完整。SVM没有处理缺失值的策略。而SVM希望在样本空间中线性可分,所以特征空间的好坏对SVM的性能很重要。缺失特征数据将影响训练结果的好坏。