5.1 SVM分类算法步骤
输入:m 个样本( x 1,Y1 ) , ( x 2, Y2 ) , . . . , (Xm,Ym ) ,其中x 为n 维向量,y ∈ { − 1 , 1 }
输出:分离超平面(由w ∗ 和 b ∗ 决 定 w^{*}和b^{*}决定w ∗和b ∗决定)
Step1:选择适当的核函数K ( , )和一个惩罚系数C > 0 , 构造约束优化问题
Step2:用SMO算法求出上式最小时对应的α 向量的值α ∗ 向量
Step3:计算
Step4: 找出所有的S 个支持向量,即满足0 < α s < C 对应的样本( x s , y s ) ,通过,计算出每个支持向量( x s , y s )对应的,对其求平均值得到
5.2 一分类SVM(1-SVM)/多分类SVM
5.2.1 1-SVM
用于异常检测,通过超球提实现一分类:找到一个以α 为中心,以R 为半径的包含样本本的最小超球。
5.2.2 多分类SVM
直接法:直接修改目标函数,将多个分类面的参数求解合并到一个最优化问题中,通过求解该最优化问题“一次性”实现多类分类。简单但是计算复杂度较高,只适合小型问题。
间接法:主要通过组合多个二分类器来实现多分类器的构造,如:一对多(one-against-all)和一对一(one-against-one)方法。
(1)一对多法
训练时依次把某个类别的样本归为一类,其它样本归为另一类,这样k 个类别的样本构造了k 个SVM,分类时将未知样本分类为具有最大分类函数值的那类。
优点:训练k 个分类器,个数较少,分类速度相对较快
缺点:
训练速度会随训练样本数量的增加而急剧减慢
样本不对称:负类样本的数据要远远大于正类样本的数据(可通过引入不同的惩罚因子解决,对样本点较少的正类采用较大的惩罚因子C )
新的类别加入,需要对所有的模型重新训练
(2) 一对一法
在任意两类样本之间设计一个SVM,因此k kk个类别的样本需要设计k ( k − 1 ) /2个SVM,当对一个未知样本进行分类时,得票最多的类即为该样本的类别。当类别很多时,模型个数也很多,计算代价大。
5.3 SVM优缺点
(1)优点
- 解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。
- 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。
- 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。
- 样本量不是海量数据的时候,分类准确率高,泛化能力强。
(2)缺点
- 在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。
- 非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。
- 特征维度远远大于样本数时,表现一般。
- 对缺失数据、噪声敏感。