目前我正在为我的电子商务服务器构建我的监控服务,主要关注CPU / RAM使用情况。这可能是对时间序列数据的异常检测。
我的方法是构建LSTM神经网络以预测图表趋势中的下一个CPU / RAM值和与STD(标准偏差)值进行比较乘以某个数字(当前为10)
但在现实生活中,它取决于许多不同的条件,例如:
1-维持时间(此时“异常”不是“异常”)
2-休息日,节假日等的销售时间,RAM / CPU使用率增加是正常的,课程
3-如果CPU / RAM减少的百分比在3次观察中相同:5分钟,10分钟和10分钟。 15分钟 - >异常。但是如果5分钟减少50%,但是10分钟它没有减少太多(-5%〜+ 5%) - >不是“异常”。
目前,我在公式上检测到异常,如下所示:
isAlert = (Diff5m >= 10 && Diff10m >= 15 && Diff30m >= 40)
其中Diff是绝对值的不同百分比。
不幸的是,我没有保存用于构建神经网络的“纯”数据,例如,当它检测到异常时,我修改它不再是异常。
我想在模型的输入中添加一些属性,例如 isMaintenance,isPromotion,isHoliday等,但有时会导致过度拟合。
我也希望我的NN可以随时调整基线,例如,当我的服务更受欢迎等时。
这些目标有什么暗示吗?
由于
答案 0 :(得分:0)
我会说异常是一种不寻常的结果,即在给定输入的情况下不会产生预期的结果。正如您所知,有一些 的变量会影响CPU和RAM的使用。那么为什么不把它们送到网络呢?这就是机器学习的重点。您的网络将根据销售量,是否存在维护窗口等来预测CPU使用率。
请注意,如果您包含实际销售量,则可能不需要isPromotion
输入。前者是离散输入,仅捕获totalSales
输入
机器学习肯定需要数据。如果你扔掉它,你将不得不重新开始捕获它。至于调整基线,您可以通过增加最近的输入数据来实现这一点。