Isolation Forest | 隔离森林论文阅读

Note of Isolation Forest

论文:https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/icdm08b.pdf

一、介绍

作者认为,异常数据存在两个显著的特性:

  • 数量少,甚至是极少
  • 与正常数据有显著的属性值差异

简单来说,异常是少且非常不同的。

因此,作者要做的就是找出这些异常点,而不是为正常数据建模(传统方法)。作者提出用树的结构去做这件事,并且在论文中会证明异常点更接近根节点(深度浅),正常点离根节点更远(深度深)。

作者称其构造的树为iTree或者Isolation Tree,称构造的树的集合为iForest或Isolation Forest。并且声称iForest只有两个参数:树的数量、子采样(sub-sampling)的大小;且只需要非常小的树的数量和非常小的子采样的大小就可以达到很好地检测效果和收敛效果。

二、Isolation and Isolation Trees

所谓Isolation,就是将一个实例同其他实例分隔开来。因为异常实例是非常少且非常不同的,因此异常实例是对这种分隔很敏感的。

有明显不同的属性值的实例就很容易分隔出来,而且往往比较早就被分隔出来,这也就意味着这些异常实例有比较短的“路径”,也即在树上有较浅的深度。

所谓Isolation Tree,是一棵完全二叉树,每一个节点要么没有孩子要么一定有两个孩子。构

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Isolation Forest是一种异常检测算法,可用于识别数据集中的异常值。Sklearn是一个Python机器学习库,提供了Isolation Forest算法的实现。 Isolation Forest基于以下两个概念来检测异常值:孤立实例和孤立树。孤立实例是数据集中的少数异常点,而孤立树是通过随机选择和分割特征来建立的二叉树。算法通过计算数据实例在树中的深度来评估其异常程度。异常点被认为是通过较少的路径被孤立,而正常点通常需要更多的路径来被孤立。 使用sklearn库中的Isolation Forest算法,我们可以按照以下步骤来进行异常检测。 首先,导入必要的库和数据集。使用sklearn.ensemble模块中的IsolationForest类来创建模型。 ``` import numpy as np from sklearn.ensemble import IsolationForest # 创建模型 model = IsolationForest(n_estimators=100, contamination=0.05, random_state=42) ``` 然后,我们可以使用模型的fit()方法来训练 Isolation Forest模型。 ``` # 训练模型 model.fit(data) ``` 在训练完成后,我们可以使用predict()方法来预测数据中的异常值。预测结果是-1表示异常值,1表示正常值。 ``` # 预测异常值 predictions = model.predict(data) ``` 最后,我们可以根据预测结果来标记和分析数据中的异常值。 需要注意的是,在使用Isolation Forest算法时,需要调整一些重要参数。例如,n_estimators参数表示建立孤立树的数量,contamination参数表示数据集中异常值的比例,我们可能需要根据实际情况进行调整。 总的来说,通过使用sklearn中的Isolation Forest算法,我们可以简单方便地进行异常检测,对于发现数据集中的异常值具有较好的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值