问题标签 [anomaly-detection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1040 浏览

scikit-learn - 来自潜在狄利克雷分配的 sklearn 似然性

我想使用 sklearn 的潜在狄利克雷分配进行异常检测。我需要获得公式中正式描述的新样本的可能性here

我怎么能得到那个?

0 投票
0 回答
916 浏览

c++ - 如何在 C++ (OpenCV) 中加速 connectedComponentsWithStats

由于 OpenCV 3.0 有一个非常有用的函数connectedComponentsWithStats,我很感兴趣是否有办法加快这个函数的速度?

我正在做一个项目,我必须计算异常的属性。这个属性很好用 connectedComponentsWithStats 函数计算,但我需要更快的速度......

我们计算异常的图像是使用 OpenCV阈值函数从灰度图像计算的 8 位二进制图像。我在下面展示了这个二进制异常图像:

在此处输入图像描述 我们可以看到黑色区域——这是我们感兴趣的区域(ROI)。在 ROI 上,我们可以看到白色异常(点、线、划痕……)。对于这些异常,我必须计算函数 connectedComponentsWithStats 的质心、面积和类似属性,但它对我的应用程序来说还不够快。我的属性计算代码在这里:

计算大约需要 55 毫秒,我想优化它至少快 10 倍。

已经感谢您的所有建议!

0 投票
1 回答
302 浏览

matlab - 如何使用边缘检测在灰度图像上提取 ROI

我想通过使用边缘检测来提取下图(ROI)上的白色区域。我想这样做是因为我必须得到非常精确的白色区域蒙版。图像看起来像这样:

在此处输入图像描述

如果我使用一些matlab的内置函数,问题是我也会得到白色区域之外的边缘(在黑色区域和灰色区域之间的边界上),所以如果我侵蚀外侧边缘,我会失去两边白色区域的角落。 ..

在此处输入图像描述

在正确检测到边缘后,我还必须关闭整个白色区域以获得蒙版......

在第一张图像上计算白色区域的蒙版还有其他建议吗?我已经尝试过阈值,并且该方法非常成功...

0 投票
3 回答
250 浏览

r - 为异常检测准备数据

我手头的任务是对时间序列数据进行异常检测。我有异常检测代码,但正在尝试为其准备数据。数据如下所示。

首先,我想让timestampUtc列中的秒数为零。接下来,我想创建一个列,表示count并想计算该特定分钟的值的数量。例如,输出应如下所示:

0 投票
0 回答
155 浏览

r - 寻找噪声数据的基线偏移点

我有一个原始信号附加在这个问题中。x 轴是时间,y 轴是信号响​​应。从噪声数据中可以看出,噪声信号的基线 B1 似乎在大约 t2 s(原始信号)时开始从 t1 s 转移到新的基线值 B2。我正在使用 R 进行分析。我所做的是每 0.5 秒对数据进行分组并绘制该组的箱线图,如图所示(每 0.5 秒的数据箱线图)。这种方法很有帮助,但会根据您为箱线图定义的时间间隔以及信号中的噪声而略有变化。是否有任何其他数学/统计方法可以确定基线偏移何时发生以及何时达到最终基线值?由于有数百个这样的探针,我希望程序自动找到 t1 和 t2 ,而不是用户手动查看图表。

0 投票
1 回答
6619 浏览

python - Linkedin 的 Luminol 异常检测和相关库的工作示例

Luminol 库的 Github 链接:https ://github.com/linkedin/luminol

谁能用示例代码向我解释一下如何使用此模块来查找数据集中的异常。

我想使用这个模块来查找我的时间序列数据中的异常。

PS:我尝试了 README.md 中提供的示例 1,但出现错误,所以请有人提供一个工作示例来查找异常。

示例 1 将异常分数放入列表中。

得到 value error: (22, 'Invalid argument') In line: t_str = time.strftime('%Y-%m-%d %H :%M%S', time.localtime(timestamp))

使用 Python 2.7

谢谢 :)

0 投票
3 回答
2095 浏览

c++ - 如果阈值不够好,如何检测opencv(c ++)中的异常?

我有这样的灰度图像:

