从时间序列数据建立基线的算法

时间:2018-05-21 20:46:08

标签: algorithm machine-learning time-series baseline

在我的应用程序中,我收集很多指标:硬件/本机系统指标(例如CPU负载,可用内存,交换内存,网络IO,包括发送/接收的数据包和字节数等) 。)以及JVM指标(垃圾收集,堆大小,线程利用率等)以及应用级指标(仅对我的应用有意义的工具,例如每分钟#订单等)。

在整个一周,一个月,一年中,我都会看到这些指标中的趋势/模式。例如,当cron作业全部在午夜开始时,我会看到CPU和磁盘在生成报告时发生颠簸等等。

我正在寻找一种评估/评估指标的方法,如健康/正常与不健康/异常,但需要考虑这些模式。例如,如果CPU每晚午夜(+/- 5分钟)飙升,应该考虑#34; 正常"而不是引发警报。但是,如果在低潮期间CPU引脚并且#34;在当天,比如说在上午11点到中午之间,这肯定会引发一些危险信号。

我能够将我的指标存储在时间序列数据库中,如果这有助于启动这个分析过程,但我不知道我可以利用哪些算法,方法和策略最模糊的线索建立这些周期性基线"作为时间的函数。显然,这样的系统需要预先播种,甚至需要使用映射到正常/异常值的历史数据进行训练(这就是​​我学习时间序列数据库作为底层商店的原因)但这是对我来说是一个新的领域,我甚至不知道如何开始谷歌搜索,以便在搜索结果中找回有意义/相关/受过教育的解决方案候选人。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以将每个指标(CPU负载,可用内存,交换内存,网络IO)与每个指标的日期和时间分类为坏或好。 在给定时间范围内提供一组数据,包括度量值以及它们是好还是坏。使用70%的数据训练模型,并在数据中使用好的和坏的答案。 然后使用其他30%的数据测试训练的模型,而无需回答您是否从模型中获得预测结果(好的,坏的)。您可以使用分类算法。