其中v∈SV,K(xi,xj) 是核函数,等于特征空间样本的内积K(xi,xj)=⟨Φ(xi),Φ(xj)⟩。
对于测试样本xtest,其到超球体球心的距离为
d=K(xtest ,xtest )−2i=1∑nαiK(xtest ,xi)+i=1∑nj=1∑nαiαjK(xi,xj)
若d≤R ,说明测试样本在超球体上或者内部,属于正常样本;反之则属于异常样本。
此外,可以在正类训练集中加入少数的负类样本来防止过拟合情况。假设训练集中正样本和负样本的标签分别为yi=+1 和yi=−1 ,则原优化问题的对偶问题变为
αimini=1∑nj=1∑nyiyjαiαjK(xi,xj)−i=1∑nyiαiK(xi,xi) s.t. i=1∑nyiαi=10≤αi≤C1,yi=+10≤αi≤C2,yi=−1
超球体的球心和半径的计算公式分别为
a=i=1∑nyiαiΦ(xi)R=K(xv,xv)−2i=1∑nyiαiK(xv,xi)+i=1∑nj=1∑nyiyjαiαjK(xi,xj)
测试样本xtest 到超球体球心的距离为
d=K(xtest ,xtest )−2i=1∑nyiαiK(xtest ,xi)+i=1∑nj=1∑nyiyjαiαjK(xi,xj)
从以上原理可知,两个关键计算点包括:
- 非线性映射函数Φ 可以优化;
- 核函数K 有不同的选择,可能效果对应变化。
有篇理论解释较为详细的文章:https://zhuanlan.zhihu.com/p/32787491
拉格朗日乘子的求解涉及到凸优化问题的二次规划优化求解,需要使用到 Python 凸优化求解库 cvxopt !https://cvxopt.org/examples/tutorial/qp.html
参数问题比较纠结,可以参考:https://courses.csail.mit.edu/6.867/wiki/images/a/a7/Qp-cvxopt.pdf
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梦家博客! 打赏
wechat
alipay