支持向量机知识点大纲(附提问)
什么是支持向量
svm中支持向量即划分超平面附近的样本向量,其能决定划分超平面
线性可分+硬间隔
图像示意+目标函数
目标函数:
(1)最大化超平面间隔(问题:为什么选择间隔最大化的超平面);
(2)所有样本分类正确;
近似线性可分+软间隔
硬间隔存在的问题:
样本集合线性不可分可能是由于噪声或者异常值导致,即使找到了核函数使得样本线性可分,也会导致过拟合问题;
解决方案:
(1)最大化朝平面间隔;
(2)尽可能样本分类正确(需要衡量预测值偏离实际值程度(损失函数/松弛变量),以及罚分);
损失函数(松弛变量)vs 代价(成本)函数 vs目标函数
损失函数:针对单个样本而言,衡量预测值偏离实际值程度
代价(成本)函数:所有样本损失函数均值
目标函数:成本函数 + 正则化项
软间隔目标函数以及常见损失函数
- 0-1损失(大家都不爱它,非凸,不连续,不可导,数学性质不好)
- hinge损失(SVM最常用)
- 指数损失(AdaBoost用)
- 对数损失(逻辑回归用)
线性不可分解决方案
核函数
核函数实质:构造相应的高维特征,将低维度数据投射到更高维空间,便于构造超平面
常见核函数
- 线性核
- 多项式核
- 高斯核
- 拉普拉斯核
支持向量优缺点,应用场景
优点
(1)大多数样本集上表现优秀;
(2)能有效处理高维数据 (提问:为什么?);
(3)可以克服logistic回归在非线性可分数据效果局限性;
(4)不受一类样本影响,只受支持向量影响;
缺点
(1)涉及到距离计算,运行消耗大量内存和时间,不适宜大数据集;
(2)难以选择合适的核函数,一般靠经验;
(3)参数调节较多;
(4)对缺失值,异常值敏感;问题:为什么svm对异常值,缺失值敏感?(支持向量作用大)
(5)数据处理要求规范化;
应用场景
(1)样本聚集在决策边界附近;
(2)“文本识别”,“人脸识别”
(3)小样本,高维,非线性数据集
调参
通用参数:正则化参数C越大 罚分越高 间隔越窄 越容易过拟合
核函数kernal:linear,poly,rbf,sigmoid,precomputed
poly(多项式核):degree多项式阶数, 越高越容易过拟合
rbf(高斯核): gamma 同C,超平面弯曲度,gamma越大,越弯曲,越过拟合
如何处理多分类问题
1 vs 1 :SVM采用 1v1+投票
1 vs all