一种基于无监督学习的时间序列异常检测方法及系统技术方案

技术编号:27936230 阅读:20 留言:0更新日期:2021-04-02 14:16
本发明专利技术提供一种基于无监督学习的时间序列异常检测方法,包括:S01.获取服务访问记录,构建用于比较的时间序列;S02.构建时间序列,选择设定的时间段,对用户访问服务的次数做统计,形成时间序列;S03.异常操作时间序列检测,采用局部异常因子算法对步骤S02中的时间序列表做局部异常因子检测,采用动态时间规整距离计算序列间的距离,并根据距离计算局部异常因子;S04.异常操作筛选。本发明专利技术通过将DTW距离替代局部异常因子算法中的距离算法来对运营商或类似企业内部服务器访问行为进行异常检测,可以只应用一个模型,在没有对用户进行分类的情况下做时间序列的无监督异常检测,不需要区分类型,不需要根据序列的周期性、季节性等特征管理多个模型。

【技术实现步骤摘要】
一种基于无监督学习的时间序列异常检测方法及系统
本专利技术涉及计算机数据安全
,具体来说是一种基于无监督学习的时间序列异常检测方法及系统。
技术介绍
运营商内部有大量的服务器,不同的服务器有各自的作用域,涉及到敏感信息的服务需要更严格的监控,以防止可能存在的攻击或者数据泄露。操作员在访问系统的行为具有时间上的关联性和周期性,可以通过构建时间序列,利用局部异常因子算法,结合DTW,做用户行为时间序列和自己类似的群体之间的比较,达到对敏感信息的访问进行监控和异常检测的目的。如申请号为202011012234.X公开的一种时间序列数据异常检测方法和装置,所述方法包括:获多个时间序列数据,并对多个时间序列数据进行预处理;通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息;根据贡献度信息对时间序列特征进行PCA降维;通过IForest对降维后的时间序列特征进行标注,以构成样本集,其中,样本集包括训练集和测试集;通过训练集训练得到多种分类模型;通过测试集测试每种分类模型的异常检测准确率;获取待检测时间序列数据,并将待检测时间序列数据分别输入每种分类模型,以得到相应的异常检测结果;根据每种分类模型的异常检测准确率和异常检测结果对多种分类模型进行投票融合,以确定最终的异常检测结果。该方法为有标注的监督学习,通过提取时间序列的统计特征,结合标注进行监督学习训练,现有的时间序列的异常检测主要有:基于历史数据的统计检测,这种方法会有过多的点被识别成异常点;利用预测加统计的方法,在现实场景中,用户操作可能存在的周期很长,而数据量相对较少,利用这种方法无法准确预测;通过计算时间序列的周期性特征来挖掘机器行为的,但很多场景中本就存在机器行为,适用范围受限;通过抽取时间序列统计特征,利用有监督算法进行分类,这种方法需要更多的人工干预和较多里历史专家经验积累。由于各个岗位的操作行为必然有所不同,岗位内部也可能有着不同的分工,操作员也可能有调岗的情况存在,所以对某一特定岗位做时间序列异常检测也很容易造成过多的异常误报,而且大量的时间序列异常检测模型也存在管理困难,应用不便的问题。
技术实现思路
本专利技术所要解决的技术问题在于提供一种有效解决标签样本缺失、准确率低、误报率高问题的基于无监督学习的时间序列异常检测方法。本专利技术通过以下技术手段实现解决上述技术问题的:一种基于无监督学习的时间序列异常检测方法,包括以下步骤:S01.获取服务访问记录,构建用于比较的时间序列;S02.构建时间序列,选择设定的时间段,对用户访问服务的次数做统计,形成时间序列;S03.异常操作时间序列检测,采用局部异常因子算法对步骤S02中的时间序列表做局部异常因子检测,采用动态时间规整距离计算序列间的距离,并根据距离计算局部异常因子;S04.根据步骤S03中计算出的局部异常因子进行筛选,超过阈值的操作为异常操作。本专利技术提供了一种基于无监督学习的行为序列异常检测方法,在现实场景中,用户的操作行为受岗位、工作内容影响,不同的岗位、不同的工作内容、甚至是工作调动都可能影响到操作上的时间序列,本专利技术通过将DTW距离替代局部异常因子算法中的距离算法来对运营商或类似企业内部服务器访问行为进行异常检测,可以只应用一个模型,在没有对用户进行分类的情况下做时间序列的无监督异常检测,不需要区分类型,不需要根据序列的周期性、季节性等特征管理多个模型。有效解决标签样本缺失、准确率低、误报率高等问题,同时有效提高了相关问题解决的普适性。进一步的,在步骤S03之前,还包括对所述步骤S02中的时间序列进行平滑处理的步骤。进一步的,所述步骤S03中的局部异常因子算法的具体计算过程为:一个时间序列为一个样本;假设时间序列集合为S={s(1),s(2),...,s(i),...,s(j)}其主要计算过程是:1)计算各样本的k距离Dk(s(i))=d(s(i),s(k=t))其中Dk(s(i))表示样本的第k距离,d(s(i),s(k=t))表示距s(i)第k远的样本的距离,s(k=t)表示距s(i)第k远的数据样本s(t)2)计算各样本的k距离领域样本s(i)的第k距离以内的所有样本就是样本s(i)的k距离领域3)计算可达距离RDt(s(i),s(j))=max(Dk(s(i)),d(s(i),s(j)))其RDt(s(i),s(j))表示s(i)到s(j)的可达距离,如果s(i)到s(j)的距离小于第k距离,则可达距离为第k距离Dk(s(i)),否则可达距离为真实距离d(s(i),s(j))4)计算局部可达密度由于整个数据集可能有多类数据,不同类的点密度不一定相同,所以利用k距离邻域计算局部可达密度其中,表示s(i)的k距离领域sN中的第t个样本,该邻域中有N个样本。s(i)的局部可达密度LRDk(s(i)),就是s(i)的k距离领域sN所有样本到s(i)的可达距离的平均值倒数,代表sN中样本的密集程度。5)计算局部异常因子其中分子表示s(i)的k距离邻域中的所有样本的局部可达密度的均值,分母是s(i)的局部可达密度。通过比较s(i)的密度和其邻域的密度来判断s(i)是否是异常样本,s(i)的密度越低,LRDk(s(i))越小,LOFk(s(i))的值越大,s(i)越可能是异常样本;s(i)的密度越高,LRDk(s(i))越大,LOFk(s(i))的值越接近1或小于1,s(i)越可能是正常的样本。进一步的,所述样本间距离d(s(i),s(j))的具体计算方法为:给定两个长度分别为n和m的时间序列:1)创建距离矩阵D其中表示和之间的相异性度量,可以选择合适的距离来进行度量;2)计算累加距离其中d(i,j)表示对应位置的距离,g(i,j)表示对应位置的累加距离,也就是说当前位置的累加距离等于从当前点的下边的点或者左边的点或者左下边的点走到当前点的距离的最小值;根据公式从样本(1,1)开始计算,直至计算到(m,n),最后样本(m,n)的累加距离就是时间序列s(1)和s(2)的DTW距离,而从(m,n)开始回溯到(1,1)的路径就是DTW计算的路径。本专利技术还提供一种基于无监督学习的时间序列异常检测系统,包括:获取服务访问记录模块,用于获取服务访问记录,构建用于比较的时间序列;构建时间序列模块,选择设定的时间段,对用户访问服务的次数做统计,形成时间序列;异常操作时间序列检测模块,采用局部异常因子算法对步骤S02中的时间序列表做局部异常因子检测,采用动态时间规整距离计算序列间的距离,并根据距离计算局部异常因子;异常操作确认模块,根据计算出的局部异常因子进行筛选,超过阈值的操作为异常操作。进一步的,还包括对时间序列进行平滑处理的平滑本文档来自技高网
...

