机器学习与统计判别法:提升时序数据异常监控效率

需积分: 10 23 下载量 39 浏览量 更新于2024-07-18 1 收藏 7.5MB PDF 举报
"AICon2018-《机器学习加持下的时序类数据异常智能监控》分享了在腾讯内部监控系统Monitor中应用机器学习解决时序类数据异常检测的问题,探讨了不同算法的实践和挑战。" 在AICon2018大会上,刘彪作为一名高级工程师,分享了腾讯如何利用机器学习技术对时序类数据进行异常智能监控。时序类数据通常是指随时间变化的数据序列,如服务器性能指标、网络流量、用户行为数据等。腾讯的监控系统Monitor面临的问题是处理海量(250万属性)的数据以及运维成本高、准确性低(仅为6%)的现状,每天需要花费约4万人民币,人均处理200条异常。 为了改进这一状况,团队尝试引入了梯度提升决策树(Gradient Boosting Decision Tree, GBDT)算法。在初步探索中,他们发现多轮训练的结果并不理想。第一轮实验有39%的正类占比,召回率为81%,准确率为96%,精确率为86%,但在实际应用中出现了过多异常。第二轮实验正类占比提升到92%,但同样出现了异常率过高的问题。第三轮实验虽然提高了负样本的数量,但导致了无异常情况的出现,表明模型在识别异常方面存在问题。 GBDT“失败”的主要原因在于样本不全面和正负样本严重不平衡。监控行业的负样本(即正常情况)稀少且难以获取,这直接影响了模型的训练和效果。为了解决这个问题,团队考虑了两种策略:一是通过统计判别法过滤大量正常样本;二是采用无监督学习方法。 统计判别法是一种基于显著性检测的方法,包括Pauta、Chauvenet、Grubbs、Dixon和T-Test等。这些方法在正态分布假设下,通过比较数据点与均值的偏差来识别异常。例如,Grubbs算法利用标准差和特定临界值来判断数据点是否偏离正常范围。在实践中,团队结合当前时刻点的值、前后N分钟的环比、同比、周同比值以及均值和标准差来应用Grubbs算法,优化异常检测。 尽管在初步应用中遇到了挑战,但这个分享揭示了在监控系统中运用机器学习解决时序类数据异常检测的重要性,同时也强调了在样本选取、正负样本平衡以及统计方法选择等方面的注意事项。未来的工作可能包括进一步优化模型,改进样本收集策略,以及探索更适应监控场景的无监督或半监督学习方法,以提高监控系统的准确性和效率。