用于异常检测的无监督学习

数据挖掘 机器学习 深度学习 时间序列 无监督学习 异常检测
2022-01-25 21:41:03

我已经开始在 Python 中进行异常检测。我的数据集是时间序列数据集。一些传感器正在收集数据,这些传感器记录和收集半导体制造机器上的数据。

我的数据集如下所示:

ContextID   Time_ms Ar_Flow_sccm    BacksGas_Flow_sccm
7289973 09:12:48.502    49.56054688 1.953125
7289973 09:12:48.603    49.56054688 2.05078125
7289973 09:12:48.934    99.85351563 2.05078125
7289973 09:12:49.924    351.3183594 2.05078125
7289973 09:12:50.924    382.8125    1.953125
7289973 09:12:51.924    382.8125    1.7578125
7289973 09:12:52.934    382.8125    1.7578125
7289999 09:15:36.434    50.04882813 1.7578125
7289999 09:15:36.654    50.04882813 1.7578125
7289999 09:15:36.820    50.04882813 1.66015625
7289999 09:15:37.904    333.2519531 1.85546875
7289999 09:15:38.924    377.1972656 1.953125
7289999 09:15:39.994    377.1972656 1.7578125
7289999 09:15:41.94     388.671875  1.85546875
7289999 09:15:42.136    388.671875  1.85546875
7290025 09:18:00.429    381.5917969 1.85546875
7290025 09:18:01.448    381.5917969 1.85546875
7290025 09:18:02.488    381.5917969 1.953125
7290025 09:18:03.549    381.5917969 14.453125
7290025 09:18:04.589    381.5917969 46.77734375

我要做的是对每个参数列分别应用一些无监督学习技术,并找出其中可能存在的任何异常。ContextID更像是一个产品编号

我想知道哪些无监督学习技术可用于手头的此类任务。

谢谢

2个回答

您可以使用基于密度的方法(例如局部异常值因子)来执行此操作。

如果您想独立于其他列识别每列中的异常值,那么您可以将此方法分别应用于每列。(请注意,这不同于同时考虑所有列来识别异常数据点。)

例如,您可以使用基于聚类分析的异常值检测或自动编码器。请看这篇文章:时间序列的异常检测,以获得关于时间序列的类似答案。