1.SVM 的原理是什么?
是一种二类分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。(间隔最
大是它有别于感知机)
()当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;
()当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;
()当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
注:以上各 的数学推导应该熟悉:硬间隔最大化(几何间隔)学习的对偶问题软间隔最大化(引入松弛
变量)非线性支持向量机(核技巧)。
2.SVM 为什么采用间隔最大化?
当训练数据线性可分时,存在无穷个分离超平面可以将两类数据正确分开。利用间隔最大化求得最优分离超平面 ,
这时,解是唯一的。另一方面,此时的分隔超平面所产生的分类结果对未知实例的泛化能力最强。
3.为什么要将求解 SVM 的原始问题转换为其对偶问题?
一、是对偶问题往往更易求解(当我们寻找约束存在时的最优点的时候,约束的存在虽然减小了需要搜寻的范围,
但是却使问题变得更加复杂。为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数 ,
即拉格朗日函数,再通过这个函数来寻找最优点。)
目前处理的模型严重依赖于数据集的维度 ,如果维度 太高就会严重提升运算时间;
对偶问题把 从依赖 个维度转变到依赖 个数据点,最后计算时只有支持向量有意义,所以计算量比
小很多。
二、自然引入核函数,进而推广到非线性分类问题。
4.为什么 SVM 要引入核函数?
当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间
内线性可分。引入映射后的对偶问题:
在学习预测中,只定义核函数 ,而不是显式的定义映射函数 。因为特征空间维数可能很高,甚至可能是无
穷维,因此直接计算 是比较困难的。相反,直接计算 比较容易(即直接在原来的低维空间中进行计
算,而不需要显式地写出映射后的结果)。
核函数的定义:,即在特征空间的内积等于它们在原始样本空间中通过核函数 计算的结果。
除了 之外,任何将计算表示为数据点的内积的方法,都可以使用核方法进行非线性扩展。
5.svm RBF 核函数的具体公式?
径向基函数则是局部性强的核函数,其外推能力随着参数 的增大而减弱。
这个核会将原始空间映射为无穷维空间。不过,如果 选得很大的话,高次特征上的权重实际上衰减得非常快,
所以实际上相当于一个低维的子空间;反过来,如果 选得很小,则可以将任意的数据映射为线性可分——当然
这并不一定是好事,因为随之而来的可能是非常严重的过拟合问题。不过,总的来说,通过调控参数 ,高斯核
实际上具有相当高的灵活性,也是使用最广泛的核函数之一。
6.为什么 SVM 对缺失数据敏感?
这里说的缺失数据是指缺失某些特征数据,向量数据不完整。 没有处理缺失值的策略(决策树有)。而
希望样本在特征空间中线性可分,所以特征空间的好坏对 的性能很重要。缺失特征数据将影响训练结果的好
坏。
7.SVM 是用的是哪个库?Sklearn/libsvm 中的 SVM 都有什么参数可以调节?
用的是 实现的。采用 !"#!$ 设置的参数。本身这个函数也是基于 %"# 实现的(&'%"# 中的二
次规划问题的解决算法是 ()。
$ 函数的训练时间是随训练样本平方级增长,所以不适合超过 )))) 的样本。
对于多分类问题,$ 采用的是 * "* 投票机制,需要两两类别建立分类器,训练时间可能比较长。