五、SVDD

5.1 one class 分类

  1. 通常分类问题是两类或者多类,但有一种分类为一类one class 的分类问题:它只有一个类,预测结果为是否属于这个类。

  2. 一类分类的策略是:训练出一个最小的超球面把正类数据包起来。识别一个新的数据点时,如果这个数据点落在超球面内,则属于正类;否则不是。

  3. 示例:给定一些用户的购物行为日志,其中包括两类用户:

    • 购买了某个商品的用户。可以肯定该类用户对于该商品是感兴趣的(标记为正例)。
    • 未购买某个商品的用户。此时无法断定该用户是对该商品感兴趣,还是不感兴趣(无法标记为反例)。

    现在给定一群新的用户,预测这些用户中,哪些可能对该商品有兴趣。

    如果简单的使用二类分类问题,则有两个问题:

    • 未购买商品的用户,不一定是对该商品不感兴趣,可能是由于某些原因未能购买。
    • 通常未购买商品的用户数量远大于购买用户的数量。如果使用二类分类,则容易造成正负样本不均匀。

5.2 SVDD 算法

  1. support vector domain description:SVDD可以用于一类分类问题。

  2. 给定训练集 五、SVDD - 图1,这些样本都是属于同一类。SVDD 的的优化目标是:求一个中心为 五、SVDD - 图2,半径为 五、SVDD - 图3 的最小球面,使得 五、SVDD - 图4 中的样本都在该球面中。

  3. 类似SVRSVDD 允许一定程度上的放松,引入松弛变量。对松弛变量 五、SVDD - 图5,其代价为 五、SVDD - 图6

    五、SVDD - 图7

    其中 五、SVDD - 图8 为惩罚系数:​

    • 五、SVDD - 图9 较大,则不能容忍那些球面之外的点,因此球面会较大。
    • 五、SVDD - 图10 较小,则给予球面之外的点较大的弹性,因此球面会较小。
  4. SVDD 的求解也是采用拉格朗日乘子法:

    五、SVDD - 图11

    • 根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:五、SVDD - 图12
    • 先求极小问题:根据 五、SVDD - 图13五、SVDD - 图14 偏导数为零可得:

    五、SVDD - 图15

    • 代入拉格朗日函数有:

    五、SVDD - 图16

    • 引入核函数:

      五、SVDD - 图17

      其解法类似支持向量机的解法。

  5. 判断一个新的数据点 五、SVDD - 图18 是否属于这个类,主要看它是否在训练出来的超球面内:若 五、SVDD - 图19,则判定为属于该类。

    • 如果使用支持向量,则判定准则为:五、SVDD - 图20
    • 如果是用核函数,则判定准则为:五、SVDD - 图21