孤立森林Isolation Forest笔记

Isolation Forest

详细连接

链接
异常点定义为那些 “容易被孤立的离群点” —— 可以理解为分布稀疏,且距离高密度群体较远的点。
在这里插入图片描述
常见的场景包括:网络安全中的攻击检测、金融交易欺诈检测、疾病侦测、**噪声数据过滤(数据清洗)**等。

与其他算法的区别

大多数基于模型的异常检测算法会先 ”规定“ 正常点的范围或模式,如果某个点不符合这个模式,或者说不在正常范围内,那么模型会将其判定为异常点。
在这里插入图片描述

训练过程

孤立森林是类似与集成算法,建立很多棵树,然后最后平均所有树的结果,成为我们最终的结果。

建立一棵树的过程

1.在训练数据中随机选择特征,作为一颗孤立树的根节点。
2.随机指定一个维度。在当前的特征内,随机产生一个切割点p
3.此时将当前数据空间切分为2个子空间,一个是所选维度大于p的点,一个是小于p的点。
4.在两个子空间内在递归2 3 步,不断构造新的叶子节点,直到叶子节点上只有一个数据(无法再继续切割)或者达到了我们我设置的树的高度。
在这里插入图片描述

整合全部孤立树的结果

由于切割过程是随机的,我们是随机的选取特征进行分割,所以需要集成的方法也就是集合所有树的结果来使结果收敛,即反复的从头开始切,然后计算每次切分结果的平均值。

例子

在这里插入图片描述

武林外传有很多很多人物,即全部样本为x,我们选取子样本即其中9个人物建立其中一颗孤立树。把这9个人作为一个子样本放入一颗孤立树的根节点,
在这里插入图片描述
然后随机选择特征,随机选择一个切割点p,大于18和小于18.。。
在这里插入图片描述
但看一棵树,莫小贝的异常程度最高。但是,他之所以最先被孤立出来,与随机选择到的特征顺序有关,所以我们通过对多棵树进行训练,来去除这种随机性,让结果尽量收敛。

https://www.pianshen.com/article/3092770169/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值