SVM 支持向量机

    xiaoxiao2026-06-18  6

    svm,support vector machine,可用于模式分类和非线性回归。 支持向量机的主要思想是建立一个分类超平面作为决策曲面,使得正例和反例之间的隔离边缘被最大化。支持向量机的理论基础是统计学习理论,更精确的说,支持向量机是结构风险最小化的近似实现。这个原理基于这样的事实:学习机器在测试数据上的误差率(即泛化误差率)以训练误差率和一个依赖于VC维数(Vapnik-Chervonenkis dimension)的项的和为界,在可分模式情况下,支持向量机对于前一项的值为零,并且使第二项最小化。因此,尽管它不利用问题的领域内部问题,但在模式分类问题上支持向量机能提供好的泛化性能,这个属性是支持向量机特有的。

    VC维

    二分类问题中,n个数据点的数据集共有2n种排列可能,若对于其中的任意一个排列,假设空间H总能够将两类数据点分开,那么就说vc(H)=n。比如二维空间中,假设空间H是直线,它的vc维就是3。 vc维是对假设H(hypothesis)的解决问题的能力的度量。

    结构风险最小

    这个与问题真实解之间的误差,就叫做风险(更严格的说,误差的累积叫做风险)。真实风险应该由两部分内容刻画,一是经验风险,代表了分类器在给定样本上的误差;二是置信风险,代表了我们在多大程度上可以信任分类器在未知文本上分类的结果。很显然,第二部分是没有办法精确计算的,因此只能给出一个估计的区间,也使得整个误差只能计算上界,而无法计算准确的值(所以叫做泛化误差界,而不叫泛化误差)。

    超平面,Hyper Plane

    一般地,如果一个线性函数能够将样本完全正确的分开,就称这些数据是线性可分的,否则称为非线性可分的。 什么叫线性函数呢?在一维空间里就是一个点,在二维空间里就是一条直线,三维空间里就是一个平面,可以如此想象下去,如果不关注空间的维数,这种线性函数还有一个统一的名称——超平面(Hyper Plane)!

    公式推导(未完成)

    也可参考 http://blog.sina.com.cn/s/blog_4298002e010144k8.html C-SVC模型是比较常见的二分类支持向量机模型,其具体形式如下: 1)设已知训练集: T={x⃗ ,d} 其中x⃗ iX=Rn,y⃗ iY={1,1},(i=1,...,n);x⃗ i 2)构造并求解问题: 找到权重矩阵(列向量)w⃗ 和偏置b,使得w⃗ Tx⃗ +b=0,也即di(w⃗ Tx⃗ i)0。那么数据点离超平面的距离为distance=di(w⃗ Tx⃗ i+b)||w⃗ ||。为了提高泛化性能,令分类平面的边缘至少大于某个ρ。我们希望最大化ρ,同时缩放w,我们可以得到无限多个解。为了得到唯一解,我们固定ρ||w⃗ ||=1,至此,要求解的任务可以定义为 min12||w⃗ ||2di(w⃗ Tx⃗ i+b)1,i ( 13.3) 这是一个标准的二次优化问题。对于不等式约束的条件极值问题,可以用拉格朗日方法求解。而拉格朗日方程的构造规则是:用约束方程乘以非负的拉格朗日系数,然后再从目标函数中减去。于是得到拉格朗日方程如下: Lp=12||w⃗ ||2Nt=1αt[di(w⃗ Tx⃗ i+b)1] (13.4) 这里应当关于w,b最小化,并关于αt0最大化。鞍点给出解。 这是一个凸二次优化问题,直接解有困难,可以通过拉格朗日对偶问题来解决,为此我们把(13.4)式做一个等价变换:

    结束。(latex写的好累 啊)

    相关资源:java实现SVM支持向量机算法
    最新回复(0)