【技术保护点】
1.一种基于无监督学习的时间序列异常检测方法,其特征在于,包括以下步骤:/nS01.获取服务访问记录,构建用于比较的时间序列;/nS02.构建时间序列,选择设定的时间段,对用户访问服务的次数做统计,形成时间序列;/nS03.异常操作时间序列检测,采用局部异常因子算法对步骤S02中的时间序列表做局部异常因子检测,采用动态时间规整距离计算序列间的距离,并根据距离计算局部异常因子;/nS04.根据步骤S03中计算出的局部异常因子进行筛选,超过阈值的操作为异常操作。/n

【技术特征摘要】
1.一种基于无监督学习的时间序列异常检测方法,其特征在于,包括以下步骤:
S01.获取服务访问记录,构建用于比较的时间序列;
S02.构建时间序列,选择设定的时间段,对用户访问服务的次数做统计,形成时间序列;
S03.异常操作时间序列检测,采用局部异常因子算法对步骤S02中的时间序列表做局部异常因子检测,采用动态时间规整距离计算序列间的距离,并根据距离计算局部异常因子;
S04.根据步骤S03中计算出的局部异常因子进行筛选,超过阈值的操作为异常操作。


2.根据权利要求1所述的一种基于无监督学习的时间序列异常检测方法,其特征在于:在步骤S03之前,还包括对所述步骤S02中的时间序列进行平滑处理的步骤。


