目前我正在为我的电子商务服务器构建我的监控服务,主要关注 CPU/RAM 的使用。这可能是对时间序列数据的异常检测。
我的方法是构建 LSTM 神经网络来预测图表趋势上的下一个 CPU/RAM 值,并与 STD(标准偏差)值乘以某个数字(当前为 10)进行比较
但在现实生活条件下,它取决于许多不同的条件,例如:
1- 维护时间(此时“异常”不是“异常”)
2- 休息日、节假日等销售时间,RAM/CPU 使用率增加是正常的,当然
3- 如果 CPU/RAM 减少的百分比在 3 次观察中相同:5 分钟、10 分钟和 15 分钟 -> 异常。但是如果 5 分钟减少了 50%,但 10 分钟并没有减少太多(-5% ~ +5%)-> 不是“异常”。
目前我在公式上检测到异常,如下所示:
isAlert = (Diff5m >= 10 && Diff10m >= 15 && Diff30m >= 40)
其中 Diff 是绝对值的不同百分比。
不幸的是,我没有保存我的“纯”数据来构建神经网络,例如,当它检测到异常时,我修改它不再是异常。
我想为模型的输入添加一些属性,例如isMaintenance、isPromotion、isHoliday 等,但有时会导致过度拟合。
我还希望我的 NN 可以随着时间的推移调整基线,例如,当我的服务更受欢迎时等。
这些目标有什么提示吗?
谢谢