背景

什么是 LSCP ?
Locally Selective Combination in Parallel Outlier Ensembles(LSCP),一个多个异常检测算法的并行集成框架,可以对多个异常检测模型进行集成,提高性能与稳定性。

什么是并行(parallel)的集成?
如果多个模型之间是独立生成的,互不干扰,则能够并行执行,即并行的集成。它的对立面即是另一种集成方式即 —— 顺序(sequential)的集成,即模型之间是相互依赖,需要迭代训练得到的,比如像 boosting 这样的思想,但是由于异常检测属于无监督任务,即没有 ground truth,故无法使用类似的方式。

为何提出 LSCP?解决什么问题?

  • 现有的组合方式不对模型进行选择,导致组合中存在较差的模型会影响组合之后的性能,导致组合之后只能得到一个比较平庸的结果
  • 现在的大部分算法都忽略了数据中的局部特征

一个异常检测模型可能无法涵盖多种离群点的情况,故将多个模型组合起来是一种很好的解决方式。但是异常检测是一种无监督的任务,即数据没有标签,没有 ground truth,故无法像集成有监督模型一样,在集成的过程中,得到误分类的样本或者选择出准确率更高的模型。
现有的模型组合方式,都是不对模型进行选择,最后直接选择所有模型产出的异常分的平均值/最大值等指标作为样本最终的异常分数。但是不对模型进行选择的话,一些性能差的模型,将会影响组合后的模型的性能。
(LSCP 支持组合异构模型,也支持组合同构模型;组合异构模型可以让模型具有多样性,组合同构模型,通过设置不同的超参,也能实现多样性,论文利用组成多个超参不同 LOF 为例)

异常检测可以粗略分为局部异常和全局异常。全局异常即是整理考虑全部数据,找到与大盘数据偏离较远的点,即只有当异常点与全局数据分布差异非常大的时候,效果才比较好。而局部异常包含了部分在局部较异常,局部密度低,而在全局数据中观察较正常的情况。目前大部分算法都是全局异常算法,但是全局特征不能表示数据在局部的异常,所以在异常检测算法中,需要关注局部异常。

LSCP 最后达到的结果?
能够对不同的测试数据,利用不同的 base model 进行训练。即假设共有 10 个 base model,第一个测试数据可以用前三个模型进行,第二个测试数据利用后四个模型进行训练。

LSCP 框架介绍

给定训练集 XtrainRn×dX_{train} \in R^{n \times d},包含 nndd 维样本;R 个 base models: C={C1,C2,,CR}C = \{ C_1, C_2, \ldots, C_R \}
异常检测算法 —— LSCP: Locally Selective Combination in Parallel Outlier Ensembles

第一步:首先利用训练集 XtrainX_{train} 分别训练 R 个模型

第二步:当测试数据 Xtest(j)R1×dX_{test}^{(j)} \in R^{1 \times d} 到来时,首先生成该样本的局部空间 ψj\psi _j

  1. 随机选择 ttd/2d/2 维至 dd 维的特征子空间(为了考虑局部异常)
  2. 对于选出的每一组特征子空间,利用该特征子空间,在训练集中找出在该特征子空间中,与 Xtest(j)X_{test}^{(j)} 距离(欧式距离)最近的 kk 个邻居样本
  3. 将步骤 2 中在所有在训练集中挑选出的邻居样本中,出现次数超过 t/2t/2 的样本,作为该测试数据 Xtest(j)X_{test}^{(j)} 的局部区域(每个测试样本的局部区域的基数不一样,即其中包含的样本数量不一样)

第三步:得到测试数据 Xtest(j)X_{test}^{(j)} 的局部空间 ψj\psi _j 后,利用训练好的 base models {C1,C2,,CR}\{ C_1, C_2, \ldots, C_R \},得到该局部空间的局部异常分数矩阵 O(ψj)Rψj×RO(\psi_j) \in R :^{|\psi_j| \times R}
假设局部空间 ψj\psi _j 中包含了 10 个训练样本,即该局部空间的基数 ψj|\psi_j| 等于 10,通过 base models 得到这 10 个训练样本的异常分数,即得到了一个 10×R10 \times R 的异常分数矩阵 O(ψj)O(\psi_j) .

第四步:得到局部空间的局部异常分数矩阵 O(ψj)Rψj×RO(\psi_j) \in R ^{|\psi_j| \times R}后,生成局部伪目标(pseudo ground truth) targetψjRψj×1target^{\psi_j} \in R ^{|\psi_j| \times 1}
对于 10×R10 \times R 的异常分数矩阵 O(ψj)O(\psi_j),对于这 10 个样本中的每一个计算,得到 RR 个模型产生的异常分数的平均值(最大值),即得到一个 10×110 \times 1 的向量 target,即 ψj×1|\psi_j| \times 1 的伪目标

第五步:得到伪目标 targetψjRψj×1target^{\psi_j} \in R ^{|\psi_j| \times 1} 后,计算局部异常分数矩阵 O(ψj)Rψj×RO(\psi_j) \in R ^{|\psi_j| \times R} 与伪目标 targetψjRψj×1target^{\psi_j} \in R ^{|\psi_j| \times 1} 之间的皮尔逊相关系数(Pearson Correlation Coefficient),通过相关系数,选择出与伪目标最相似的 x 个 models

第六步:最后根据选择的 x 个models,计算该测试数据 Xtest(j)X_{test}^{(j)} 的异常分数,将这 x 个异常分数的最大值(平均值)作为该测试数据最后的异常分数。

Reference

论文原文:https://epubs.siam.org/doi/abs/10.1137/1.9781611975673.66
参考链接:https://zhuanlan.zhihu.com/p/95121734
论文PPT:http://www.andrew.cmu.edu/user/yuezhao2/papers/19-sdm-lscp-slides.pdf
源代码:https://github.com/yzhao062/LSCP

相关文章:

  • 2021-04-28
  • 2021-11-08
  • 2021-06-25
  • 2021-09-09
  • 2021-12-09
  • 2021-09-08
  • 2021-06-27
猜你喜欢
  • 2021-05-24
  • 2022-03-03
  • 2021-07-23
  • 2022-12-23
  • 2021-06-22
相关资源
相似解决方案