![9010cc124e76b9c68bfe092919c6ae01.png](https://i-blog.csdnimg.cn/blog_migrate/74b3b42447402078362b19f10134be1b.jpeg)
异常检测看似是机器学习中一个有些难度的问题,但采用合适的算法也可以很好解决。本文介绍了孤立森林(isolation forest)算法,通过介绍原理和代码教你揪出数据集中的那些异常值。
选自blog.paperspace,作者:Dhiraj K,机器之心编译,参与:李诗萌、一鸣。
![030408b1cbf8f0ec55fb3f42c8dcfae7.png](https://i-blog.csdnimg.cn/blog_migrate/67a767b7055ba17b1d826eb9d21733e2.jpeg)
从银行欺诈到预防性的机器维护,异常检测是机器学习中非常有效且普遍的应用。在该任务中,孤立森林算法是简单而有效的选择。
本文内容包括:
- 介绍异常检测;
- 异常检测的用例;
- 孤立森林是什么;
- 用孤立森林进行异常检测;
- 用 Python 实现。
异常检测简介
离群值是在给定数据集中,与其他数据点显著不同的数据点。
异常检测是找出数据中离群值(和大多数数据点显著不同的数据点)的过程。
真实世界中的大型数据集的模式可能非常复杂,很难通过查看数据就发现其模式。这就是为什么异常检测的研究是机器学习中极其重要的应用。
本文要用孤立森林实现异常检测。我们有一个简单的工资数据集,其中一些工资是异常的。目标是要找到这些异常值。可以想象成,公司中的一些雇员挣了一大笔不同寻常的巨额收入,这可能意味着存在不道德的行为。
在继续实现之前,先讨论一些异常检测的用例。
异常检测用例
异常检测在业界中应用广泛。下面介绍一场常见的用例:
银行:发现不正常的高额存款。每个账户持有人通常都有固定的存款模式。如果这个模式出现了异常值,那么银行就要检测并分析这种异常(比如洗钱)。
金融:发现欺诈性购买的模式。每个人通常都有固定的购买模式。如果这种模式出现了异常值,银行需要检测出这种异常,从而分析其潜在的欺诈行为。
卫生保健:检测欺诈性保险的索赔和付款。
制造业:可以监测机器的异常行为,从