本节继续分享时序数据异常值检测算法,今天分享的是孤立森林算法(Isolation Forest),孤立森林是基于Ensemble的快速异常检测方法,具有线性时间复杂度和高精准度,是符合大数据处理要求的state-of-the-art算法。
iForest 适用于连续数据的异常检测,将异常定义为“容易被孤立的离群点”,可以理解为分布稀疏且离密度高的群体较远的点。用统计学来解释,在数据空间里面,分布稀疏的区域表示数据发生在此区域的概率很低,因而可以认为落在这些区域里的数据是异常的。
工作原理
假定我们用一个随机超平面来切割数据空间,切一次可以生成两个子空间。之后我们再继续用一个随机超平面来切割每个子空间,循环下去,直到每子空间里面只有一个数据点为止。直观上来讲,我们可以发现那些密度很高的簇是可以被切很多次才会停止切割,但是那些密度很低的点很容易很早的就停到一个子空间了。
实现过程
1.读入数据
2.效果实现
以上详细代码可扫描文末二维码获取。
孤立森林算法小结●●
孤立森林算法的有点在于海量数据处理的高效性,计算速度更快,但是其适用条件苛刻,异常点少且需要特征明显,而且不适合高维数据。
参考文献
[1]李新鹏, 高欣, 阎博,等. 基于孤立森林算法的电力调度流数据异常检测方法[J]. 电网技术, 2019(4).
[2]肖伟洋. 基于孤立森林算法的空气质量数据异常检测分析[J]. 信息与电脑(理论版), 2019(17).
[3]余翔, 陈国洪, 李霆,等. 基于孤立森林算法的用电数据异常检测研究[J]. 信息技术, 2018, 42(12):96-100.
下一节分享内容:
异常值检测——向量机算法
出品/TES工作室