论文部分内容阅读
关键性能指标(Key Performance Indicators,KPI)来自于系统日志、网页访问量或者其它数据源。对KPI数据进行分析并标记系统在何时发生异常,然后利用其时间序列的规律性对系统异常进行预测,能够帮助运维人员提前发现未知风险,减少因系统异常带来的损失。然而,由于KPI数据中的异常数据很少,故障类型又具有多样性,同时KPI会随着时间呈现出周期性与稳定性波动,这对设计一个高效的具有较强泛化能力的异常检测模型提出很大的挑战。本文从多维度特征提取和异常检测模型构建等方面对单维度的KPI异常检测方法进行研究,目的是找到有效的特征提取方式和异常检测算法,提高异常检测模型的准确率和泛化能力,从而进一步增强运维人员对程序或系统故障的应对能力。本文在对KPI数据特点、小波分析以及XGBoost等相关理论和技术进行分析和研究的基础上,对基于多维特征提取和XGBoost的KPI异常检测技术进行了深入研究。完成的主要工作如下:首先设计了基于多维特征提取和XGBoost的KPI异常检测框架,该框架给出了 KPI异常检测的整个过程,旨在提高KPI异常检测模型在各种类型的单维度KPI数据上的异常检测准确率;然后定义了单维度KPI时间序列的统计特征、拟合特征和原始特征,统计特征包括凹凸性、一阶差分和占据比,拟合特征包括峰态系数、变异系数、移动平均线、差分移动平均线和指数加权移动平均线,这些特征能够很好地反映数据的离散程度、变化趋势、前后关联和隐含特性;接着给出了基于主成分分析和小波的多维特征提取方法,并将本文提出的特征提取方法与其他的一些相关方法进行了实验对比,验证了该方法的有效性,该方法使用主成分分析对初次提取的特征进行降维以避免特征间的线性干扰,同时利用小波对降维后的数据按照时序模式进行分解以进一步提取出数据的非平稳特征;其次提出了基于改进XGBoost的KPI异常检测算法,该算法使用SMOTE过采样和随机欠采样技术对提取的特征集进行了样本均衡化处理,有利于模型对样本数据的学习。构建了基于XGBoost的KPI异常检测模型,采用人工鱼群算法对XGBoost的学习率、决策树的最大深度、最小叶子节点样本权重和正则化权重进行参数寻优,保证寻优后的参数组合为全局最优组合,进一步提高了 XGBoost的异常检测效果:最后选取公开的数据集,将本文提出的基于多维特征提取和XGBoost的KPI异常检测算法与其他的一些相关方法进行了实验对比,实验结果表明,本文方法在多种类型KPI序列上均能准确地识别序列中的异常点,具有较高的查全率、查准率和AUC分数,具有较好的泛化能力。