2. 中国舰船研究设计中心,湖北 武汉 430064;
3. 北京石油化工学院,北京 102617;
4. 远光软件股份有限公司,广东 珠海 519085
2. China Ship Development and Design Center, Wuhan 430064, China;
3. Beijing Institute of Petrochemical Technology, Beijing 102617, China;
4. Yuanguang Software Co., Ltd., Zhuhai 519085, China
为保障运行及作业,大型船舶与海洋工程平台的机舱装备了由数以百计的机电设备构成的大型装备系统。由于海上运行环境恶劣,高温、高湿、高盐,因此船舶与海洋工程平台机舱的设备、系统的故障率远远高于陆上。如果无法及时检测并诊断设备异常,将造成系统无法正常运行,可靠性降低,严重时整船停止运行或出现严重的生产安全事故,带来巨大经济损失。因此,设备异常检测方法的研究对于及时发现异常、降低设备故障损失具有积极的实际意义。
异常检测是指检测给定数据集中不符合已建立的健康状态模式的过程[1]。异常检测技术已经成为数据挖掘领域中的研究热点。一般异常检测方法包括基于统计学方法[2]、基于分类方法(如支持向量机、神经网络)[3-4]、基于距离的方法[5]、基于密度的方法[6]、基于聚类分析的方法[7]等。
目前国内对于机械系统的异常检测主要从以下2个方面进行:1)针对局部设备进行异常检测和故障诊断;2)通过整理大量的设备故障经验数据建立知识库,开展基于机器学习等方法的异常检测。该方法对于实际应用场景下的设备异常检测,存在一定的局限性。首先,该方法针对局部设备的异常,对系统的运行缺乏整体性把握,且不易扩展应用;机械系统的故障类型众多且故障重复频率低,较难构建完备的故障数据知识库。
针对以上问题,本文提出基于两阶段聚类的设备异常检测的方法。该方法对获取的时间序列数据进行预处理后,通过第一阶段聚类获取特征数据的离群时间信息,采取第二阶段聚类算法评估系统异常情况。本文所提出的基于两阶段聚类评估系统异常的方法,从无监督学习的角度出发,不需要大量的专业知识经验,仅从最近的历史数据学习,配合少量的业务经验,即可快速的确定故障位置和对应时间。该方法采用两阶段聚类思想减少了一次聚类的不确定性,可有效提高异常检测的准确性。
1 基于聚类的异常检测方法介绍一般的异常检测方法包括:基于距离的异常检测、基于密度的异常检测,以及在此基础上发展的基于聚类的异常检测[8]:
1)基于距离的异常检测
基于距离的异常值检测方法计算某个数据点与周围其他数据之间的距离,结合设置的距离阈值判断异常。对于异常数据距离的度量方法可以根据数据集的分布情况进行选取,一般有欧式距离、曼哈顿距离等。
2)基于密度的异常检测方法
该方法建立在基于距离的检测方法基础上,主要思想是结合数据点之间的距离和设定范围内的数据点数目2个参数,进而获得“密度”概念,通过密度的计算判断异常[9]。
3)基于聚类的异常检测方法
基于聚类的异常检测方法是通过聚类分析将数据归为不同的簇中,异常数据则是不属于任何簇或者远离簇心的数据点[10-12]。包括基于距离聚类、基于密度聚类和基于层次聚类等[13]。
该方法作为一种无监督学习方法,在不需要大量标签数据的条件下就可以实现异常检测,适用于多种数据类型且具有较广阔的应用范围。但仅仅使用一次聚类方法进行异常检测具备一定的局限性,异常检测结果受聚类簇结果的影响,如果聚类簇的效果不够理想,异常检测结果也相对较差。
本文提出的基于两阶段的聚类异常检测方法,采用两次聚类分析检测系统异常,通过一次聚类构建离群时间段矩阵,再通过层次聚类分析对离群时间段矩阵进行异常检测和定位。该方法有效缓解基于一次聚类进行异常检测的局限性,进一步降低异常检测的误报率。
2 基于两阶段聚类的异常检测方法基于两阶段聚类的异常检测方法通过系统测点数据预处理进行特征计算,利用特征聚类算法构建系统多测点离群时间矩阵,采取层次聚类算法并结合专家经验实现系统异常信息检测。本文提出的异常检测方法框架如图1所示。
![]() |
图 1 异常检测方法框架图 Fig. 1 Frame diagram of anomal detection method |
一般而言,获取的测点数据为时间数据序列,具备高维度、高特征相关及有序等特点,因此为降低数据挖掘所造成的计算成本同时提高数据挖掘的准确性,本文采用静态数据分割方法对测点数据进行分段信息提取。
为了在数据维度简约的基础上最大化保留数据特征,选取三角极值点线性分段方法[14]对测点时间数据序列进行分段操作。该方法通过评估相邻极值点之间的变化幅度进而获取关键点序列。
首先,通过遍历时间数据序列,按照顺序寻找极值点。假设
$ S_{\Delta o_{i-1} 0_{i} e_{i+1}}=\frac{1}{2}\left|o_{i-1} O_{i+1}\right| * h $ | (1) |
其中,
![]() |
图 2 三角极值点线性分段方法 Fig. 2 Linear segmentation method of triangular extreme points |
由此可得,在确定极值点
完成时间序列数据的分段处理后,对分段的数据进行特征提取和特征降维操作。为反映数据异常变化,提取测点数据相关特征信息,主要包括反映数据趋势的指标、反映波动的指标、反映分布特征的指标和反映变异的指标。
由于各指标之间存在一定的信息重叠,为了避免后续聚类的效果受数据量和簇的个数的影响,需进行降维处理,减少信息冗余,采用机器学习中常用的主成分分析法进行数据特征的降维处理。
本文采用EM算法[15]对降维处理的特征数据进行第一阶段聚类构建离群时间段矩阵。EM算法是一种通过模型进行聚类的方法,主要用于包含隐变量的概率模型参数的极大似然估计或极大似然概率估计。采用混合高斯模型[16]通过EM算法进行测点多个分段数据的聚类。假设某个测点的分段数据符合高斯分布,该算法利用计算确定的每个高斯部件的参数拟合给定的分段数据,获得模糊聚类结果。即由确定的参数决定每个数据实例属于各高斯分布的概率。
对于一个完整数据集
${z_{ik}} = \left\{ \begin{array}{l} 1,\quad {\rm{if}}\;{x_i}\;{\rm{belongs\;to\;k}}; \\ 0,\quad {\rm{otherwise}} {\text{。}}\\ \end{array} \right.$ | (2) |
假设
$L({\theta _k},{\pi _k},{z_{ik}}|x) = \sum\limits_{i = 1}^n {\sum\limits_{k = 1}^M {{z_{ik}}\left[ {\log {\pi _k}{f_k}({x_i}|{\theta _k})} \right]} } {\text{。}}$ | (3) |
通过EM算法确定GMM模型的参数,进一步推断每个实例属于某个类别的概率,不断修改迭代直至收敛。
EM算法迭代过程分两步进行:1)E-step,通过观测向量
基于聚类分析结果,将每个测点可能出现异常的时间段构建为测点的离群时间段矩阵,然后通过第二阶段聚类分析检测系统具体的异常情况。
2.2 基于层次聚类的异常检测通过一阶段聚类筛选初始各测点异常信息,由于该过程未考虑多测点之间的联动性,无法准确定位异常情况,因此应在多个测点的离群时间段上采用层次聚类方法进行二次聚类评估,寻找聚类的核心簇点,进而确定系统具体的异常情况。
基于层次聚类的异常检测方法通过对第一阶段聚类结果进行相似度计算,采用自底向上或者自顶向下的方法对离群时间段数据进行层次划分,进而形成树形结构图。本文采用凝聚算法即自底向上的聚合方法进行聚类操作,首先将每个离群时间段数据作为初始的聚类簇,其次聚合相似度最高的两个类别,接着不断迭代聚合过程直至分类完成。具体过程为:
1)将离群时间段数据矩阵
$C = ({c_1},{c_2}, \cdots {c_n}){\text{。}}$ |
2)利用全连接算法度量各实例类别之间的相似性,如下式:
$Dis{t_{\max }}({c_1},{c_2}) = \mathop {\max }\limits_{{X_i} \in {c_1},{X_j} \in {c_2}} {\rm{Dist(}}{{\rm{X}}_i}{\rm{ - }}{{\rm{X}}_j}{\rm{) }}{\text{。}}$ | (4) |
其中:
3)通过上式计算,合并相似度最大的2个类别为新的类别,因此构成新的聚类。
4)再进行步骤2,反复迭代直至达到终止条件。
5)返回层次聚类的结果。
根据层次聚类结果,找出各类别的核心簇点,该簇点对应的时间段一般为异常发生的时间段,同时核心簇点的监测数据为子系统在各测点对应的异常数据。将获得的各测点对应的异常数据反馈到,第一阶段聚类和第二阶段聚类,用于真实评价异常的结果,标记异常对错,决策学习和优化异常的阈值参数。通过以上流程,能够有效监测除绝大部分系统变化异常的测点,对于未检测到的小部分导致异常变化的数据,利用专家系统进行筛选。
3 实验与评估考虑到船舶或海洋工程平台开展实验的复杂性及经济性,在方法研究初始阶段,可用已有的同类数据开展验证。证明方法可行性后,下一阶段可到船舶或海工平台开展深入实验验证。目前普遍装备有安全仪表系统,较方便获取足够的数据,而且数据类型多,可验证方法对不同类型数据的适应性。本文以某系统的实时运行数据进行实验分析。通过对测点运行数据进行两阶段聚类获取异常情况,采用相应的评价指标对实验结果进行有效性验证,同时和其他异常检测方法进行性能对比。
3.1 数据获取与准备选取系统的主要测点如表1所示。采集7月16日02:00:00至7月16日 22:00:00的测点数据,采集频率为2 s。
![]() |
表 1 选取的系统主要测点 Tab.1 Selected main measuring points of pulverizing system |
为了消除数据属性之间的差异性,提高聚类效果的准确性,采取常用的离差标准化算法对测点数据进行标准归一化处理。设某测点数据集为
$\mathop {{s_{ij}}^\prime }\limits_{1 \leqslant j \leqslant n} = \frac{{\mathop {{s_{ij}}}\limits_{1 \leqslant j \leqslant n} - \mathop {\min }\limits_{1 \leqslant j \leqslant n} \left\{ {{s_{ij}}} \right\}}}{{\mathop {\max }\limits_{1 \leqslant j \leqslant n} \left\{ {{s_{ij}}} \right\} - \mathop {\min }\limits_{1 \leqslant j \leqslant n} \left\{ {{s_{ij}}} \right\}}}{\text{。}}$ | (5) |
式中:
为了更加直观地验证本文提出的异常检测方法性能,根据实验结果对比系统数据异常缺陷单进行对比验证,采用相应的评价指标进行分析。评价指标为:指标包括误检率(FAR)和准确率(PR)。
其中,误检率是指没有被正确判断出所属类别的数目E与检测数据集中总的正常数目RN之比,即
$FAR{\rm{ = }}\frac{E}{{RN}}{\text{,}}$ | (6) |
准确率是指被正确判断出所属类别的数目RA与总的数目N之比,即
$PR = \frac{{RA}}{N}{\text{。}}$ | (7) |
在进行层次聚类时,根据聚类效果进行参数的调整。由于实验数据是无标签的,因此采用轮廓系数法进行聚类性能的评价。轮廓系数的计算公式如下:
$s = \frac{{b - a}}{{\max (a,b)}}{\text{。}}$ | (8) |
其中,a代表样本与同类数据中所有其他点之间的平均距离,b代表样本与下一个最近聚类簇中所有其他点之间的平均距离。最终整体的轮廓系数是计算出所有样本的轮廓系数后取平均值得到的,因此轮廓系数得分越高,说明此时的聚类结果使得同一种类之间聚集的比较紧密,同时不同的类之间聚集的比较远,据此可以判定此时的聚类效果较好。
本文选取层次聚类的不同簇间距离度量方法为最大距离标准方法,同时考虑聚类数目选择的实验区间至20种,分不同的情况进行实验进而得到聚类的轮廓系数。实验结果如图3所示,其中横坐标表示聚类数目,纵坐标表示轮廓系数的值。由图可知,最佳聚类数目为6。
![]() |
图 3 聚类最佳数目 Fig. 3 Optimal number of clusters |
根据二次聚类异常检测结果,进而获聚类核心簇点,获取精准异常测点和对应的时间段。由实验结果可得,系统出现异常的测点分别为主蒸汽压力测点和锅炉总风量测点。图4为检测到主蒸汽压力测点出现异常情况,其中虚线表示时间段分割,灰色区域表示异常检测数据所分布的时间段。该测点异常时段包括4个,分别为12:54:02至13:24:16,15:02:26-16:06:18,17:54:12-18:56:04和19:26:12-20:30:36。
![]() |
图 4 主蒸汽压力测点对应异常时段 Fig. 4 Corresponding abnormal period of main steam pressure measuring points |
图5为时间段内的数据点异常情况,其中“1”表示正常数据,“0”表示异常数据。
![]() |
图 5 主蒸汽压力异常时段数据情况 Fig. 5 Data in abnormal period of main steam pressure |
锅炉总风量测点异常情况如图6所示。二次聚类获得的异常数据分布在2个时间段,分别为03:36:24-04:24:32和08:48:00-10:06:12,如图中灰色区域所示。图7为异常时间段的数据异常情况,其中“1”表示正常数据,“0”表示异常数据。
![]() |
图 6 锅炉总风量测点对应异常时段 Fig. 6 Abnormal period corresponding to total air volume measuring point of boiler |
![]() |
图 7 锅炉总风量压力异常时段数据情况 Fig. 7 Data during abnormal period of total air volume and pressure of boiler |
为验证本文异常检测方法性能,结合系统各测点异常缺陷单,对比两阶段聚类(GMM+HC)和仅采用一阶段聚类(GMM)的结果,如表2所示。其中,两阶段聚类方法比仅采用一阶段聚类方法有效降低了异常检测误检率,同时提高检测准确度。
![]() |
表 2 一阶段聚类检测和两阶段聚类检测方法性能对比 Tab.2 performance comparison of one-stage cluster detection and two-stage cluster detection methods |
为进一步验证本文方法性能,研究多种异常检测方法并采用同一数据集进行对比分析,结合表2性能对比结果,绘制不同异常检测方法性能对比图,如图8所示。其中基于局部离群点检测(LOF)[9]和基于DBSCAN检测方法[17]在误检率和准确率方面明显不如本文提出的基于两阶段聚类的异常检测方法。主要在于LOF检测方法仅依赖于邻域内的密度之比,未充分考虑全局信息即测点之间的联动性;而DBSCAN检测方法受聚类参数影响较大。本文提出的方法充分考虑各测点间的联动性。
![]() |
图 8 不同异常检测方法性能对比 Fig. 8 performance comparison of different anomal detection methods |
针对现有异常检测方法在机电系统异常检测中存在局限性、误检率高等问题,本文提出基于两阶段聚类的异常检测方法。该算法主要包括数据采集、预处理、两阶段聚类异常检测,通过一次聚类进行初始异常时段筛选,再根据二次聚类进行异常定位,进而达到降低误检率的目的。同时,该方法从无监督学习出发,不需要大量的专业知识经验,仅从最近的历史数据学习,并配合少量的业务经验就可以实现机电系统异常的检测。实验表明,该方法提高了异常检测准确率,有效减少了异常误判的产生。因此,基于两阶段聚类的异常检测方法可以实现精准的快速故障检测,具有良好的应用前景。
[1] |
KNNOR E M, NG R T. Algorithms for Mining Distance-Based Outliers in Large Datasets[C]. In: Proc. 24th Int. Conf. On Very Large Data Bases, New York, NY, 1998: 392−403.
|
[2] |
JIANG S Y, LI Q H, LI K L, et al. GLOF: a new approach for mining local outlier[C]// Machine Learning and Cybernetics, 2003 International Conference on. IEEE, 2003.
|
[3] |
LEONID PORTNOY, ELEAZAR ESKIN AND SALVATORE J. STOLFO. Intrusion detection with unlabeled data using clustering[C]. In: Proc of ACM CSS Workshop on Data Mining Applied to Security (DM-SA-2001). Philadelphia, PA, 2001.
|
[4] |
王雷, 张瑞青, 盛伟, 等. 基于支持向量机的回归预测和异常数据检测[J]. 中国电机工程学报, 2009, 29(8): 92-96. |
[5] |
HE Z, XU X, DENG S. Discovering cluster-based local outliers[J]. Pattern Recognition Letters, 2003, 24(9-10): 1641-1650. DOI:10.1016/S0167-8655(03)00003-5 |
[6] |
庄池杰, 张斌, 胡军, 等. 基于无监督学习的电力用户异常用电模式检测[J]. 中国电机工程学报, 2016, 36(2): 379-387. |
[7] |
李洪成, 吴晓平, 姜洪海. 基于改进聚类分析的网络流量异常检测方法[J]. 网络与信息安全学报, 2015, 1(1): 66-71. |
[8] |
HAWKINSD M. Identification of Outliers[M]. Pretoria, South Africa: Council for Scientific and Industrial Research, 1980.
|
[9] |
BREUNIG M M, KRIEGEL H P, NG R T, et al. LOF: Identifying Density-Based Local Outliers [C]// Acm Sigmod International Conference on Management of Data. ACM, 2000.
|
[10] |
LOU S, TANG D, ZENG W, ET AL. Application of Clustering Filter for Noise and Outlier Suppression in Optical Measurement of Structured Surfaces[J]. IEEE Transactions on Instrumentation and Measurement, 2020. |
[11] |
MA J, JIANG X, JIANG J, et al. Robust Feature Matching Using Spatial Clustering With Heavy Outliers[J]. IEEE Transactions on Image Processing, 2019. |
[12] |
JIANG M F, TSENG S S, SU C M. Two-phase clustering process for outliers detection[J]. Pattern Recognition Letters, 2001, 22(6-7): 691-700. DOI:10.1016/S0167-8655(00)00131-8 |
[13] |
田力, 向敏. 基于密度聚类技术的电力系统用电量异常分析算法[J]. 电力系统自动化, 2017, 41(5): 64-70. |
[14] |
戴爱明, 高学东. 时间序列三角极值点线性分段算法[J]南昌航空大学学报(自然科学版), 2009(3): 116−121.
|
[15] |
DEMPSTER A P. Maximum likelihood from incomplete data via the EM algorithm[J]. Journal of the Royal Statal Society, 1977, 39. |
[16] |
李娜, 钟诚. 基于划分和凝聚层次聚类的无监督异常检测[J]. 计算机工程, 2008(2): 120-123. DOI:10.3969/j.issn.1000-3428.2008.02.040 |
[17] |
周亚建, 徐晨, 李继国. 基于改进CURE聚类算法的无监督异常检测方法[J]. 通信学报, 2010, 31(7): 18-23. DOI:10.3969/j.issn.1000-436X.2010.07.003 |