【2021 高校大数据挑战赛-智能运维中的异常检测与趋势预测】1 赛后总结与分析

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 对2021高校大数据挑战赛中智能运维异常检测与趋势预测赛题的赛后总结与分析,涉及赛题解析、不足与改进,并提供了异常检测、异常预测和趋势预测的方法和模型选择的讨论。

相关链接

1 题目

异常检测(异常诊断/发现)、异常预测、趋势预测,是智能运维中首当其冲需要解决的问题。这类问题是通过业务、系统、产品直接关联的 KPI 业务指标进行分析诊断,指标主要包括用户感知类(如页面打开延时)、服务性能(如用户点击量)、服务器硬件健康状况(如 CPU 利用率、内存使用率)等关键性能指标。

不同场景的运维,分析的指标种类差异较大,但都具备时序性特点,不同场景的 KPI 指标,以毫秒、秒、分钟、小时、天为时间间隔的数据序列都会出现, 有些复杂场景的业务,往往会混合多个时间间隔的数据,但均为随时间变化而变化的时序数据。

本次赛题以运营商基站 KPI 的性能指标为研究数据,数据是从 2021 年 8 月28 日 0 时至 9 月 25 日 23 时共 29 天 5 个基站覆盖的 58 个小区对应的 67 个 KPI 指标。其中,选取三个核心指标进行分析。

第一个指标:小区内的平均用户数,表示某基站覆盖的小区一定时间内通过手机在线的平均用户人数;

第二个指标:小区 PDCP 流量,通过小区 PDCP 层所发送的下行数据的总吞吐量(比特)与 小区PDCP 层所接收到的上行数据的总吞吐量(比特)两个指标求和得到,表示某基站覆盖的小区在一定时间内的上下行流量总和;

第三个指标:平均激活用户数,表示某基站覆盖的小区在一定时间内曾经注册过无线网络的平均人数。

针对上面三个指标,完成如下 3 个问题:

问题1异常检测:利用附件的指标数据,对所有小区在上述三个关键指标上

1.png

检测出这 29 天内共有多少个异常数值,其中异常数值包含以下两种情况:异常孤立点、异常周期。

汇总所有小区的异常情况填写如下表格。

2.jpeg

问题2 异常预测:针对问题 1 检测出的异常数值,通过该异常数值前的数据建立预测模型,预测未来是否会发生异常数值。异常预测模型除了考虑模型准确率以外,还需要考虑两点:1)模型输入的时间跨度,输入数据的时间跨度越长, 即输入数据量越多,模型越复杂,会增加计算成本和模型鲁棒性,降低泛化能力; 2)模型输出时间跨度,即预测的时长,如果只能精准预测下一个时刻是否发生异常,在时效性上则只能提前一个小时,时效性上较弱。

问题 3 趋势预测:利用 2021 年 8 月 28 日 0 时至 9 月 25 日 23 时已有的数据,

预测未来三天(即 9 月 26 日 0 时-9 月 28 日 23 时)上述三个指标的取值。并完

整填写附件 2 中的预测值表格,单独上传到竞赛平台。

说明:

(1) 异常孤立点,在一段时间内仅有 1 个异常值;异常周期,在一段时间内有多个异常值。(时间范围、异常值范围需要参赛者自行设定并说明理由)。

(2) 在异常预测和趋势预测时,可借用其他指标作为辅助输入特征建模,如预测第 i 个指标第 t 时刻的数值或是否异常,可使用第 j 个指标 t 时刻前的数值作为输入,但不能以第 j 个指标第 t 时刻及之后的数值作为输入。

(3) 异常预测和趋势预测建模时,需考虑每个小区、基站之间的差异。可以针对每个小区、基站单独建模,也可以统一建模,最终以模型评价指标来评估。

(4) 第一题和第二题以 F1 值(2精确率召回率/(精确率+召回率))来评估模型优劣,第三题以 MAPE(平均绝对百分比误差)作为模型评估指标。

2 赛题解析

2.1 宏观的角度了解相关知识

第一问是一个异常检测问题、第二问是一个异常预测问题,可以看成是分类问题、第三问是一个时间序列KPI指标预测问题。

(1)对于异常检测,异常检测的可以考虑三种方式,第一种采用统计思维的方式,比如3-sigma和box-plot方式;第二种直接检测放,比如独立树IForest、RRCF、高斯混合GMM;第三种间接检测法,具有周期性的KPI,在检测前可通过先拟合波形,并与真是的指标值做对比,根据比较结果判断是否异常。拟合的方法比如机器学习、深度学习等等方式。

