冷却过程数据中的异常检测,没有准确的标签

数据挖掘 Python 时间序列 异常检测
2022-03-06 02:55:22

我有一个数据集,我在其中查看过程的冷却。起始温度可能在 580 到 180 度之间变化。我知道冷却系统在某些时候发生了故障(参见图中的示例),我试图预测这种故障。

由于数据完全没有标记(故障本身也必须手动检测),我在其上运行了无监督算法。

为了对数据有个概念,这里有一张图,其中包括一个无监督学习示例的结果。上图显示了我为每个过程提取的两个参数,它们的持续时间各不相同。与底部图中位置相似的颜色来自仅使用 30 分钟数据的无监督学习算法,如果可用时间少于 30 分钟,则尽可能多地附加最后一个值。

上图显示了工艺的目标温度,中图显示了导数的最小值,清楚地表明在 800 号工艺附近冷却系统已损坏。 不同的颜色来自使用 AgglomerativeClustering、Ward 和 8 个集群作为目标的无监督聚类

三个集群的示例结果如下所示(以了解数据的形状)

观测 30 分钟内不同星团的温度

据了解,我已经使用各种参数更改了AgglomerativeClusteringBirchDBSCAN之间的算法。

几乎所有集群都通过在问题发生期间显示新的或不常用的集群来表明冷却系统发生故障(请参见此处的集群 4 和 7),但它们都没有表现出预测故障的类似行为。

这导致我提出以下问题:

  1. 是否可以选择使用(显然是无监督的)神经网络的相同程序,如果是,如何(我在 python 中工作)?

  2. 还有什么其他方法可以处理这个问题?

  3. 在什么时候我可以说预测故障(不仅仅是检测它)不包含在数据中?我认为这是真的,因为过程非常不同,并且由于系统即将发生故障而导致的任何微小的冷却变化都将未被发现,因为其他参数具有更大的影响,但我非常感谢对此的任何意见。

编辑:示例数据

   [[565. , 565. , 564. , 555. , 542. , 527. , 511.5, 496. , 460. ,
    434. , 413. , 393. , 376. , 359. , 344. , 329. , 315. , 303. ,
    291. , 279. , 268. , 258. , 249. , 239. , 231. , 222. , 214. ,
    207. , 200. , 193. ], #would go on with 188,...
   [540. , 540. , 539. , 531. , 520. , 508. , 496. , 494. , 456. ,
    436. , 420. , 404. , 390. , 377. , 364. , 353. , 341. , 331. ,
    321. , 312. , 303. , 295. , 286. , 279. , 271. , 263. , 263. ,
    263. , 263. , 263. ], #the process was ended too early, 263 got repeated to match the format
   [530. , 530. , 529. , 520. , 509. , 495. , 455. , 427. , 405. ,
    384. , 365. , 348. , 332. , 317. , 302. , 288. , 275. , 263. ,
    252. , 242. , 232. , 222. , 213. , 204. , 196. , 188. , 181. ,
    174. , 168. , 161. ], #would go on with 154
   [181. , 174. , 165. , 158. , 152. , 147. , 146. , 141. , 137. ,
    132. , 128. , 125. , 121. , 118. , 114. , 111. , 109. , 106. ,
    103. , 101. ,  98. ,  96. ,  94. ,  92. ,  91. ,  89. ,  87. ,
     85. ,  84. ,  82. ]] #would go on with 81
0个回答
没有发现任何回复~