“数据挖掘实战 - 异常检测”学习赛的Task05-学习日志


前言

本文章为天池“数据挖掘实战 - 异常检测”学习赛的Task05-学习日志,旨在对高维数据异常检测的方法有进一步的了解。

学习地址: 添加链接描述


一、高维数据异常检测简介

>>高维数据异常检测常见问题:

  1. 数据空间会随维度的增多而增大,而数据也随之变得稀疏,所以高维度的的稀疏数据不一定为异常数据;
  2. 基于邻近度的方法是在所有维度使用距离函数来定义局部性,高纬度由于距离集中,这一方法失效。

>>常用方法:子空间方法,其中集成法最常用,常见的集成法为Feature Bagging和孤立森林(Isolation Forest)。

>>异常检测集成算法原理:一些算法在某些子集上表现很好,一些算法在其他子集上表现很好,然后集成起来使得输出更加鲁棒。

二、Feature Bagging

1. 选择基本检测器

基本检测器可以彼此完全不同,或不同的参数设置,或使用不同采样的子数据集,通用算法步骤如下:
1. 给定数据配对集S{(xi,yi)},xi∈Xd,yi∈Y={C,NC},其中C对应离群值,CN对应一个正规类,d为向量x的维数;
2. 归一化数据集
3. 异常分析处理:
(1) 从[d/2,d-1]的均匀分布中,随机选择特征子集Nt的大小;
(2) 在不替代的条件下,随机从Nt中选择特征来创建子集Ft;
(3)对子集Ft运用离群检测算法Ot
(4) Ot的输出结果为异常得分向量ASt
4. 将ASt合并,最终输出异常评分向量综合得分

2. 分数标准化和组合方法

不同检测器可能会在不同的尺度上产生分数,因此,需要将来自各种检测器的分数转换成可以有意义的组合的归一化值。分数标准化之后,还要选择一个组合函数将不同基本检测器的得分进行组合,最常见的选择包括平均和最大化组合函数。

三、孤立森林

1.简介

^孤立森林:属于非参数和无监督的算法,既不需要定义数学模型也不需要训练数据有标签,算法时间效率高,能有效处理高维数据和海量数据。

^算法假设:异常点一般都是非常稀有的,在树中会很快被划分到叶子节点,因此可以用叶子节点到根节点的路径长度来判断一条记录是否是异常的。

^算法运行原理:用一个随机超平面来切割数据空间,切一次可以生成两个子空间;然后继续用随机超平面来切割每个子空间并循环,直到每个子空间只有一个数据点为止;如果数据密度低,则会短时间就能被分开。

^算法难题/重点:切割是随机的,为了结果的可靠性,要用集成(ensemble)的方法来得到一个收敛值,即反复从头开始切,平均每次切的结果。孤立森林由t棵孤立的数组成,每棵树都是一个随机二叉树,也就是说对于树中的每个节点,要么有两个子节点,要么一个子节点都没有。

^算法优点:
1. 计算成本相比基于距离或基于密度的算法更小;
2. 具有线性的时间复杂度;
3. 在处理大数据集上有优势。
缺点:不适用于超高维数据,因为鼓励森林每次都是随机选取维度,如果维度过高,则会存在过多噪音。

2.步骤

1. 从训练数据中随机选择一个样本子集,放入树的根节点;
2. 随机产生一个切割点V,把小于V的样本放在当前节点的左孩子中,大于等于V的样本放在右孩子中,这样就形成了2个子空间;
3. 重复2中步骤,直到每个子节点只有一个数据;
4. 计算路径长短,一般路径较短的为异常值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值