← 返回题目列表

Isolation Forest 如何做异常检测?

中等 第 19 / 25 题 更新于 2026/09/25
无监督学习机器学习面试题模型训练
学习 AI 实战项目

简化版

Isolation Forest 用随机选择特征与切分点来隔离样本,异常点通常更容易被少量切分孤立,因此平均路径更短、异常分数更高。它适合中大规模非线性数据,但阈值、采样、类别特征编码和漂移仍需独立验证。

详细版

  • 每棵树在子样本上随机递归切分。
  • 路径长度相对随机二叉搜索树期望做归一化。
  • subsample 控制速度和可发现的局部结构。
  • contamination 多用于阈值,不等于真实异常率真值。
  • 特征量纲通常不改变单维随机切分顺序,但编码仍影响结构。

完整版教学

一、问题定义与核心直觉

算法不计算点间距离,而是在特征范围内随机切分。远离主体或处于稀疏区域的点更可能很快单独落入叶子;正常密集区域需要更多切分才能隔离。

随机森林的“随机”提供集成稳定性,但无关特征过多会稀释有效切分概率。高基数类别若被随意整数编码,还会引入不存在的顺序和区间。

二、机制与公式

s(x,n)=2^(-E[h(x)]/c(n))
c(n) approximates unsuccessful BST search length

E[h(x)] 是样本跨多棵隔离树的平均路径长度,c(n) 用 n 个点随机二叉搜索树的期望路径做尺度校正。因此不同子样本大小的原始路径不能直接比较,必须按实现约定归一化并核对分数方向。

三、带数字的推演

子样本 256 个点时,样本 A 平均 4 层被隔离,样本 B 平均 10 层。归一化后 A 的异常分数更高;但是否告警仍取决于验证阈值,而不是把“4 层”当业务异常定义。

路径 4 与 10 只有结合相同的子样本大小和归一化才可比较。contamination 通常只是把连续排序切成标签的阈值假设,不是算法从数据中可靠估计出的线上异常基率。

四、方案对比

方案优势代价或边界
Isolation Forest扩展性好、无需距离局部密度差异可能误报
LOF刻画局部密度预测新样本和扩展较难
One-Class SVM边界灵活大样本核训练昂贵

五、工程执行流程

定义时间窗口 -> 编码与质量检查 -> 训练正常/混合基线 -> 扫树数和 subsample
-> 验证排序与阈值 -> 查看路径/特征贡献 -> 灰度告警 -> 漂移重训

对连续特征做严格单调缩放通常保留单维顺序及随机区间切分的相对结构,但具体随机阈值分布、极端数值和实现仍需验证。类别特征若任意整数编码,则会凭空引入顺序,必须采用有语义的编码或专门方法。

六、边界条件与上线代价

多模态数据中,小而合法的客户群可能持续被快速隔离;应分群建模或加入上下文,而不是简单放宽全局阈值。

某些实现分数方向相反,例如越小越异常;接入前必须用已知样本核对 score、decision_function 与 predict 的符号。

关键判断:Isolation Forest 的核心图像是“随机切,异常先被单独关起来”。

七、常见误区与追问

  • 误区:Isolation Forest 是随机森林分类器。 它没有监督标签,目标是随机隔离路径。

  • 追问:为什么异常路径短? 稀疏或极端样本更容易被随机切分单独分开。

  • 误区:contamination 就是模型估计的真实异常率。 它通常只是设定决策阈值的先验。

  • 追问:需要标准化吗? 排序切分通常不敏感,但编码和数值精度仍重要。

  • 追问:如何解释结果? 结合路径、特征扰动和相似历史事件,不把单树当因果。

八、加强记忆

Isolation Forest 的核心图像是“随机切,异常先被单独关起来”。路径负责产生排序,contamination/验证集负责落阈值;合法小群体、无关特征和分数方向是上线前必查边界。