💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖
本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】
Sklearn 机器学习 异常值检测:孤立森林可视化异常点实战
在实际机器学习项目中,数据集往往会包含异常点(Outliers),这些异常点可能是由于测量错误、数据录入问题,或者确实存在的罕见情况。
如果不处理,它们可能严重影响模型性能。
本篇文章将带你使用 Sklearn 的孤立森林(Isolation Forest)算法 进行异常点检测,并通过 可视化方式标记异常点,让检测结果一目了然。
🔍 一、孤立森林(Isolation Forest)简介
孤立森林是一种基于随机切分思想的异常检测算法,由多棵**孤立树(Isolation Trees)**组成。
它的基本原理是:
- 异常点往往在特征空间中与其他样本相距较远,更容易被少量切分操作“孤立”出来
- 每次随机选择一个特征,再在该特征的取值范围中随机选一个切分点
- 重复这个过程,直到样本被完全隔离
- 样本被隔离所需的切分次数越少,其越可能是异常点
优点:
- 适用于高维数据
- 对大规模数据集计算效率高
- 不依赖数据分布假设
缺点:
- 对参数敏感(尤其是 contamination)
- 在异常比例极低时可能需要调参
⚙️ 二、孤立森林核心参数说明
参数名 | 说明 |
---|---|
n_estimators |
森林中的孤立树数量,数量越多模型越稳定,但计算时间增加 |
max_samples |
每棵孤立树训练的样本数量,通常取 "auto" 或固定值 |
contamination |
数据集中预估的异常比例(范围为 0 到 0.5,不包含 0.5),影响阈值计算 |
max_features |
每棵树考虑的特征数,可用于加快训练 |
random_state |
随机种子,保证实验可重复 |
💡 提示:如果异常比例未知,可以先取较小值(如 0.05),然后根据结果调整。</