【机器学习】孤立森林

点击上方蓝色字体,关注AI小白入门

跟着博主的脚步,每天进步一点点

【机器学习】孤立森林_第1张图片

本文介绍了一种基于树集成的异常检测方法,其核心思想是“异常点是容易被孤立的离群点”。首先介绍了孤立森林算法的设计思路。然后介绍了孤立森林算法的特点和适用场景。最后给出了sklearn中孤立森林算法的几个重要参数。

作者 | 文杰

编辑 | yuquanle

孤立森林

孤立森林(Isolation Foreset)是基于树(iTree)集成的快速异常检测方法,其异常检测的核心思想是“异常点是容易被孤立的离群点”。

因此,孤立森林采用随机特征随机阈值划分生成多个树,直到树到达一定的高度或者直到每个叶子节点中只有一个点。

那么,那些离群点很容易被提前(即所在叶子节点的深度较浅)被划分出来。由于每个树都是由随机采样独立生成的,所以树之间具有一定的独立性,多个树的集成就是最终的孤立森林。

【机器学习】孤立森林_第2张图片

可以看出,按照离群点大概率为异常点的话,那么d最有可能为异常点。

孤立森林算法流程

1)从训练集中随机选择(有放回和无放回) 个样本点构成子集 ,在 个子集上构建树;

2)随机选择一个特征,随机选择一个阈值(最大值与最小值之间)进行二分裂;

3)递归2)建树,直到树到达一定的高度 或者每个叶子节点中只有一个点;

4) 个树建好,根据 个决策树的平均深度来定义其异常的概率:

a)统计每棵树的BST路径长度定义:

b)定义异常的概率为:

是 在给定 下的平均值, 其中的 可以通过公式  来估计, 是欧拉常数,其值为0.5772156649, 为从根节点到叶子节点的路径长度。

5)计算异常概率:

a)当 ,

b)当 ,

c)当 ,

从上面建树的过程,可以看出孤立森林是针对连续值属性的,二分裂二叉树,当然离散值属性我想也是可以的。

孤立森林的特点

  1. 每棵树随机采样独立生成,所以孤立森林具有很好的处理大数据的能力和速度;

  2. 通常树的数量越多,算法越稳定,树的深度不易过深;

  3. 孤立森林不适于特别高维的数据。因为子树的构建每次只选一个特征,容易受噪声影响。

sklearn中孤立森林的参数设置

  • n_estimators :iTree的个数

  • max_samples :构建子树的样本数 ,整数为个数,小数为占全集的比例

  • contamination :异常的阈值

  • max_features :构建每个子树的特征数,整数位个数,小数为占全特征的比例

  • bootstrap :采样是有放回还是无放回

  • n_jobs :并行数

  • random_state :每次训练的随机性

  • verbose :建树的过程描述输出

The End

方便交流学习,备注:昵称-学校or公司-方向,进入DL&NLP交流群。

记得备注呦

【推荐阅读】

初学者|NLP相关任务简介

【科研】自然语言理解难在哪儿?

自然语言处理中注意力机制综述

新年送福气|您有一份NLP大礼包待领取

“达观杯”文本智能处理挑战赛,季军带你飞

【机器学习】一文读懂线性回归、岭回归和Lasso回归

长按二维码关注
AI小白入门

ID:StudyForAI

学习AI学习ai(爱)

期待与您的相遇~

你点的每个在看,我都认真当成了喜欢

你可能感兴趣的:(【机器学习】孤立森林)