在此处输入图像描述 我想检测这种图像的异常情况。在第一张图像(左上)我想检测三个点,在第二张(右上)有一个小点和一个“雾区”(在右下),最后一个,有也是图像中间某处的一个小点。

正常的静态阈值对我来说不起作用,而且 Otsu 的方法始终是最佳选择。有没有更好、更强大或更智能的方法来检测这样的异常?在 Matlab 中,我使用了类似 Frangi 过滤(特征值过滤)的东西。任何人都可以提出好的处理算法来解决这样的表面上的异常检测吗?

编辑:添加了另一个带有标记异常的图像:

在此处输入图像描述

使用@Tapio 的顶帽过滤和对比度调整。由于@Tapio 为我们提供了如何增加表面异常对比度的好主意,就像我在开始时询问的那样,我向大家提供了我的一些结果。我有这样的图像: 在此处输入图像描述

这是我如何使用顶帽过滤和对比度调整的代码:

结果在这里:

在此处输入图像描述

仍然存在如何从最后一张图像中分割异常的问题?因此,如果有人知道如何解决它,那就接受吧!:) ??

0 投票
1 回答
667 浏览

c++ - 如何使用opencv(c ++)分割光滑表面上的异常

我有一个光滑表面的图像: 在此处输入图像描述

我的目标是检测该图像上的异常情况。我在这里向您展示了带有明显异常的相同图像: 在此处输入图像描述

正如我们从上面的图像中看到的那样,异常的对比度很差(或者至少不是最好的),而且它们的形状、对比度、方向也在从图像到图像的变化......我试图通过使用 tophat 来增加异常对比度过滤。结果在这里: 在此处输入图像描述 现在我的异常在图像上更加明显,我想将它们从图像中分割出来。目的是对图像进行二值化并使用 connectedComponents 函数来计算异常的区域、尺寸、位置......

你建议什么样的细分?二值化图像的最佳方法是什么?我是否应该使用 tophat 过滤来增加异常对比度,还是应该尝试直接从第一张图像中分割异常?

0 投票
0 回答
38 浏览

machine-learning - 如何使用(学习数据准备)多层感知器进行异常检测?

我的任务是使用机器学习进行异常检测。我有数据作为销售计数信息,如下所示:

我根据想法对学习集生成器进行了编码,以将某些产品销售计数转换为数组{ 5, 6, 5, 10, 4, ... },计算平均值(假设为5),将数组转换为与平均值的百分比差异{ 0%, 20%, 0%, 100%, -20%, ... },所以如果数组不包含高于 5% 的模块值,则行中没有异常。我知道我可以使用最简单的自制函数来检查这一点,但我一项任务要为此使用机器学习。

我的生成器正在制作像 { 1%, 3%, -2%, 5%, 1%, ...} 这样的序列,并将它们标记为good。这样它就产生了大约 1k 个好的序列。在这个生成器开始通过修改好的序列来生成异常序列之后:{ 24%, 3%, -2%, 5%, 1%, ... }, { -24%, 3%, -2%, 5%, 1%, ...}, { 1%, 24%, -2%, 5%, 1%, ... }, { 1%, -24%, -2%, 5%, 1%, ...}, ..., { 1%, 3%, -2%, 5%, -100% }

后来我将这个百分比转换为 [0, 1] 范围并馈送到多层感知器,第二层有 128 个神经元,第三层有 32 个神经元,输出有 2 个(良好或异常)。学习后,我得到了大约50%的识别率,这非常糟糕。

然后我修改了我的生成器以生成 1k个像{ 1%, 3%, -2%, 5%, 1%, ...}这样的好序列和 1k个像{ 25%, 50%, -60%, 40%,-80%,...}。识别率仍然在50%左右

哪种方式可以生成学习集,所以后面的网络会告诉我们{ 1%, 3%, -2%, 5%, 1%, ...}好的,并且{ 1%, -24%, - 2%, 5%, 1% , ...}不好

0 投票
1 回答
312 浏览

ddos - 实时异常检测包

有人知道用于 DDOS 和隧道的 Netflow 异常检测的任何开源代码吗?我是这个领域的新手。我在 github 上确实发现很少,但是任何有更多经验的人都可以提供建议。

只是想尝试一些来了解它们是如何工作的,所以 python 或 r 或 c++ 语言都可以