(2)对于时间序列的异常预测,可以做成分类问题,按时间序列预测的思路构造数据集,采用分类模型去做。重点有两个,一是选择小区去建模,还是选择整体数据去建模,二是怎么去构造数据集的标签。是选择一个指标的异常标签为准,还是取四个指标异常标签的并集或交集。

(3)对于时间序列的指标预测,重点有两点,一是在构造训练数据集,二是怎么去预测,是按照每个小区每个指标的预测,还是全部小区四个指标一块预测,即针对整体数据建模,还是针对小区和每个指标建模。完整的框架如下思维导图。

3.png

2.2 问题一

代码实现见【2021 高校大数据挑战赛-智能运维中的异常检测与趋势预测】2 方案设计与实现-Python
题目要求,需要对四个指标进行异常检测,并统计异常点个数和异常周期个数。将四个指标提取出来单独作为一个表来分析。

通过对数据分析,可以知道,数据是按时间点来排列的,每个时间点有58条数据,对应58个小区。如下图所示。有5个基站,每个小区对应一个基站,一个基站可以对应多个小区。

4.png

我的解决方案是使用ADTK异常检测工具包,对每个小区的时间序列进行异常检测,即分出来58个表来,分别对每个表的4个指标进行检测。取多种算法的并集。

第一种算法对第一个小区的四个指标的检测结果如下。

5.png

选择第一个指标为例,当多个算法的检测结果取并集后,检测的数量也变多。

6.png

2.3 问题二

代码实现见【2021 高校大数据挑战赛-智能运维中的异常检测与趋势预测】2 方案设计与实现-Python

对于预测未来的异常,我是将该问题看成是一个分类问题,针对所有数据进行建模。建立的模型是将小区ID、基站ID、四个指标作为模型输入,输出0或1。那首先需要去构造一个有标签的数据集。然后在训练之前,按照预测的目的,构造训练集,用一个样本对应下一个小样的标签构造成训练集,如下图所示。具体对应是对应下一个样本标签,还是对应下下个样本标签,这就是一个预测时长的概念问题。

7.png

(1)构造数据集

要构造一个有标签的数据集,思路是够每条的数据的四个指标都分别打一个标签,再取四个指标标签的或,作为每条样本数据的最终标签,每个先将整个是数据集按小区编号,分成58个表,每个表是按照时间顺序的,第一个小区的如下图所示,仔细看community_id是小区编号,base_id是基站编号,每条序列是按照时间序列排列的。

8.png


对每58个表中每一个表的四个进行异常检测,有有异常的就编码为1,无异常编码为0。直到把四个指标都标注完。再取四个指标标签的或。即只要一个指标异常,这一条数据就是异常点,并标签编码为1。反之,四个指标都不异常,该条数据就不异常,编码为0。最后把58个小区的数据再合并,按照最先的排序进行排列。

9.png

注意图中的标签0.0和1.0是浮点数而已,并不影响标注。

(2)构造训练集

初始一个预测长度和时间步长。这两个是超参数,是需要根据数据分析得出来的。不同的选择可能会导致模型不收敛。

预测长度指的是数据集所对应的标签是间隔了几个样本,比如下图的左边是间隔1个,预测长度就是1,右边是间隔2个,预测长度是2。时间步长,类似于窗口大小,选多少个样本为一个Batch。如下图中,有5个样本,那时间步长为5。

10.png

(3)模型选择

我选择的深度学习方式的LSTM拟合模型。

(4)模型评价

题目要求F1。F1 的计算公式如下

准确率(Precision):P=TP/(TP+FP)。通俗地讲,就是预测正确的正例数据占预测为正例数据的比例。
召回率(Recall):R=TP/(TP+FN)。通俗地讲,就是预测为正例的数据占实际为正例数据的比例
KaTeX parse error: Can't use function '$' in math mode at position 24: …rac{2×P×R}{P+R}$̲

2.3 问题三

代码实现见【2021 高校大数据挑战赛-智能运维中的异常检测与趋势预测】2 方案设计与实现-Python

问题三和问题二,我选择的模型是一样的,区别在于数据集的标签不一样,在此问题中,训练集中的标签是未来的数据。即建立的模型是将小区ID、基站ID、四个指标作为模型输入,输出四个指标。

11.png

选择部分数据拟合效果,如下图所示

12.png

3 不足与改进

(1)问题一

