1. 用于异常值检测

孤立森林通过随机生成多棵二叉树(iTree)来孤立数据点。对于每个点,计算它在所有树中的路径长度平均值,并通过归一化得到异常分数(接近1表示异常)。
你的理解基本正确,但可以稍微再精炼一下细节。我帮你梳理一下 孤立森林(Isolation Forest, iForest) 的核心思想和步骤:

核心思想

  • 异常点(离群点)更容易被孤立:因为它们往往稀疏、分布在边缘区域,用随机切分几次就能被隔离开。

算法步骤

  1. 生成孤立树(Isolation Tree, iTree)

    • 随机选择一个特征;

    • 在该特征的取值范围内随机选择一个切分点;

    • 递归分割,直到:

      • 每个点被单独隔离,或者
      • 树达到预设的最大高度。
    • 这样生成一棵二叉树。

  2. 构建森林(Isolation Forest)

    • 重复上述过程,生成多棵孤立树。
  3. 计算样本的平均路径长度

    • 对于一个点 ,看它在森林中每棵树的路径长度(即从根节点到达叶子节点的深度)。
    • 取平均值,得到该点的平均路径长度。
  4. 异常分数 (Anomaly Score)

    • 路径越短,说明点越容易被孤立 → 异常可能性越大;
    • 路径越长,说明点位于密集区域 → 更可能是正常点。

适用类型:

  1. 数目多
  2. 但是维度不能异常高
    Fetching Title#zvug
    Python机器学习笔记:异常点检测算法——One Class SVM - 战争热诚 - 博客园