Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 异常检测算法_Algorithm_Filter_Filtering_Heuristics - Fatal编程技术网

Algorithm 异常检测算法

Algorithm 异常检测算法,algorithm,filter,filtering,heuristics,Algorithm,Filter,Filtering,Heuristics,我的任务是使用机器学习算法从各种格式的数据中检测异常(已知或未知),例如电子邮件、IMs等 您最喜欢和最有效的异常检测算法是什么 它们的局限性和优点是什么 您建议如何解决这些限制 非常感谢您的所有建议。一些垃圾邮件过滤器使用的统计过滤器或某些劣质版本很容易实现。另外还有很多关于它的在线文档 最大的缺点是它无法真正检测未知的事物。您可以使用大量已知数据样本对其进行训练,以便它可以对新传入的数据进行分类。但是你可以把传统的垃圾邮件过滤器颠倒过来:训练它识别合法数据而不是非法数据,这样它不识别的任何东

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

  • 您最喜欢和最有效的异常检测算法是什么

  • 它们的局限性和优点是什么

  • 您建议如何解决这些限制

  • 非常感谢您的所有建议。

    一些垃圾邮件过滤器使用的统计过滤器或某些劣质版本很容易实现。另外还有很多关于它的在线文档


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

    根据数据类型和你试图解决的问题,有各种类型的异常检测算法:

  • 时间序列信号中的异常: 时间序列信号是任何你可以画成线图随时间变化的东西(例如,CPU利用率、温度、每分钟电子邮件数量的速率、网页上的访问者速率等)。示例算法有霍尔特·温特斯、ARIMA模型、马尔可夫模型等。几个月前,我做了一次关于这个主题的演讲——它可能会给你更多关于算法及其局限性的想法。 录像带载于:

  • 表格数据中的异常情况:在这些情况下,您有描述某事物的特征向量(例如,将电子邮件转换为描述它的特征向量:收件人数量、字数、大写字数、关键字计数等)。给定一大组这样的特征向量,您需要检测与其他特征向量相比的异常(有时称为“异常检测”)。几乎所有的聚类算法都适用于这些情况,但哪种算法最合适取决于特征的类型及其行为——实值特征、序数、名词性特征或任何其他特征。特征的类型决定了某些距离函数是否合适(大多数聚类算法的基本要求),并且某些算法比其他算法更适合某些类型的特征。 尝试的最简单算法是k均值聚类,其中异常样本可能是非常小的聚类或远离所有聚类中心的向量。单边支持向量机还可以检测异常值,并具有选择不同核函数(以及有效地选择不同距离函数)的灵活性。另一种流行的算法是DBSCAN

  • 当异常已知时,该问题将成为监督学习问题,因此您可以使用分类算法并在已知异常示例上对其进行训练。然而,如前所述,它只会检测那些已知的异常,如果异常的训练样本数量非常少,训练的分类器可能不准确。此外,由于与“无异常”相比,异常的数量通常非常小,因此在训练分类器时,您可能希望使用类似于boosting/bagging的技术,对异常类进行过采样,但优化的假阳性率非常小。文献中有各种各样的技术可以做到这一点——我发现有一个想法很多次都很管用,那就是Viola Jones用于人脸检测的方法——一系列分类器。见:

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

    谢谢,贝叶斯垃圾邮件过滤器似乎是一种不错的方法。我想知道您是否尝试过卡尔曼滤波、支持向量机或其他方法。我不完全确定如何将卡尔曼滤波应用于文本处理。可能是逐字节的,但这太细粒度了,无法有效地对单词和/或短语进行统计分析。@slebetman在实时事务系统中,哪种算法或技术工作良好或至少令人满意?我们需要处理具有许多参数的输入记录,并在处理自身时检测异常,以便系统不会挂起或减慢。