首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异常检测算法

异常检测算法
EN

Stack Overflow用户
提问于 2010-12-01 21:36:19
回答 2查看 1.7K关注 0票数 2

我的任务是检测异常(已知或未知)使用机器学习算法,从各种格式的数据,如电子邮件,IMs等。

  1. 你最喜欢和最有效的异常检测算法是什么?
  2. 它们的局限性和优点是什么?
  3. 你建议如何解决这些限制?

所有的建议都非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-01 21:50:10

贝叶斯滤波器这样的统计过滤器或一些垃圾邮件过滤器所使用的混蛋版本很容易实现。此外,还有很多关于它的在线文档。

最大的缺点是它不能真正探测到未知的东西。您可以使用大量已知数据来训练它,这样它就可以对新传入的数据进行分类。但是你可以把传统的垃圾邮件过滤器颠倒过来:训练它识别合法的数据,而不是非法的数据,这样它不识别的任何东西都是异常的。

票数 4
EN

Stack Overflow用户

发布于 2016-01-08 10:11:46

有不同类型的异常检测算法,取决于数据类型和您试图解决的问题:

  1. 时间序列信号中的异常:时间序列信号是你可以绘制成线状图的任何东西(例如CPU利用率、温度、每分钟电子邮件数量的速率、网页上的访问者率等)。例如,霍尔特-温特斯,ARIMA模型,马尔可夫模型,等等.几个月前,我就这个话题做了一个演讲--它可能会给你更多关于算法及其局限性的想法。视频地址是:RQ
  2. 表格数据中的异常:在这些情况下,您拥有描述某事的特征向量(例如,将电子邮件转换为描述它的特征向量:收件人数量、字数、大写单词数、关键字计数等)。给定大量这样的特征向量,您希望检测一些与其他特征向量相比较的异常(有时称为“孤立点检测”)。几乎所有的聚类算法都适用于这些情况,但是哪种聚类算法最适合,取决于特征的类型及其行为--实际值特征、序号特征、标称特征或任何其他特征。特征类型决定了某些距离函数是否合适(大多数聚类算法的基本要求),而某些算法在某些类型的特征中比其他类型的算法更好。最简单的尝试是k均值聚类,其中一个异常样本要么是非常小的集群,要么是远离所有聚类中心的向量。单面支持向量机也能检测出孤立点,并具有选择不同核(以及有效的不同距离函数)的灵活性。另一个流行的algo是DBSCAN。
  3. 当异常已知时,该问题成为一个监督学习问题,因此您可以使用分类算法并对已知的异常示例进行训练。然而,如前所述,它只会检测到那些已知的异常,如果对异常的训练样本数量很小,经过训练的分类器可能就不准确。另外,由于异常的数量通常比“无异常”要小,所以在训练分类器时,你可能想要使用一些技术,比如增压/套袋,对异常类(Es)进行过采样,但对非常小的假阳性率进行优化。在文献中有很多种方法可以做到这一点--我发现很多次都很有效的一个想法就是Viola用于人脸检测的方法--一系列的分类器。请参阅:http://www.vision.caltech.edu/html-files/EE148-2005-Spring/pprs/viola04ijcv.pdf

(免责声明:我是Anodot的首席数据科学家,一家为时间序列数据进行实时异常检测的商业公司)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4329407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档