支持向量机的基本理念是找出一条线或一个超平面,进行二分类。
利用margin的概念,使得margin的值最大化,即max 2/||w||,然后这个公式被转换成 min 1/2*||w||^2。之后用拉格朗日因子代替进公式得到一个二次方式,在限制条件下进行求解。可以得到,基本情况下alpha值都是0,只有少数x值使得alpha不为0,就是这些值为support vectors。当然不是所有情况都是linearly separable,所以引进一个惩罚因子C,允许软间隔,允许一些输入值没有很好的分类。
之后引进了一个kernel的概念,利用kernel trick可以将低维的值升级为高维的,从而得到一个超平面可以很好的将其进行分类。典型的比如k(x,y)=phi(x)的转置*phi(y),当phi(x)=(x1^2,x2^2,2^(1/2)*x1*x2,k(x,y)=(x1*y1+x2*y2)^2=(x的转置*y)^2。 这种情况可以将一些二维不可分点升到三维空间,得到一个超平面进行分类。
作为svm是一个二分类模型,相对应会有svr作为regression的模型。这个模型有待研究。
网友评论