异常检测笔记05高维异常

本文介绍了高维数据异常检测的两种方法:Feature Bagging和Isolation Forests。Feature Bagging利用基检测器(如LOF)降低方差,而Isolation Forests通过构建随机二叉树快速识别异常点,适用于大规模数据集。文章还探讨了这两种方法的优缺点及适用场景,并提供了使用PyOD库进行实践的示例。
摘要由CSDN通过智能技术生成

异常检测笔记05高维异常

高维数据异常检测:feature bagging和孤立森林

1. 集成

集成是子空间思想中常用的方法之一,可以有效提高数据挖掘算法精度。集成方法将多个算法或多个基检测器的输出结合起来。其基本思想是一些算法在某些子集上表现很好,一些算法在其他子集上表现很好,然后集成起来使得输出更加鲁棒。集成方法和基于子空间方法有着天然的相似性,子空间与不同的点集相关,而集成方法使基检测器来探索不同维度的子集,将这些基学习器集合起来。

2.Feature Bagging

步骤:
1.选择基检测器
(feature bagging常用lof算法为基算法)
feature bagging的通用算法如下:
在这里插入图片描述
2.分数标准化和组合方法:

  • 广度优先
    在这里插入图片描述
  • 累积求和
    在这里插入图片描述
    基探测器的设计及其组合方法都取决于特定集成方法的特定目标。很多时候,我们无法得知数据的原始分布,只能通过部分数据去学习。除此以外,算法本身也可能存在一定问题使得其无法学习到数据完整的信息。这些问题造成的误差通常分为偏差和方差两种。
    方差:是指算法输出结果与算法输出期望之间的误差,描述模型的离散程度,数据波动性。
    **偏差:**是指预测值与真实值之间的差距。即使在离群点检测问题中没有可用的基本真值:是指预测值与真实值之间的差距。即使在离群点检测问题中没有可用的基本真值

3. Isolation Forests

孤立森林算法时间效率高,能有效处理高维数据和海量数据,无须标注样本。
孤立森林属于非参数和无监督的算法,通过用一个随机超平面来切割数据空间来查找异常点,切一次可以生成两个子空间。然后继续用随机超平面来切割每个子空间并循环,直到每个子空间只有一个数据点为止。直观上来讲,很快被孤立的点就是异常点。

  • 核心思想:用集成(ensemble)的方法来确定一个收敛值,即所有从头到尾切的次数的平均值。
  • 孤立森林由t棵孤立的树组成,其中每棵树为随机二叉树,构造方法与随机森林中的树的构造方法类似:
    • 从训练数据中随机选择一个样本子集,放入树的根节点
    • 随机指定一个属性,随机产生一个切割点V,即属性A的最大值和最小值之间的某个数
    • 根据属性A对每个样本进行分类,把A小于V的样本放在当前节点的左子树中,否否则放于右子树中。依次生成随机二叉树
    • 重复前一步骤,直到子树中只有一个数据,停止生成。
      生成好孤立森林后,根据其中二叉树的叶子结点到根结点的路径长度来判断一条记录是否是异常的。(异常点路径较短,正常点的路径较长)
      路径长度计算方法如下:
      在这里插入图片描述

4.总结

  • feature bagging可以降低方差
  • 孤立森林的优势在于:
    • 计算成本相比基于距离或基于密度的算法更小
    • 具有线性的时间复杂度
    • 在处理大数据集上有优势
      但需要注意的是,孤立森林不适用于超高维数据,因为其每次都是随机选取维度,如果维度过高,则会存在过多噪音。

5.练习

5.1 使用PyOD库生成top example并调用feature bagging/Isolation Forests

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
%matplotlib inline
import matplotlib.font_manager
from pyod.models.feature_bagging import FeatureBagging #导入feature bagging模块
from pyod.models.iforest import IForest
# 导入isolation forest模块
from pyod.models.lof import LOF 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值