前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【机器学习】孤立森林

【机器学习】孤立森林

作者头像
yuquanle
发布2020-04-15 11:55:03
1.7K0
发布2020-04-15 11:55:03
举报
文章被收录于专栏:AI小白入门AI小白入门

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

作者 | 文杰

编辑 | yuquanle

孤立森林

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

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

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

可以看出,按照离群点大概率为异常点的话,那么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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI小白入门 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 孤立森林
    • 孤立森林算法流程
      • 孤立森林的特点
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档