数据挖掘面试题之SVM(粗略的笔记)
SVM引入
SVM是SupportVectorMachine的简称,它的中文名为支持向量机,属于一种有监督的机器
学习算法,可用于离散因变量的分类和连续因变量的预测。通常情况下,该算法相对于其他单
一的分类算法(如Logistic回归、决策树、朴素贝叶斯、KNN等)会有更好的预测准确率,主要是
因为它可以将低维线性不可分的空间转换为高维的线性可分空间。由于该算法具有较高的预
测准确率,所以其备受企业界的欢迎,如利用该算法实现医疗诊断、图像识别、文本分类、市
场营销等。
该算法的思想就是利用某些支持向量所构成的“超平面”,将不同类别的样本点进行划
分。不管样本点是线性可分的、近似线性可分的还是非线性可分的,都可以利用“超平面”将样
本点以较高的准确度切割开来。需要注意的是,如果样本点为非线性可分,就要借助于核函数
技术,实现样本在核空间下完成线性可分的操作。关键是“超平面”该如何构造,这在本章的内
容中会有所介绍。
运用SVM模型对因变量进行分类或预测时具有几个显著的优点:例如,由于SVM模型最
终所形成的分类器仅依赖于一些支持向量,这就导致模型具有很好的鲁棒性(增加或删除非支
持向量的样本点,并不会改变分类器的效果)以及避免“维度灾难”的发生(模型并不会随数据
维度的提升而提高计算的复杂度);模型具有很好的泛化能力,一定程度上可以避免模型的过
拟合;也可以避免模型在运算过程中出现的局部最优。当然,该算法的缺点也是明显的,例如
模型不适合大样本的分类或预测,因为它会消耗大量的计算资源和时间;模型对缺失样本非常
敏感,这就需要建模前清洗好每一个观测样本;虽然可以通过核函数解决非线性可分问题,但
是模型对核函数的选择也同样很敏感;SVM为黑盒模型(相比于回归或决策树等算法),对计
算得到的结果无法解释。
支持向量的概念:
训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量,支持向量是使约束条件使wxi+b=+-1的点。
函数间隔
几何间隔:
将函数间隔做单位化处理后,得到的γi值其实就是点xi到分割面w'x+b=0的距
离,所以γi被称为几何间隔。
svm原理
求解能够正确划分训练数据集并且几何间隔最大的分离超平面。
1、对于线性可分数据时,通过硬间隔最大化,学习一个线性的分类器;
目标函数:
2、对于近似线性可分数据时,通过软间隔最大化,学习一个线性的分类器,通过加松弛因子;
3、对于线性不可分数据时,通过核技巧使软间隔最大化,学习一个非线性的分类器。
优缺点
优点:
- 由于SVM模型最终所形成的分类器仅依赖于一些支持向量,这就导致模型具有很好的鲁棒性(增加或删除非支持向量的样本点,并不会改变分类器的效果);
- 避免“维度灾难”的发生(模型并不会随数据维度的提升而提高计算的复杂度);
- 模型具有很好的泛化能力,一定程度上可以避免模型的过拟合;
- 也可以避免模型在运算过程中出现的局部最优。
缺点:
- 计算成本高,计算速度慢,内存消耗大,
- 模型过程及结果难以解释,
- 对缺失数据敏感