CN105160181B - 一种数控***指令域序列异常数据检测方法 - Google Patents
一种数控***指令域序列异常数据检测方法 Download PDFInfo
- Publication number
- CN105160181B CN105160181B CN201510560253.9A CN201510560253A CN105160181B CN 105160181 B CN105160181 B CN 105160181B CN 201510560253 A CN201510560253 A CN 201510560253A CN 105160181 B CN105160181 B CN 105160181B
- Authority
- CN
- China
- Prior art keywords
- abnormal
- sliding window
- sequence
- point
- sample
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种数控***指令域序列异常数据检测方法,包括(1)获取训练样本数据中心线,获取包络线比率r;(2)构造窗宽N、临界长度X、连续异常点长度和阶梯点长度分界线Y、数据流分析长度Z的经验公式并根据经验公式设置相应参数;(3)利用N确定滑动窗口长度,利用滑动窗口分割数据流,利用简单移动平均法或多项式拟合法获取滑动窗口数据中心线,包络线外样本为当前滑动窗口内判定的异常点存入loutlier,利用过程记录序列lnew、过程记录正常序列lnormal、X、Y确定最终判定类型;(4)达到指定的数据流分析长度Z时,结束异常检查,否则清除序列号为(i‑1)u+N+1、(i‑1)u+N+2、...、i·u+N的数据缓存,进入第i+1个滑动窗口的分析。
Description
技术领域
本发明属于数据挖掘领域,更具体的,涉及一种数控***指令域序列异常数据检测方法。
背景技术
按照国家现行标准GB4883-2008中定义,异常值形成原因有2个:总体固有变异性的极端表现引起,实验条件、试验方法、观测、记录或计算失误引起;标准还给出了异常值检测方法,大多数研究也主要参照该标准提出的统计学方法进行研究,例如公开号为CN104657503A的专利,利用统计判别法对电商销售额异常值进行预处理,公开号为CN104703215A的专利,通过在预设时间内对异常值的频率统计得到出现异常值的概率确定是否出现异常事件;针对异常值挖掘算法还有利用聚类、距离、密度、偏差等方法。
上述方法主要针对无序数据集,在实际社会、经济、军事和生活等活动中产生的数据大多是按照某种顺序排列的有序序列,例如时间序列、数控加工中基于指令序列的状态数据序列等,有序序列中异常数据包含着潜在的信息,充分挖掘其信息才能够充分掌握实际生产活动动态变化,实现社会、经济、军事和生活等活动的实时的智能检测和控制。有序序列异常有3种类型:点异常、连续序列异常、模式异常。点异常与连续序列异常主要表现为单个或少量连续点偏离整体模式,形成局部尖峰或较为尖锐的局部波动,其前后序列模式一致,与无序数据集异常值形成原因一致;模式异常主要表现为大量“相对”连续点偏离整体模式或者从某点开始走势偏离原模式,二者分别会形成阶梯或者跳变,具体见图1,“相对”是指在模式异常序列内部可能存在点异常、连续序列异常,本质上模式异常并非真正异常,只是由于数据内部结构特异性或实验条件、试验方法改变引起的数据行为的改变。
有序序列异常数据挖掘方法主要有生物学方法、机器学习方法、基于特征空间的方法等;生物学方法仿照免疫***识别自我和异我的机制,将“异我”识别为异常并剔除;机器学习方法包括神经网络回归模型、支持向量机回归模型、聚类,利用回归模型求取的值或预测的值与实际值比较判别是否为异常值,聚类则主要对训练集分段后训练获得状态机,数据流中出现与状态机不符的序列被判定为异常模式;基于特征的方法对数据流分段求取特征,从而将时间序列异常检测转化无序数据集异常检测。
对有序序列的分析分为动态和静态两种,静态分析主要针对数据库中已存储的数据,数据不再更新,动态分析主要针对随某变量持续更新的有序序列,即数据流。针对动态数据的挖掘不仅要考虑序列的前后相关性还要考虑数据的持续更新,不能像对待静态数据将其全部存入数据库,因为随着变量推移,数据流中数据是海量的,常用简化存储的方法是存入一个远小于数据量的概要数据结构或模型,针对数据流异常检测应是连续的,并且应该高效快速以满足实时分析的需求。数据流异常数据挖掘是数据挖掘领域一个研究热点,针对时间序列异常数据挖掘的专利有很多,例如公开号为CN104715150A的专利,提取图形中时间序列构建被试的静息态脑功能复杂网络,对网络的拓扑结构性质进行双样本T检验得到显著异常,公开号为CN104717106A的专利,利用ARMA模型预测值与真实值比对得到网络流量属性数据信息的新息序列,通过多变量序贯概率比检验后做差得到似然比序列,对其进行相关性分析判定网络异常是否发生,公开号为CN104636999A的专利,首先利用行业标准寻找异常,然后利用偏差检测技术过滤异常,最后采用基于离散傅立叶变换的时间序列相似性查找出异常,实现建筑用能数据中的异常数据精准定位,时间序列异常检测多为静态分析;目前并无针对数据流异常数据挖掘的中国专利,相关文献有很多,例如哈尔滨工业大学的庞景月基于滑动窗口的高斯过程回归模型,用于检测单数据流异常,复旦大学的张晨构建了不确定数据流聚类算法、基于信息论的概率数据流聚类算法、多数据流情况下的异常趋势检测方法,用于挖掘数据流异常,东北大学的田玥采用CLOSET算法挖掘网络数据流频繁模式,利用加权欧几里得距离度量相似性,检测异常模式,设计了大规模网络数据流异常检测***模型和网络数据流频繁模式挖掘和检测算法;这些研究要么模型建立和计算复杂,要么难以实现自动实时分析,需要进行人为干涉选择部分参数或判断中间结果后选取流程走向等。
发明内容
针对上述需求或改进需求,本发明方法提出了一种数控***指令域序列异常数据挖掘方法,其能够快速有效进行数据流异常数据的实时检测,所述方法包括:
(1)、利用简单移动平均法或多项式拟合法获取训练样本数据中心线,利用训练样本、训练样本数据中心线,通过二分法或直接搜索法获取包络线比率r;
简单移动平均法如下:
其中xi为序列号为i的样本点,yk为获取的第k个中心点,d为移动平均项数,[d/2]为向左取整,d计算方法如下:
d=k3l (2)
其中k3为移动平均项数占样本量比例,一般取4%;
多项式拟合法确定多项式项数w后,数据中心线多项式为:yk=awxk w+aw-1xk w-1+…+a0,利用最小二乘法求取多项式系数a0、a1、…、aw,
根据数据中心线、r,上下包络线公式如下:
yk=xk±r·R (3)
其中r为包络线比率,R为样本值偏离中心线值的均方差,在式(3)外的样本点为滑动窗口内判定的异常点;
设训练集样本点数为l(l≥10N),二分法搜索获取r的条件如下:
条件1:包络线外样本点数小于k1·l;
条件2:包络线外样本点数大于k2·l;
条件3:包络线外样本点总数小于k2·l,大于k1·l;
其中,所述k1是最小异常点数占样本总量的比率,k2是最大异常点数占样本总量的比率;
具体搜索流程如下:
(1-1)、给定最小和最大r分别为a0、a1及最大迭代次数k,令当前迭代次数i=1;
(1-2)、根据公式(3)依次计算包络线比率分别为a0、a1,时是否满足条件3,满足输出满足条件的值,迭代结束,否则转入(1-3);
(1-3)、令i=i+1,左右节点L、R分别为a0、a1;ai=(L+R)/2;
(1-4)、若ai满足条件1,则需要减小r,使包络线外样本增加,故左节点不变,右节点更新为ai;若满足条件2,则需要增大r,使包络线外样本减少,故右节点不变,左节点更新为ai;
(1-5)、重复步骤(1-3)、(1-4),直到满足条件3或达到最大迭代次数,输出最终r;
本发明方法根据具体条件设计的二分法只需更新左右节点,利用左右节点中值即可不断迅速缩小范围,搜索满足条件的值;此二分法同样适用满足相同条件的搜索;
其中利用直接搜索法是指从最大值a1或最小值a0,按照指定步长s搜索减小或增大r值,为达到精度q要求,s需满足:
正负代表搜索方向,为正则由a0开始搜索,反之从a1开始。
(2)、构造窗宽N、临界长度X、连续异常点长度和阶梯点长度分界线Y、数据流分析长度Z的经验公式并根据经验公式设置相应参数;初始化单步处理样本点数u、滑动窗口异常记录多维序列loutlier、过程记录序列lnew、过程记录正常序列lnormal;
其中,窗宽N根据采样周期T、单步处理样本点数u、单步检测与存储需要的时间c确定,窗宽N需满足下式:
u·T≥c (5)
若不满足,则适当减小窗宽N,若不满足需相应增大N。其中X、Y、Z、N一般应满足下式:
Z≥100N
Y≈0.4%N
X≈0.5%N (6)
初始化单步处理样本点数u、滑动窗口异常记录多维序列loutlier、过程记录序列lnew、过程记录正常序列lnormal,用u确定滑动窗口滑动一次处理的样本点数,用loutlier记录滑动窗口内判定的异常点的序列号及其累计异常数,用lnew记录通过滑动窗口且待处理的样本点序列号及其初始判定类型,用lnormal记录通过滑动窗口且为初始判定正常点的序列号及其初始判定类型;
(3)、利用N确定滑动窗口长度,利用滑动窗口分割数据流,利用简单移动平均法或多项式拟合法获取滑动窗口数据中心线,利用滑动窗口数据中心线、r、公式(3)求取当前滑动窗口上下包络线,包络线外样本为当前滑动窗口内判定的异常点,存入loutlier,当前滑动窗口内异常点判定完毕后,利用过程记录序列lnew、过程记录正常序列lnormal、X、Y确定最终判定类型;
其中利用滑动窗口分割数据流是指滑动窗口包含N个连续样本点,第i个滑动窗口异常检测后,位于滑动窗口前部的u个序列号为(i-1)u+1、(i-1)u+2、...、i·u的样本点通过窗口,滑动窗口尾部添加u个新样本点(i-1)u+N+1、(i-1)u+N+2、...、i·u+N,获取第i+1个窗口;若需提高效率,需提高u,u太大会造成判别正确率降低;
利用简单移动平均法或多项式拟合法获取滑动窗口数据中心线;若选取的窗宽N合适使得大部分窗口的多项式次数相同,则可使用多项式拟合法,求取中心线,否则选取简单移动平均法获取中心线;简单移动平均法、多项式拟合法计算公式见步骤(1)中计算方法,滑动窗口中式(1)中d计算方法如下:
d=k3N (7)
有序序列异常的3种类型:点异常、连续异常、模式异常,对应异常数据分别成为孤立异常点、连续异常点、阶梯点;点异常与连续异常主要表现为单个或少量连续点偏离整体模式,形成局部尖峰或较为尖锐的局部波动;模式异常主要表现为大量“相对”连续点偏离整体模式或者从某点开始走势偏离原模式,二者分别会形成阶梯或者跳变,“相对”是指在模式异常序列内部可能存在点异常、连续异常,本质上模式异常并非真正异常,只是由于数据内部结构特异性或实验条件、试验方法改变引起的数据行为的改变;利用下述方法可确定异常类型;
滑动窗口异常记录多维序列loutlier,记录滑动窗口内判定的异常点序列号及其累计异常数ti k,ti k表示序列号为k的样本点在第i个滑动窗口判定完毕后的累计异常数,其记录格式为loutlier={(序列号,ti k)};
当前滑动窗口内异常点判定完毕后,利用过程记录序列lnew、过程记录正常序列lnormal依次记录通过窗口的样本点,记录格式均为{(flag,序列号)}。flag为0、1、2、3、4时分别代表初始判定异常点、初始判定正常点、孤立异常点、连续异常点、阶梯点;初始判定类型包括初始判定异常点、初始判定正常点,序列号为k的样本点通过滑动窗口时利用ti k确定其初始判定类型;最终判定类型包括孤立异常点、连续异常点、阶梯点;
其中利用ti k确定初始判定类型具体方法如下:
(3-1-1)、根据r、滑动窗口数据中心线、式(3)获取第i个滑动窗口判定的异常点序列{ni 1,ni 2,...,ni k}后,与第i-1个滑动窗口获取的loutlier中序列号比较获取第i个滑动窗口新增异常点的序列号为na1,na2,...,nam及未变的异常点的序列号为nb1,nb2,...,nbm;
(3-1-2)、对第i个滑动窗口新增异常点有ti k=ti-1 k+1(k=na1,na2,...,nam),更新loutlier;
(3-1-3)、判断ti v/N’≤50%(v=(i-1)u+1,(i-1)u+2,...,i·u)是否满足,若满足则序列号为v的样本点为初始判定正常点,若不满足则序列号为v的样本点为初始判定异常点,其中N’为序列号为v的样本点通过的滑动窗口总数,v≥N时,N’=[N/u],v<N时,N’=[v/u]+1,中括号代表向左取整;
其中核心思想为:利用累积异常数判定数据是否为真实的异常数据,避免了单窗口内模型(简单移动平均模型、多项式拟合模型)误差影响;
其中确定样本点最终判定类型具体步骤如下:
(3-2-1)、若v为初始正常点,更新lnew={lnew,(1,v)}、lnormal={lnormal,(1,v)};
(3-2-2)、若v为初始判定异常点,更新lnew={lnew,(0,v)},通过如下步骤确定最终判定类型:
判定length(lnormal)≥X,若否则判定下一个样本点,若是从lnew中去除lnormal包含的样本点;
判定length(lnew)≥Y,若是则lnew中均为阶梯点,若否则从lnew中寻找相邻的初始判定异常点构成异常子序列,通过子序列长度判定各子序列中样本点是孤立异常点还是连续异常点;
从loutlier中去除lnew包含的样本点,初始化lnormal,通过子序列长度判别样本类型,更新lnew={(v,0)};
确定最终判定类型后,存储异常点及其类型标记,记录格式为SE={SE,(类型标记,起始序列号,终止序列号)},其中length表示求取序列长度;
(3-2-3)、当v>i·u时计算下一个滑动窗口的loutlier,对刚通过滑动窗口的u个样本点重复(3-2-1)、(3-2-2)、(3-2-3);
其中核心思想为:出现初始判定异常点则截断lnormal,当连续正常序列lnormal长度达到临界长度X时,截断异常检查数据存入lnew中,对lnew整体进行分析;该思想能自适应找到合适的分割点进行异常分析;
对阶梯点内部也可采用滑动窗口异常点判定方法判定阶梯点内的孤立异常点和连续异常点,此时r、N、X、Y均需按阶梯点总长度和经验公式相应调整;
其中获取异常子序列并通过其长度判定各子序列中样本点是孤立异常点还是连续异常点的具体步骤如下:
(3-3-1)、获取lnew中flag及相应的序列号分别构成序列P、序列S;
(3-3-2)、获取序列Qi=Pi-Pi-1(Q1=-1,i≥2)中值等于-1和1的索引号分别存入序列index1、index2,二者长度相等,设长为l;
(3-3-3)、第k(k=1,2,…,l)段异常子序列为{Sindex1k,Sindex1k+1,...,Sindex2k-1},若index2k-index1k=1,则异常子序列为孤立异常点,否则异常子序列中样本点均为连续异常点;
(4)、达到指定的数据流分析长度Z时,结束异常检查,否则清除序列号为(i-1)u+N+1、(i-1)u+N+2、...、i·u+N的数据缓存,进入第i+1个滑动窗口的分析。
总体而言,通过本发明所构思的以上技术方案与现有技术对比,可以取得如下有益效果:
(1)、能够快速有效进行数据流异常数据的在线实时检测;
(2)、根据具体条件设计的二分法中只需跟新左右节点,利用左右节点中值即可不断迅速缩小范围,搜索满足条件的值;此二分法同样适用满足相同条件的搜索,并且算法简洁、效率高;
(3)、用累积异常数判定数据是否为真实的异常数据,避免了单窗口内模型(简单移动平均模型、多项式拟合模型)误差影响;
(4)、出现初始判定异常点时,截断lnormal、lnew,利用lnormal确定是否分割数据;将数据分段进行分析提高了异常检测的效率,并且能自适应寻找合适的数据分割点进行异常分析;
(5)、滑动窗口移动长度可以变化,可结合实际情况选择u,实现效率与异常分析准确度之间的权衡;
(6)、本发明方法中获取数据中心线的方法根据实际运用经验可继续扩充,不限于上述两种方法。
总而言之,本发明方法可实现数据流实时检测,效率高且有效,提取的异常数据结合具体背景可应用于分析与后续针对异常情况的补偿决策。
附图说明
图1为本发明模式异常中跳变与阶梯图;
图2为本发明二分法寻找r流程图;
图3为本发明总体流程图;
图4为本发明包含细节实现的总体流程图;
图5为本发明滑动窗口滑动方式;
图6为本发明寻找异常子序列流程图;
图7为具体实施例1异常检测结果;
图8为具体实施例2异常检测结果。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
图3是本发明实施例方法中总流程图,图4是本发明实施例方法中包含细节实现的总流程,具体实施例采用指令域示波器采集的数控***伺服驱动上的x轴电流进行异常检测,下文将结合两图对本发明方法进一步详细说明。
本实施例1具体实施步骤如下:
(1)、利用简单移动平均法或多项式拟合法获取训练样本数据中心线,利用训练样本、训练样本数据中心线,通过二分法或直接搜索法获取包络线比率r;
配有相同伺服驱动的同型号机床整体性能具有一致性,电流周期成分相同,出现异常时电流受伺服驱动、传动机构影响,跳变范围具有一致性;
采集数控***运行状态数据进行分析,训练样本序列包括总样本点数420388。利用简单移动平均法求取训练样本数据中心线,利用二分法搜索获取r的流程见图2。训练集样本点总量为l=420388,其中条件1-3分别为:
条件1:包络线外样本点数小于k1·l,k1=0.05%;
条件2:包络线外样本点数大于k2·l,k2=1%;
条件3:包络线外样本点总数小于k2·l,大于k1·l;
本实施例中二分法具体搜索过程如下:
(1-1)、设定初始参数,初始时,最小和最大r分别为a0=0.1、a1=5及最大迭代次数k=20;
(1-2)、确定左右节点L、R分别为a0、a1,a2=(L+R)/2;根据式(3)计算a0、a1、a2均不满足条件3;转入Step1-3;
(1-3)、令i=3,此时由ai-1与式(3)定的上下包络线外样本点数小于k1·l,因而需减小r,左节点不变,右节点更新为ai-1,ai=(L+R)/2;
(1-4)、i=i+1,此时由式(3)ai-1确定的上下包络线外样本点数大于k2·l,因而需增大r,右节点不变,左节点更新为ai-1,ai=(L+R)/2;
(1-5)、i=i+1,此时由式(3)ai-1确定的上下包络线外样本点数满足条件3,输出前次迭代的r,即a4;
本实施例中设置的最大迭代次数为20,实际迭代5次即可计算出最后结果,最终包络线外样本点占总样本点总数的0.0086;计算第i次迭代值时,验证第i-1次迭代的r值是否满足条件1-3,满足则根据具体条件更新左右节点,利用左右节点中值即可不断迅速缩小范围,搜索满足条件的值,算法简洁效率高;
(2)、构造窗宽N、临界长度X、连续异常点长度和阶梯点长度分界线Y、数据流分析长度Z的经验公式并根据经验公式设置相应参数;初始化单步处理样本点数u、滑动窗口异常记录多维序列loutlier、过程记录序列lnew、过程记录正常序列lnormal;
根据采样周期T、单步处理样本点数u、单步检测与存储单步检查结果需要的时间c确定窗宽N,确保数据流的概要数据结构或模型建立方便并且存储开销较小,本发明方法T=0.001s,u=5,当N∈[1000,20000]时,测试发现c变化不大,约为T的1/10,考虑效率并根据式(6)选取N=20000;
根据式(6)确定X、Y、Z分别为:100、80、200000;
初始化单步处理样本点数u=5,初始化滑动窗口异常记录多维序列loutlier、过程记录序列lnew、过程记录正常序列lnormal均为空集;
(3)、利用N确定滑动窗口长度,利用滑动窗口分割数据流,利用简单移动平均法或多项式拟合法获取滑动窗口数据中心线,利用滑动窗口数据中心线、r、公式(3)求取当前滑动窗口上下包络线,包络线外样本为当前滑动窗口内判定的异常点,存入loutlier,当前滑动窗口内异常点判定完毕后,利用过程记录序列lnew、过程记录正常序列lnormal、X、Y确定最终判定类型;
第i个滑动窗口异常检测后,位于滑动窗口前部u个序列号为(i-1)u+1、(i-1)u+2、...、i·u的样本点通过滑动窗口,滑动窗口尾部添加u个新样本点(i-1)u+N+1、(i-1)u+N+2、...、i·u+N,获取第i+1个滑动窗口;滑动窗口滑动方式见图5;对刚通过滑动窗口的样本点确定初始判定异常类型;
本具体实施例1选取简单移动平均法求取中心线,简单移动平均法公式如式(1),其中yk为采集数据,d为移动平均项数,[d/2]为向左取整,d计算方法如式(7),本实施例中式(7)中k3取4%;
根据中心线、r、上下包络线求取公式(3)获取上下包络线,包络线外滑动窗口内判定的异常点,滑动窗口内异常点判定的伪代码如下:
for I由i·u+1至N+i·u
if xI>yI+r×R||xI<yI-r×R
temp={temp,I}
本具体实施例1及将要介绍的具体实施例2利用累积异常率判定数据是否为真实的异常数据,避免了单窗口内简单移动平均模型误差影响,利用ti k确定初始判定类型具体方法如下:
(3-1-1)、根据r、滑动窗口数据中心线、式(3)获取第i个滑动窗口判定的异常点序列{ni 1,ni 2,...,ni k}后,与第i-1个滑动窗口获取的loutlier中序列号比较获取第i个滑动窗口新增异常点的序列号为na1,na2,...,nam及未变的异常点的序列号为nb1,nb2,...,nbm;
(3-1-2)、对第i个滑动窗口新增异常点有ti k=ti-1 k+1(k=na1,na2,...,nam),更新loutlier;
(3-1-3)、判断ti v/N’≤50%(v=(i-1)u+1,(i-1)u+2,...,i·u)是否满足,若满足则序列号为v的样本点为初始判定正常点,若不满足则序列号为v的样本点为初始判定异常点,其中N’为序列号为v的样本点通过的滑动窗口总数,v≥N时,N’=[N/u],v<N时,N’=[v/u]+1,中括号代表向左取整;其中确定样本点最终判定类型具体步骤如下:
(3-2-1)、若v为初始正常点,更新lnew={lnew,(1,v)}、lnormal={lnormal,(1,v)};
(3-2-2)、若v为初始判定异常点,更新lnew={lnew,(0,v)},通过如下步骤确定最终判定类型:
判定length(lnormal)≥X,若否则判定下一个样本点,若是从lnew中去除lnormal包含的样本点;
判定length(lnew)≥Y,若是则lnew中均为阶梯点,若否则从lnew中寻找相邻的初始判定异常点构成异常子序列,通过子序列长度判定各子序列中样本点是孤立异常点还是连续异常点;
从loutlier中去除lnew包含的样本点,初始化lnormal通过子序列长度判别样本类型,更新lnew={(v,0)};
确定最终判定类型后,存储异常点及其类型标记,记录格式为SE={SE,(类型标记,起始序列号,终止序列号)},其中length表示求取序列长度;
(3-2-3)、当v>i·u时计算下一个滑动窗口的loutlier,对刚通过滑动窗口的u个样本点重复(3-2-1)、(3-2-2)、(3-2-3);
其中获取异常子序列并通过其长度判定各子序列中样本点是孤立异常点还是连续异常点的具体步骤如下:
(3-3-1)、获取lnew中flag及相应的序列号分别构成序列P、序列S;
(3-3-2)、获取序列Qi=Pi-Pi-1(Q1=-1,i≥2)中值等于-1和1的索引号分别存入序列index1、index2,二者长度相等,设长为l;
(3-3-3)、第k(k=1,2,…,l)段相邻异常数据列为{Sindex1k,Sindex1k+1,...,Sindex2k-1},若index2k-index1k=1,则异常子序列为孤立异常点,否则异常子序列中样本点均为连续异常点;
(4)、达到指定的数据流分析长度Z时,结束异常检查,否则清除序列号为(i-1)u+N+1、(i-1)u+N+2、...、i·u+N的数据缓存,进入第i+1个滑动窗口的分析。
本具体实施例1中数据流分析长度达到Z时,将全部判定结果画图见图7,“*”号标记的为异常数据,图中仅可见最终被判定为异常的数据,异常类型存储在保存SE的文件中。
具体实施例2与实施例1中同时开始分析同一组数据流,处理方式一致,各参数选取一致,只在Step1、Step3中选取策略库中多项式拟合法,在Step1求取的r为2.55,最终包络线外样本点占总样本点总数的0.0084;各滑动窗口利用二次曲线拟合,本具体实施例2中数据流分析长度达到Z时,将全部判定结果画图见图8,“*”号标记的为异常数据,图中仅可见最终被判定为异常的数据,异常类型存储在保存SE的文件中;运用时,多项式拟合的k1、k2可取比简单移动平均大的值,避免二次曲线局部波动造成的异常数据误判。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数控***指令域序列异常数据检测方法,其特征在于,所述方法包括如下步骤:
(1)利用简单移动平均法或多项式拟合法获取训练样本数据中心线,利用训练样本、训练样本数据中心线,通过二分法或直接搜索法获取包络线比率r;
(2)构造窗宽N、临界长度X、连续异常点长度和阶梯点长度分界线Y、数据流分析长度Z的经验公式并根据经验公式设置相应参数;初始化单步处理样本点数u、滑动窗口异常记录多维序列loutlier、过程记录序列lnew、过程记录正常序列lnormal;
(3)利用N确定滑动窗口长度,利用滑动窗口分割数据流,利用简单移动平均法或多项式拟合法获取滑动窗口数据中心线,利用滑动窗口数据中心线、r、公式yk=xk±r·R求取当前滑动窗口上下包络线,R为样本值偏离中心线值的均方差,yk为第k个中心点值;包络线外样本为当前滑动窗口内判定的异常点,存入loutlier,当前滑动窗口内异常点判定完毕后,利用过程记录序列lnew、过程记录正常序列lnormal、X、Y确定最终判定类型;
(4)达到指定的数据流分析长度Z时,结束异常检查,否则清除序列号为(i-1)u+N+1、(i-1)u+N+2、...、i·u+N的数据缓存,进入第i+1个滑动窗口的分析。
2.如权利要求1所述的方法,其特征在于,所述步骤(1)中简单移动平均法或多项式拟合法具体为:
简单移动平均法如下:
<mrow>
<msub>
<mi>y</mi>
<mi>k</mi>
</msub>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mfrac>
<mrow>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mrow>
<mn>2</mn>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</munderover>
<msub>
<mi>x</mi>
<mi>i</mi>
</msub>
</mrow>
<mrow>
<mn>2</mn>
<mi>k</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</mfrac>
</mtd>
<mtd>
<mrow>
<mi>k</mi>
<mo><</mo>
<mo>&lsqb;</mo>
<mfrac>
<mi>d</mi>
<mn>2</mn>
</mfrac>
<mo>&rsqb;</mo>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mfrac>
<mrow>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mi>k</mi>
<mo>+</mo>
<mo>&lsqb;</mo>
<mfrac>
<mi>d</mi>
<mn>2</mn>
</mfrac>
<mo>&rsqb;</mo>
</mrow>
<mrow>
<mi>k</mi>
<mo>+</mo>
<mo>&lsqb;</mo>
<mfrac>
<mi>d</mi>
<mn>2</mn>
</mfrac>
<mo>&rsqb;</mo>
</mrow>
</munderover>
<msub>
<mi>x</mi>
<mi>i</mi>
</msub>
</mrow>
<mi>d</mi>
</mfrac>
</mtd>
<mtd>
<mrow>
<mi>k</mi>
<mo>&GreaterEqual;</mo>
<mo>&lsqb;</mo>
<mfrac>
<mi>d</mi>
<mn>2</mn>
</mfrac>
<mo>&rsqb;</mo>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
其中xi为序列号为i的样本点,yk为获取的第k个中心点值,d为移动平均项数,[d/2]为向左取整,d计算方法如下:
d=k3l (2)
其中,k3为移动平均项数占样本量比例,l为训练集样本点数;
多项式拟合法确定多项式项数w后,数据中心线多项式为:yk=awxk w+aw-1xk w-1+…+a0,利用最小二乘法求取多项式系数a0、a1、…、aw,
根据数据中心线、r,上下包络线公式如下:
yk=xk±r·R (3)
其中r为包络线比率,R为样本值偏离中心线值的均方差,在式(3)外的样本点为滑动窗口内判定的异常点。
3.如权利要求1或2所述的方法,其特征在于,所述步骤(1)中利用二分法搜索获取r具体包括如下步骤:
(1-1)给定最小和最大r分别为a0、a1及最大迭代次数k,令当前迭代次数i=1;
(1-2)根据公式(3)依次计算包络线比率分别为a0、a1时是否满足条件3,满足输出满足条件的值,迭代结束,否则转入(1-3);
(1-3)令i=i+1,左右节点L、R分别为a0、a1;ai=(L+R)/2;
(1-4)若ai满足条件1,则需要减小r,使包络线外样本增加,故左节点不变,右节点更新为ai;若满足条件2,则需要增大r,使包络线外样本减少,故右节点不变,左节点更新为ai;
(1-5)重复步骤(1-3)、(1-4),直到满足条件3或达到最大迭代次数,输出最终r;
其中二分法搜索获取r的条件如下:
条件1:包络线外样本点数小于k1·l;
条件2:包络线外样本点数大于k2·l;
条件3:包络线外样本点总数小于k2·l,大于k1·l;
其中,所述k1是最小异常数据占样本总量的比率,k2是最大异常数据占样本总量的比率。
4.如权利要求1或2所述的方法,其特征在于,所述步骤(1)中利用直接搜索法获取r具体包括如下步骤:
从最大值a1或最小值a0,按照指定步长s搜索减小或增大r值,为达到精度q要求,s需满足:
<mrow>
<mi>s</mi>
<mo>=</mo>
<mo>&PlusMinus;</mo>
<mfrac>
<mi>q</mi>
<mrow>
<msub>
<mi>a</mi>
<mn>1</mn>
</msub>
<mo>-</mo>
<msub>
<mi>a</mi>
<mn>0</mn>
</msub>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</mrow>
正负代表搜索方向,为正则由a0开始搜索,反之从a1开始。
5.如权利要求1或2所述的方法,其特征在于,所述步骤(2)中:
窗宽N根据采样周期T、单步处理样本点数u、单步检测与存储需要的时间c确定,窗宽N需满足下式:u·T≥c,若满足,则适当减小窗宽N,若不满足需相应增大N;
其中X、Y、Z、N应满足下式:
初始化单步处理样本点数u、滑动窗口异常记录多维序列loutlier、过程记录序列lnew、过程记录正常序列lnormal,用u确定滑动窗口滑动一次处理的样本点数,用loutlier记录滑动窗口内判定的异常点的序列号及其累计异常数,用lnew记录通过滑动窗口且待处理的样本点序列号及其初始判定类型,用lnormal记录通过滑动窗口且为初始判定正常点的序列号及其初始判定类型。
6.如权利要求1或2所述的方法,其特征在于,所述步骤(3)中:
利用滑动窗口分割数据流是指滑动窗口包含N个连续样本点,第i个滑动窗口异常检测后,位于滑动窗口前部的u个序列号为(i-1)u+1、(i-1)u+2、...、i·u的样本点通过窗口,滑动窗口尾部添加u个新样本点(i-1)u+N+1、(i-1)u+N+2、...、i·u+N,获取第i+1个窗口。
7.如权利要求1或2所述的方法,其特征在于,所述步骤(3)中利用下述方法确定异常类型:
滑动窗口异常记录多维序列loutlier,记录滑动窗口内判定的异常点序列号及其累计异常数ti k,ti k表示序列号为k的样本点在第i个滑动窗口判定完毕后的累计异常数,其记录格式为loutlier={(序列号,ti k)};
当前滑动窗口内异常点判定完毕后,利用过程记录序列lnew、过程记录正常序列lnormal依次记录通过窗口的样本点,记录格式均为{(flag,序列号)},flag为0、1、2、3、4时分别代表初始判定异常点、初始判定正常点、孤立异常点、连续异常点、阶梯点;初始判定类型包括初始判定异常点和初始判定正常点,序列号为k的样本点通过滑动窗口时利用ti k确定其初始判定类型;最终判定类型包括孤立异常点、连续异常点和阶梯点。
8.如权利要求7所述的方法,其特征在于,其中利用ti k确定初始判定类型具体方法如下:
(3-1-1)根据r、滑动窗口数据中心线、式(3)获取第i个滑动窗口判定的异常点序列{ni 1,ni 2,...,ni k}后,与第i-1个滑动窗口获取的loutlier中序列号比较获取第i个滑动窗口新增异常点的序列号为na1,na2,...,nam及未变的异常点的序列号为nb1,nb2,...,nbm;
(3-1-2)对第i个滑动窗口新增异常点有ti k=ti-1 k+1,其中k=na1,na2,...,nam,更新loutlier;
(3-1-3)判断ti v/N’≤50%是否满足,其中v=(i-1)u+1,(i-1)u+2,...,i·u,若满足则序列号为v的样本点为初始判定正常点,若不满足则序列号为v的样本点为初始判定异常点,其中N’为序列号为v的样本点通过的滑动窗口总数,v≥N时,N’=[N/u],v<N时,N’=[v/u]+1,其中括号代表向左取整。
9.如权利要求8所述的方法,其特征在于,确定样本点最终判定类型具体步骤如下:
(3-2-1)若v为初始判定正常点,更新lnew={lnew,(1,v)}、lnormal={lnormal,(1,v)};
(3-2-2)若v为初始判定异常点,更新lnew={lnew,(0,v)},通过如下步骤确定最终判定类型:
判定length(lnormal)≥X,若否则判定下一个样本点,若是从lnew中去除lnormal包含的样本点;
判定length(lnew)≥Y,若是则lnew中均为阶梯点,若否则从lnew中寻找相邻的初始判定异常点构成异常子序列,通过子序列长度判定各子序列中样本点是孤立异常点还是连续异常点;
从loutlier中去除lnew包含的样本点,初始化lnormal,通过子序列长度判别样本类型,更新lnew={(v,0)};
确定最终判定类型后,存储异常点及其类型标记,记录格式为SE={SE,(类型标记,起始序列号,终止序列号)},其中length表示求取序列长度;
(3-2-3)当v>i·u时计算下一个滑动窗口的loutlier,对刚通过滑动窗口的u个样本点重复(3-2-1)、(3-2-2)、(3-2-3)。
10.如权利要求9所述的方法,其特征在于,获取异常子序列并通过其长度判定各子序列中样本点是孤立异常点还是连续异常点的具体步骤如下:
(3-3-1)获取lnew中flag及相应的序列号分别构成序列P、序列S;
(3-3-2)获取序列Qi=Pi-Pi-1中值等于-1和1的索引号分别存入序列index1、index2,二者长度相等,设长为l,其中Q1=-1,i≥2;
(3-3-3)第k段异常子序列为若index2k-index1k=1,则异常子序列为孤立异常点,否则异常子序列中样本点均为连续异常点,其中k=1,2,…,l。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510560253.9A CN105160181B (zh) | 2015-09-02 | 2015-09-02 | 一种数控***指令域序列异常数据检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510560253.9A CN105160181B (zh) | 2015-09-02 | 2015-09-02 | 一种数控***指令域序列异常数据检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105160181A CN105160181A (zh) | 2015-12-16 |
CN105160181B true CN105160181B (zh) | 2018-02-23 |
Family
ID=54801037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510560253.9A Active CN105160181B (zh) | 2015-09-02 | 2015-09-02 | 一种数控***指令域序列异常数据检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105160181B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105784479B (zh) * | 2016-01-05 | 2018-05-18 | 山东科技大学 | 一种橡胶颗粒混凝土三轴压缩实验数据的处理方法 |
CN106570790B (zh) * | 2016-11-10 | 2021-05-07 | 甘肃省电力公司风电技术中心 | 一种计及风速数据分段特性的风电场出力数据修复方法 |
CN108898117A (zh) * | 2018-06-30 | 2018-11-27 | 防灾科技学院 | 一种滑动阈值的自适应随机信号异常提取方法 |
CN108984708B (zh) * | 2018-07-06 | 2022-02-01 | 蔚来(安徽)控股有限公司 | 脏数据识别方法及装置、数据清洗方法及装置、控制器 |
CN109740630A (zh) * | 2018-12-06 | 2019-05-10 | 中科恒运股份有限公司 | 异常数据处理方法及装置 |
CN109753049B (zh) * | 2018-12-21 | 2021-12-17 | 国网江苏省电力有限公司南京供电分公司 | 一种源网荷互动工控***的异常指令检测方法 |
CN110020744A (zh) * | 2019-01-07 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 动态预测方法及其*** |
CN109919180B (zh) * | 2019-01-23 | 2023-12-22 | 平安科技(深圳)有限公司 | 电子装置、用户操作记录数据的处理方法和存储介质 |
CN109730723B (zh) * | 2019-03-11 | 2021-01-26 | 京东方科技集团股份有限公司 | 确定脉搏传输时间的方法、动脉硬化检测设备及*** |
CN110083899B (zh) * | 2019-04-17 | 2022-10-21 | 中国西安卫星测控中心 | 雷达测元数据的递推诊断与自修复方法 |
CN110378607B (zh) * | 2019-07-24 | 2020-06-05 | 青岛鲁诺金融电子技术有限公司 | 一种基于算法的汽车金融服务*** |
CN110907544B (zh) * | 2019-11-05 | 2022-06-24 | 国网江苏省电力有限公司南通供电分公司 | 一种变压器油中溶解气体含量异常阶跃数据识别方法 |
CN111323219B (zh) * | 2020-01-07 | 2022-03-29 | 中国人民解放军国防科技大学 | 利用振动信号对行星齿轮箱损伤进行早期检测的方法 |
CN112070132A (zh) * | 2020-08-25 | 2020-12-11 | 北京百度网讯科技有限公司 | 样本数据构建方法、装置、设备和介质 |
CN112131274B (zh) * | 2020-09-22 | 2024-01-19 | 平安科技(深圳)有限公司 | 时间序列异常点的检测方法、装置、设备及可读存储介质 |
CN115828055B (zh) * | 2023-02-22 | 2023-04-18 | 民航成都物流技术有限公司 | 一种采样数据的监测方法、装置、计算机设备和存储介质 |
CN116578041B (zh) * | 2023-06-05 | 2023-10-24 | 浙江德欧电气技术股份有限公司 | 一种用于cnc控制器的数据处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339288A (zh) * | 2010-07-21 | 2012-02-01 | ***通信集团辽宁有限公司 | 数据仓库异常数据的检测方法及装置 |
CN103336906A (zh) * | 2013-07-15 | 2013-10-02 | 哈尔滨工业大学 | 环境传感器的采集数据流中连续异常检测的抽样gpr方法 |
CN104298175A (zh) * | 2014-09-26 | 2015-01-21 | 华中科技大学 | 一种基于虚拟化技术的数控***及方法 |
CN104376078A (zh) * | 2014-11-14 | 2015-02-25 | 南京大学 | 一种基于知识熵的异常数据检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005215853A (ja) * | 2004-01-28 | 2005-08-11 | Hitachi Ltd | 制御装置 |
-
2015
- 2015-09-02 CN CN201510560253.9A patent/CN105160181B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339288A (zh) * | 2010-07-21 | 2012-02-01 | ***通信集团辽宁有限公司 | 数据仓库异常数据的检测方法及装置 |
CN103336906A (zh) * | 2013-07-15 | 2013-10-02 | 哈尔滨工业大学 | 环境传感器的采集数据流中连续异常检测的抽样gpr方法 |
CN104298175A (zh) * | 2014-09-26 | 2015-01-21 | 华中科技大学 | 一种基于虚拟化技术的数控***及方法 |
CN104376078A (zh) * | 2014-11-14 | 2015-02-25 | 南京大学 | 一种基于知识熵的异常数据检测方法 |
Non-Patent Citations (4)
Title |
---|
Online Detection of Anomalous Sub-trajectories: A Sliding Window Approach Based on Conformal Anomaly Detection and Local Outlier Factor;Rikard Laxhammar 等;《IFIP International Conference on Artificial Intelligence Applications and Innovations》;20120930;第382卷;第192-202页 * |
一种基于滑动窗口的时间序列异常检测算法;裴丽鹊;《巢湖学院学报》;20110525;第13卷(第3期);第28-31页 * |
基于数据挖掘和变长序列模式匹配的程序行为异常检测;田新广 等;《信号处理》;20080831;第24卷(第4期);第551-555页 * |
滑动窗口模型下的数据流自适应异常检测方法研究;庞景月;《中国优秀硕士学位论文全文数据库信息科技辑》;20140315(第3期);第I138-541页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105160181A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105160181B (zh) | 一种数控***指令域序列异常数据检测方法 | |
CN110648527B (zh) | 一种基于深度学习模型的交通速度预测方法 | |
AU2020200997B2 (en) | Optimization of audio fingerprint search | |
Richard et al. | Temporal action detection using a statistical language model | |
JP4686505B2 (ja) | 時系列データ分類装置、時系列データ分類方法および時系列データ処理装置 | |
Liu | Online pulse deinterleaving with finite automata | |
CN110334208B (zh) | 基于贝叶斯信念网络的lkj故障预测诊断方法和*** | |
CN111835738B (zh) | 一种基于时间序列挖掘的网络异常流量自动检测方法 | |
Lin et al. | Short-term time series forecasting with regression automata | |
CN106844621B (zh) | 一种轨道机车节能操纵实时优化控制策略库构建方法 | |
CN116244647A (zh) | 一种无人机集群的运行状态估计方法 | |
CN109581444B (zh) | 一种gps轨迹分段及语义标注方法 | |
CN109286622B (zh) | 一种基于学习规则集的网络入侵检测方法 | |
CN110032585B (zh) | 一种时间序列双层符号化方法及装置 | |
CN110288021B (zh) | 一种多元工业时间序列数据的分段方法 | |
CN111738067B (zh) | 一种电力在线监测***数据的时间序列异常检测方法 | |
CN111599170B (zh) | 一种基于时序交通网络图的交通运行状态分类方法 | |
CN108509990A (zh) | 一种时序键值型工业过程数据并行分析方法 | |
CN109598933B (zh) | 一种基于数据驱动的k邻近非参数回归的交通流预测方法 | |
CN114428807B (zh) | 地面机动目标运动轨迹语义体系构建与认知优化方法 | |
JP6052043B2 (ja) | 消費電力予測プログラム、消費電力予測方法及び消費電力予測装置 | |
CN110837504A (zh) | 一种工控***异常***事件识别方法 | |
CN107016354B (zh) | 铝电解阳极电流序列的特征模式提取方法及其*** | |
CN110135516A (zh) | 一种基于包络线及内积的高频数据模式识别方法 | |
CN114822040B (zh) | 一种辅助移动节点位置异常检测的良邻居集构造方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |