那你讲一下SVM吧。
- SVM是一种二类分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。
- 当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;
- 当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;
- 当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
为什么SVM求解要求解他的对偶问题?
- 一是对偶问题往往更易求解(当我们寻找约束存在时的最优点的时候,约束的存在虽然减小了需要搜寻的范围,但是却使问题变得更加复杂。为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点。(降低原计算的复杂度)
- (接上)原问题的求解复杂度与特征的维数相关,而转成对偶问题后只与问题的变量个数有关。由于SVM的变量个数为支持向量的个数,相较于特征位数较少,因此转对偶问题。
- 二是自然引入核函数,进而推广到非线性分类问题。
核函数解决的根本问题是什么?(把低维空间中的线性不可分的点映射到高维空间使他线性可分)
- 当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
- 核函数定义:,即在特征空间的内积等于它们在原始样本空间中通过核函数K计算的结果。
- 除了 SVM 之外,任何将计算表示为数据点的内积的方法,都可以使用核方法进行非线性扩展。
- RBF核函数:
SVM有没有解决多分类问题,如何解决?
- 一、直接法:直接在目标函数上修改,将多个分类面的参数求解合并到一个最优化问题里面。看似简单但是计算量却非常的大。
- 二、一对多:就是对每个类都训练出一个分类器,由svm是二分类,所以将此而分类器的两类设定为目标类为一类,其余类为另外一类。这样针对k个类可以训练出k个分类器,当有一个新的样本来的时候,用这k个分类器来测试,那个分类器的概率高,那么这个样本就属于哪一类。这种方法效果不太好,bias比较高。
- 三、一对一:针对任意两个类训练出一个分类器,如果有k类,一共训练出C(2,k) 个分类器,这样当有一个新的样本要来的时候,用这C(2,k) 个分类器来测试,每当被判定属于某一类的时候,该类就加一,最后票数最多的类别被认定为该样本的类。
SVM与LR
- 1.样本点对于模型的作用不同. SVM中只有支持向量对模型有影响, 而LR中所有点都有影响.
- 2.损失函数不同. SVM采用的是合页损失函数, LR采用的是对率损失函数.
- 3.输出不同. LR输出的是对样本点是否属于给定分类的概率, SVM只能判断是否属于某一分类.
- 4.处理非线性问题的能力不同. SVM可以通过核函数灵活的将非线性问题转化为线性问题求解, 而LR需要手动进行特征转换.
硬间隔与软间隔
- 硬间隔:完全分类准确,其损失函数不存在;其损失值为0;只要找出两个异类正中间的那个平面;
- 软间隔:允许一定量的样本分类错误;优化函数包括两个部分,一部分是点到平面的间隔距离,一部分是误分类的损失个数;C是惩罚系数,误分类个数在优化函数中的权重值;权重值越大,误分类的损失惩罚的越厉害。误分类的损失函数可分为hinge损失,指数损失,对率损失。而经常使用的或者说默认的是使用了损失函数为hinge损失的软间隔函数。
hinge损失
-
梯度
SVM中什么时候用线性核什么时候用高斯核?
- 当数据的特征提取的较好,所包含的信息量足够大,很多问题是线性可分的那么可以采用线性核。
- 若特征数较少,样本数适中,对于时间不敏感,遇到的问题是线性不可分的时候可以使用高斯核来达到更好的效果。
拉格朗日对偶问题
SVM的硬间隔,软间隔表达式
-
硬间隔
-
软间隔
- 二者区别在于有无引入松弛变量。
SVM的物理意义是什么
- 构造一个最优化的超平面在空间中分割数据
如果给你一些数据集,你会如何分类(我是分情况答的,从数据的大小,特征,是否有缺失,分情况分别答的)
- 根据数据类型选择不同的模型,如Lr或者SVM,决策树。假如特征维数较多,可以选择SVM模型,如果样本数量较大可以选择LR模型,但是LR模型需要进行数据预处理;假如缺失值较多可以选择决策树。选定完模型后,相应的目标函数就确定了。
- 还可以在考虑正负样例比,通过上下集采样平衡正负样例比。
- 还可以考虑数据的预处理,如去除噪音数据
- 还可以考虑数据增强工作。
解析:需要了解多种分类模型的优缺点,以及如何构造分类模型的步骤