机器学习算法概览:异常检测算法常见算法深度学习

机器学习算法概览:异常检测算法常见算法深度学习,第1张

本文是对机器学习算法的一个概览,以及个人的学习小结。通过阅读本文,可以快速地对机器学习算法有一个比较清晰的了解。本文承诺不会出现任何数学公式及推导,适合茶余饭后轻松阅读,希望能让读者比较舒适地获取到一点有用的东西。

本文主要分为三部分,第一部分为异常检测算法的介绍,个人感觉这类算法对监控类系统是很有借鉴意义的;第二部分为机器学习的几个常见算法简介;第三部分为深度学习及强化学习的介绍。最后会有本人的一个小结。

1 异常检测算法

异常检测,顾名思义就是检测异常的算法,比如网络质量异常、用户访问行为异常、服务器异常、交换机异常和系统异常等,都是可以通过异常检测算法来做监控的,个人认为这种算法很值得我们做监控的去借鉴引用,所以我会先单独介绍这一部分的内容。

异常定义为“容易被孤立的离群点 (more likely to be separated)”——可以理解为分布稀疏且离密度高的群体较远的点。用统计学来解释,在数据空间里面,分布稀疏的区域表示数据发生在此区域的概率很低,因而可以认为落在这些区域里的数据是异常的。

机器学习算法概览:异常检测算法常见算法深度学习,机器学习算法概览:异常检测算法/常见算法/深度学习,第2张

图1-1离群点表现为远离密度高的正常点

如图1-1所示,在蓝色圈内的数据属于该组数据的可能性较高,而越是偏远的数据,其属于该组数据的可能性就越低。

下面是几种异常检测算法的简介。

1.1 基于距离的异常检测算法

机器学习算法概览:异常检测算法常见算法深度学习,机器学习算法概览:异常检测算法/常见算法/深度学习,第3张

图1-2 基于距离的异常检测

思想:一个点如果身边没有多少小伙伴,那么就可以认为这是一个异常点。

步骤:给定一个半径r,计算以当前点为中心、半径为r的圆内的点的个数与总体个数的比值。如果该比值小于一个阈值,那么就可以认为这是一个异常点。

1.2 基于深度的异常检测算法

机器学习算法概览:异常检测算法常见算法深度学习,机器学习算法概览:异常检测算法/常见算法/深度学习,第4张

图1-3 基于深度的异常检测算法

思想:异常点远离密度大的群体,往往处于群体的最边缘。

步骤:通过将最外层的点相连,并表示该层为深度值为1;然后将次外层的点相连,表示该层深度值为2,重复以上动作。可以认为深度值小于某个数值k的为异常点,因为它们是距离中心群体最远的点。

1.3 基于分布的异常检测算法

机器学习算法概览:异常检测算法常见算法深度学习,机器学习算法概览:异常检测算法/常见算法/深度学习,第5张

图1-4 高斯分布

思想:当前数据点偏离总体数据平均值3个标准差时,可以认为是一个异常点(偏离多少个标准差可视实际情况调整)。

步骤:计算已有数据的均值及标准差。当新来的数据点偏离均值3个标准差时,视为异常点。

1.4 基于划分的异常检测算法

机器学习算法概览:异常检测算法常见算法深度学习,机器学习算法概览:异常检测算法/常见算法/深度学习,第6张

图1-5孤立深林

思想:将数据不断通过某个属性划分,异常点通常能很早地被划分到一边,也就是被早早地孤立起来。而正常点则由于群体众多,需要更多次地划分。

步骤:通过以下方式构造多颗孤立树:在当前节点随机挑选数据的一个属性,并随机选取属性的一个值,将当前节点中所有数据划分到左右两个叶子节点;如果叶子节点深度较小或者叶子节点中的数据点还很多,则继续上述的划分。异常点表现为在所有孤立树中会有一个平均很低的树的深度,如图1-5中的红色所示为深度很低的异常点。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2581521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-08
下一篇 2022-08-08

发表评论

登录后才能评论

评论列表(0条)

保存