3.根据权利要求1所述的一种基于无监督学习的时间序列异常检测方法,其特征在于:所述步骤S03中的局部异常因子算法的具体计算过程为:一个时间序列为一个样本;假设时间序列集合为S={s(1),s(2),...,s(i),...,s(j)}
其主要计算过程是:
1)计算各样本的k距离
Dk(s(i))=d(s(i),s(k=t))
其中Dk(s(i))表示样本的第k距离,d(s(i),s(k=t))表示距s(i)第k远的样本的距离,s(k=t)表示距s(i)第k远的数据样本s(t)
2)计算各样本的k距离领域
样本s(i)的第k距离以内的所有样本就是样本s(i)的k距离领域
3)计算可达距离
RDt(s(i),s(j))=max(Dk(s(i)),d(s(i),s(j)))
其RDt(s(i),s(j))表示s(i)到s(j)的可达距离,如果s(i)到s(j)的距离小于第k距离,则可达距离为第k距离Dk(s(i)),否则可达距离为真实距离d(s(i),s(j))
4)计算局部可达密度
由于整个数据集可能有多类数据,不同类的点密度不一定相同,所以利用k距离邻域计算局部可达密度



其中,表示s(i)的k距离领域sN中的第t个样本,该邻域中有N个样本。s(i)的局部可达密度LRDk(s(i)),就是s(i)的k距离领域sN所有样本到s(i)的可达距离的平均值倒数,代表sN中样本的密集程度。
5)计算局部异常因子



其中分子表示s(i)的k距离邻域中的所有样本的局部可达密度的均值,分母是s(i)的局部可达密度。通过比较s(i)的密度和其邻域的密度来判断s(i)是否是异常样本,s(i)的密度越低,LRDk(s(i))越小,LOFk(s(i))的值越大,s(i)越可能是异常样本;s(i)的密度越高,LRDk(s(i))越大,LOFk(s(i))的值越接近1或小于1,s(i)越可能是正常的样本。


4.根据权利要求3所述的一种基于无监督学习的时间序列异常检测方法,其特征在于:所述样本间距离d(s(i),s(j))的具体计算方法为:
给定两个长度分别为n和m的时间序列:






1)创建距离矩阵D



其中表示和之间的相异性度量,可以选择合适的距离来进行度量;
2)计算累加距离



其中d(i,j)表示对应位置的距离,g(i,j)表示对应位置的累加距离,也就是说当前位置的累加距离等于从当前点的下边的点或者左边的点或者左下边的点走到当前点的距离的最小值;
根据公式从样本(1,1)开始计算,直至计算到(m,n),最后样本(m,n)的累加距离就是时间序列s(1)和s(2)的DTW距离,而从(m,n)开始回溯到(1,1)的路径就是DTW计算的路径。


5.一种基于无监督学习的时间序列异常检测系统,其特征在于,包括:
获取服务访问记录模块,用于获取服务访问记录,构建用于比较的时间序列;
构建时间序列模块,选择设定的时间段...

【专利技术属性】
技术研发人员:余贤喆梁淑云刘胜马影陶景龙王启凡魏国富殷钱安周晓勇
申请(专利权)人:上海观安信息技术股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1