对于异常检测结果的好坏,我们没有找到一个合适的评价指标。我们选择了多种算法的并集的原因是因为在第二问中,如果取交集,得到的数据集模型没法收敛,没法拟合,是没有规律的,这一点不知道是否正确。

(2)问题二

我是选择对整体数据进行建模,就是一个多变量的预测问题,只想到了用LSTM去建模,并没有想到其他方法。比如ARIMA模型,我并不了解这个算法能否做多变量的预测。其实可以做单变量的预测,对每个小区进行建模,但是我为了与第三问保持模型的统一,就没有选择这种方法。就是单独建立58个模型,复杂度也不是特别高,这种方法有可能预测结果更可靠。

(3)问题三

这是一个时间序列预测问题,也是同样的对整个数据集进行建模,和第二问一样,也是一个多变量预测问题,没有想到有什么模型去解决。将这个问题视为多变量预测问题的原因是有两个,一是每条数据中,考虑到了有小区编号、基站编号,可以将这两者变量作为特征,不需要单独去考虑对小区进行建模。二是也考虑过选择对每个小区去建模,那还需要对四个指标分别建模,总共就需要训练4*58个模型,这模型的复杂度就很高。对未来三天数据的预测,操作起来很久麻烦。需要对每个小区的序列进行预测,再合并成提交的文件。

(4)整个异常检测的方法论,我还并没有完全掌握,都是现学现卖,在问题的分析中,少了很多分析过程和相应方法的使用。比如对序列周期的检测,这块虽然做了,但是是队友做的,我并不能保证这块是否有必要,以及方法是否正确。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
1月前
|
数据可视化 搜索推荐 大数据
基于python大数据的北京旅游可视化及分析系统
本文深入探讨智慧旅游系统的背景、意义及研究现状,分析其在旅游业中的作用与发展潜力,介绍平台架构、技术创新、数据挖掘与服务优化等核心内容,并展示系统实现界面。
|
2月前
|
数据采集 人工智能 分布式计算
ODPS在AI时代的发展战略与技术演进分析报告
ODPS(现MaxCompute)历经十五年发展,从分布式计算平台演进为AI时代的数据基础设施,以超大规模处理、多模态融合与Data+AI协同为核心竞争力,支撑大模型训练与实时分析等前沿场景,助力企业实现数据驱动与智能化转型。
295 4
|
2月前
|
JSON 大数据 API
巧用苏宁易购 API,精准分析苏宁易购家电销售大数据
在数据驱动的电商时代,精准分析销售数据能助力企业优化库存、提升营销效果。本文详解如何利用苏宁易购API获取家电销售数据,结合Python进行数据清洗与统计分析,实现销量预测与洞察提取,帮助企业降本增效。
78 0
|
1月前
|
存储 SQL 分布式计算
终于!大数据分析不用再“又要快又要省钱”二选一了!Dataphin新功能太香了!
Dataphin推出查询加速新功能,支持用StarRocks等引擎直连MaxCompute或Hadoop查原始数据,无需同步、秒级响应。数据只存一份,省成本、提效率,权限统一管理,打破“又要快又要省”的不可能三角,助力企业实现分析自由。
152 49
|
1月前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
1月前
|
数据采集 自动驾驶 机器人
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
117 1
|
1月前
|
数据可视化 大数据 数据挖掘
基于python大数据的招聘数据可视化分析系统
本系统基于Python开发,整合多渠道招聘数据,利用数据分析与可视化技术,助力企业高效决策。核心功能包括数据采集、智能分析、可视化展示及权限管理,提升招聘效率与人才管理水平,推动人力资源管理数字化转型。
|
1月前
|
机器学习/深度学习 搜索推荐 算法
基于python大数据的口红商品分析与推荐系统
本研究基于Python大数据技术,构建口红商品分析与推荐系统,旨在解决口红市场产品同质化与消费者选择困难问题。通过分析颜色、质地、价格等多维度数据及用户行为,实现个性化推荐,提升购物体验与品牌营销效率,推动美妆行业数字化转型,具有重要现实意义与市场价值。
|
2月前
|
存储 人工智能 算法
Java 大视界 -- Java 大数据在智能医疗影像数据压缩与传输优化中的技术应用(227)
本文探讨 Java 大数据在智能医疗影像压缩与传输中的关键技术应用,分析其如何解决医疗影像数据存储、传输与压缩三大难题,并结合实际案例展示技术落地效果。
|
25天前
|
机器学习/深度学习 传感器 分布式计算
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
104 14

热门文章

最新文章