Closed wanghuaway closed 5 years ago
1)典型的异常检测场景包括,周期性的波动数据,关心突变的数据的数据等
这两种数据的算法上关注的点不同,周期性数据关注同比历史数据,关心突变的关注环比近期数据,
请问按照Metis的思路,是不是经过同样的特征层都可以达到比较好的效果?
我理解应该有个算法选择的过程,是不是GBDT、XGBoost、RF这种树形模型已经达到了这种效果?
2)样本库里的窗口都取180分钟是不是有点不合适?不同的场景考虑的窗口应该不是一样的吧,请问内部是不是有时序标注的工具结合起来使用
非常感谢~
学习中~3q
可重用:其他运维团队的人员可以直接使用这个已经训练好的模型,可以不做任何额外的操作就可以重新使用。只要确定了输入,就可以输出相应的结果。
1)典型的异常检测场景包括,周期性的波动数据,关心突变的数据的数据等 这两种数据的算法上关注的点不同,周期性数据关注同比历史数据,关心突变的关注环比近期数据, 请问按照Metis的思路,是不是经过同样的特征层都可以达到比较好的效果? 我理解应该有个算法选择的过程,是不是GBDT、XGBoost、RF这种树形模型已经达到了这种效果? 2)样本库里的窗口都取180分钟是不是有点不合适?不同的场景考虑的窗口应该不是一样的吧,请问内部是不是有时序标注的工具结合起来使用 非常感谢~
(1)周期波动类,突变型数据,都可以做出相应的特征。例如同比特征,环比特征,只要特征做得好,其实模型是可以做到判断的,其实并不需要每次都选择一个模型来做。 (2)内部使用的时候,XGBoost,GBDT,RF这类模型是针对所有时间序列来做的,效果达到内部使用的要求。目前并没有对外开放时间序列分类或者聚类的工具。 (3)窗口选择180分钟有一定的局限性,但是这个也是考虑线上的计算压力。从算法的角度来讲,最理想的是 14 天的全部数据,但是在百万时间序列的量级上,就要考虑窗口的长度了。
可重用:其他运维团队的人员可以直接使用这个已经训练好的模型,可以不做任何额外的操作就可以重新使用。只要确定了输入,就可以输出相应的结果。
1)典型的异常检测场景包括,周期性的波动数据,关心突变的数据的数据等 这两种数据的算法上关注的点不同,周期性数据关注同比历史数据,关心突变的关注环比近期数据, 请问按照Metis的思路,是不是经过同样的特征层都可以达到比较好的效果? 我理解应该有个算法选择的过程,是不是GBDT、XGBoost、RF这种树形模型已经达到了这种效果? 2)样本库里的窗口都取180分钟是不是有点不合适?不同的场景考虑的窗口应该不是一样的吧,请问内部是不是有时序标注的工具结合起来使用 非常感谢~
(1)周期波动类,突变型数据,都可以做出相应的特征。例如同比特征,环比特征,只要特征做得好,其实模型是可以做到判断的,其实并不需要每次都选择一个模型来做。 (2)内部使用的时候,XGBoost,GBDT,RF这类模型是针对所有时间序列来做的,效果达到内部使用的要求。目前并没有对外开放时间序列分类或者聚类的工具。 (3)窗口选择180分钟有一定的局限性,但是这个也是考虑线上的计算压力。从算法的角度来讲,最理想的是 14 天的全部数据,但是在百万时间序列的量级上,就要考虑窗口的长度了。
非常感谢,我还有个疑问,现在Metis的标注不太好用啊,不能分段标记,有没有类似百度的Curve这种标注工具?
可重用:其他运维团队的人员可以直接使用这个已经训练好的模型,可以不做任何额外的操作就可以重新使用。只要确定了输入,就可以输出相应的结果。
1)典型的异常检测场景包括,周期性的波动数据,关心突变的数据的数据等 这两种数据的算法上关注的点不同,周期性数据关注同比历史数据,关心突变的关注环比近期数据, 请问按照Metis的思路,是不是经过同样的特征层都可以达到比较好的效果? 我理解应该有个算法选择的过程,是不是GBDT、XGBoost、RF这种树形模型已经达到了这种效果? 2)样本库里的窗口都取180分钟是不是有点不合适?不同的场景考虑的窗口应该不是一样的吧,请问内部是不是有时序标注的工具结合起来使用 非常感谢~
(1)周期波动类,突变型数据,都可以做出相应的特征。例如同比特征,环比特征,只要特征做得好,其实模型是可以做到判断的,其实并不需要每次都选择一个模型来做。 (2)内部使用的时候,XGBoost,GBDT,RF这类模型是针对所有时间序列来做的,效果达到内部使用的要求。目前并没有对外开放时间序列分类或者聚类的工具。 (3)窗口选择180分钟有一定的局限性,但是这个也是考虑线上的计算压力。从算法的角度来讲,最理想的是 14 天的全部数据,但是在百万时间序列的量级上,就要考虑窗口的长度了。
非常感谢,我还有个疑问,现在Metis的标注不太好用啊,不能分段标记,有没有类似百度的Curve这种标注工具?
后续我们会逐步完善这些功能,谢谢您提出来的建议。
ewma实现中的ucl是啥含义,感觉和3sigma很类似
PredictRate率值检测只应用了3sigma方法,这个怎么考虑的
ewma实现中的ucl是啥含义,感觉和3sigma很类似
https://github.com/Tencent/Metis/blob/master/time_series_detector/algorithm/ewma.py
这里是参考了统计学里面的控制图理论(Control Chart Theory),在 Control Chart Theory 里面,有常见的几种方法:
它们的本质都是计算平均线,然后计算出上下界,超出上下界就算异常。其中,
这里的 ucl 和 lcl 分别是上下界的意思,也就是 upperbound 与 lowerbound。
学件里的xgb_default_model是不是用sample_dataset.sql里的数据训练出来的
学件里的xgb_default_model是不是用sample_dataset.sql里的数据训练出来的
default_model是使用内部更多的样本训练出来的,sample_dataset中只有300条样本,是做数据示例
学件里的xgb_default_model是不是用sample_dataset.sql里的数据训练出来的
default_model是使用内部更多的样本训练出来的,sample_dataset中只有300条样本,是做数据示例
这模型是不是包含了大部分时序的异常基本够用了,哈哈
学件里的xgb_default_model是不是用sample_dataset.sql里的数据训练出来的
default_model是使用内部更多的样本训练出来的,sample_dataset中只有300条样本,是做数据示例
这模型是不是包含了大部分时序的异常基本够用了,哈哈
对互联网行业的KPI业务数据指标基本是够用了 当然业务观点也可以存在个性化,所以也可以支持用自己的业务打标签,用自己的样本来训练模型
在 AIOps 的白皮书 0.6 版本里面,通常来说要构建一个智能运维平台,需要运维工程师,开发工程师,算法工程师三个角色。而在实际环境中,由于 AIOps 概念的提出是在 2017 年前后开始的,就出现了机器学习的人不了解运维场景,运维人员不知道该怎么样使用数据等难题。即使有相同的数据,不同的机器学习人员也有不同的处理方法,在效果上面很可能千差万别。而在公司层面,数据的隐私和安全一直是需要关注的问题,很可能面临着数据不能开放和不能对外等问题。就像在医疗领域,大医院拥有海量数据,社区诊所数据稀少,但是很难做到大医院把用户的数据对外开放,毕竟数据的安全和隐私一直是很重要的问题。
基于以上种种困难,在 2016 年南京大学的周志华老师定义了学件的概念,学件 = 模型 + 规约。其模型有可能是普通的机器学习模型,也有可能是特殊的某种深度学习模型。学件可以存在于机器学习的各个领域,无论是医疗,银行,安全,游戏,运维等。目前 Metis 就是基于运维场景的学件集合。
在 Metis 的时间序列异常检测上,学件就是基于运维人员的海量运维经验,通过机器学习的方式来进行固化。像检测接口的约定,数据格式的约束(例如时间间隔, 前后三小时窗口),通用性的规定规范等这些就称为学件中的规约。目前基于运维人员标注的数据,使用特征工程和模型训练等机器学习方法,可以将这些标注数据形成机器学习学件,然后对外提供。提供这个模型的时候,其实内部用来训练的数据并没有直接对外,对外提供的只是特征层和模型层。
在 Metis 的时间序列异常检测上,
模型满足了以上的概念:
像检测接口的约定,数据格式的约束(例如时间间隔, 前后三小时窗口),通用性的规定规范等这些就称为学件中的规约。
使用Metis 时间序列异常检测学件给大家带来的好处:
难以适应环境变化;难以了解模型;难以获得专家级结果;难以避免数据泄露,保障用户的隐私和安全;