CN117131449A - 面向数据治理的具有传播学习能力的异常识别方法及系统 - Google Patents

面向数据治理的具有传播学习能力的异常识别方法及系统 Download PDF

Info

Publication number
CN117131449A
CN117131449A CN202311087471.6A CN202311087471A CN117131449A CN 117131449 A CN117131449 A CN 117131449A CN 202311087471 A CN202311087471 A CN 202311087471A CN 117131449 A CN117131449 A CN 117131449A
Authority
CN
China
Prior art keywords
data
field
sampling
abnormal
classifier
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.)
Pending
Application number
CN202311087471.6A
Other languages
English (en)
Inventor
于瑞强
李晓宇
李锐
喻魏贤
宋欢予
闫谷丰
刘效强
杨玉传
刘军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
YANTAI HAIYI SOFTWARE CO Ltd
Original Assignee
YANTAI HAIYI SOFTWARE CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by YANTAI HAIYI SOFTWARE CO Ltd filed Critical YANTAI HAIYI SOFTWARE CO Ltd
Priority to CN202311087471.6A priority Critical patent/CN117131449A/zh
Publication of CN117131449A publication Critical patent/CN117131449A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2433Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/10Pre-processing; Data cleansing
    • G06F18/15Statistical pre-processing, e.g. techniques for normalisation or restoring missing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0895Weakly supervised learning, e.g. semi-supervised or self-supervised learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种面向数据治理的具有传播学习能力的异常识别方法及系统,该方法包括:配置文件加载,读取待检测数据,且区分为数值型字段和分类型字段;对待检测数据进行预处理,获取到采样区间和初始标签;根据采样区间进行数据采样,结合交互标记操作,训练字段级异常分类器与记录级异常分类器;利用训练好的字段级异常分类器和记录级异常分类器分别对待检测数据进行字段级异常识别和记录级异常识别,输出异常数据。本发明依据采样算法抽取有代表性的数据,通过系统中集成的用户交互模块对数据进行标注,通过标签传播扩展标签数量,大幅减少所需标签数据的数量,训练有监督的分类模型并结合主动学习提升混合数据异常识别的准确性。

Description

面向数据治理的具有传播学习能力的异常识别方法及系统
技术领域
本发明属于数据治理领域,涉及异常数据识别技术,具体涉及一种面向数据治理的具有传播学习能力的异常识别方法及系统。
背景技术
数据治理是发挥数据要素价值的关键抓手,异常数据的识别是数据治理领域的重要环节。异常数据通常被称定义为离群值、噪声等(如具有明显差异的观测值)。异常数据可能源自多个因素,包括机械故障、仪器错误、人为错误等,而这些数据的产生通常是不可避免的,这些异常值的存在会降低数据质量,对数据分析的结果产生不利影响,甚至可能导致严重后果。因此需要在数据治理过程中对异常数据进行识别与排除。
目前常用的异常检测技术有以下几种:
基于人工规则和统计的方法:人工规则方法主要根据专家经验设立规则对数据进行核查,与规则不符即为异常。但是基于规则的检测方法只能检出规则之内的异常,检测面有限。基于统计学的异常检测方法一般是建立数据分布模型、计算对象符合该模型的概率并将低概率的对象标记为异常。一些常用的方法有箱线图、3σ准则和Grubbs检验等,这些方法都假设数据服从某种分布,并利用数据进行参数估计。其他方法还有混合高斯建模、基于马尔科夫的模型等。虽然基于统计学的方法具有较好的鲁棒性,适用于低维度数据,但在处理高维数据时存在限制,同时也受数据分布和模型参数的影响。
基于有监督及无监督的机器学习方法:有监督的机器学习假设在给定的特征空间中可以学习到能够区分正常和异常类的分类器,从一组标记数据中学习模型,然后使用学习到的模型对待检测数据进行分类。常见的有监督方法有贝叶斯网络、支持向量机、随机森林等。无监督的机器学习包含密度检测、特殊的分类方法以及其他方法。密度检测方法估计每个数据实例的邻域密度,位于低密度邻域的观测值被认为是异常,经典的密度方法有DBSCAN和局部异常因子LOF。
基于深度学习的方法:深度学习技术能够自动学习数据的高级表示和特征,从而有效地捕捉数据中的复杂模式和异常行为,常见的方法包括自编码器AE、变分自编码器VAE和生成对抗网络GAN等。自编码器由编码器和解码器两部分组成,通过将输入数据压缩到低维编码表示并重构原始数据来学习数据的潜在结构。生成对抗网络是由生成器和判别器组成的对抗性模型。在异常检测中,可以使用生成器来生成正常数据分布,并使用判别器来区分生成样本和真实样本。
有监督异常检测技术在性能上优于非监督异常检测技术,因为有监督方法使用标记样本进行训练,但是获取有标记的数据耗费的人工成本极大,在工业上难以大规模应用。无监督异常检测方法无需标签即可训练,但是由于缺乏标签信息,对数据的处理较为主观,更多地依赖于数据的分布和统计特性,并且不同的算法和参数设置可能导致不同的异常检测结果,这使得结果的解释和比较变得困难。
随着数据成为生产要素的数据时代的到来,数据价值的发挥对于数据质量提出了更好的要求,数据治理成为提高数据质量的关键抓手,如何高效、准确的识别混合数据中的异常数据成为结构化数据治理中的核心问题之一。然而现有的异常识别算法在处理混合型数据方面存在诸多不足,检测的目标尺度也较为单一。混合型数据是指包含数值型和分类型特征的数据。基于人工规则和统计的方法往往仅限定于分类型数据;传统的无监督学习方法异常识别的准确率过低;经典的IF算法仅关注于数值型数据的异常检测,对于混合型数据的检测效果不佳。深度学习等方法依靠数据重构识别异常往往需要实现有纯净的训练数据;有监督方法则需要事先对训练集进行完备的正常/异常标注,这些前提在实际工作中往往都无法满足,海量数据的标注需要极大的人力投入。更为关键的是:现有的各种方法都假设不同数据属性之间是独立的,这在现实中完全无法满足。现实中的数据不同数据属性之间往往是有相关性的;此外,现有的方法往往只能够识别出整条记录是否有异常,而无法识别出存在异常的具体字段。
发明内容
发明目的:为了克服现有技术对混合型数据中不同种类异常的识别能力不足的问题,提供一种面向数据治理的具有传播学习能力的半监督异常识别方法及系统,首先依据集成的无监督异常检测算法构建异常特征矩阵,然后依据采样算法抽取有代表性的数据,通过系统中集成的用户交互模块对数据进行标注,通过标签传播扩展标签数量,大幅减少所需标签数据的数量,通过训练有监督的异常检测模型并结合主动学习提升识别准确性,不仅可以识别当前记录是否异常,而且可以识别具体异常的字段。
技术方案:为实现上述目的,本发明提供一种面向数据治理的具有传播学习能力的异常识别方法,包括如下步骤:
S1:进行配置文件加载,从数据源读取待检测数据,且将待检测数据区分为数值型字段和分类型字段;
S2:对待检测数据进行预处理,获取到采样区间和初始标签;
S3:根据采样区间进行数据采样,结合交互标记操作,训练字段级异常分类器与记录级异常分类器;
S4:利用训练好的字段级异常分类器和记录级异常分类器分别对待检测数据进行字段级异常识别和记录级异常识别,输出异常数据。
进一步地,所述步骤S1中配置文件加载具体为:从配置文件中获取参数设置和正常数据信息等相关配置,参数设置包括待检测数据路径、采样数量、特征生成算法、标签传播方式等,正常数据信息是指用户已知的该数据上的正常记录及分类型字段的正常类别值,初始化记录集合Lr与字段集合Lc,将正常数据信息保存在对应结构中,若无则为空,如Lr={x1,x2,...},Lc={j1:(c1,c2,...),...},其中xi是一条完整的记录,c1代表j1列中的类别的值。
进一步地,所述步骤S1中数据读取为:从数据源读取待检测数据D,区分数据中数值型字段和分类型字段的列名称,将数据、列名称保存在对应的结构里。
进一步地,所述步骤S2中的预处理具体包括如下步骤:
A1:生成特征集合
A1-1:对于数值型字段,根据特征生成算法配置参数并生成特征;采用孤立森林(IsolationForests,IF)、经验累积分布检测(Empirical-Cumulative-distribution-basedOutlier Detection,ECOD)算法、直方图检测(Histogram-basedOutlier Score,HBOS)算法其中的某一种或多种生成特征,生成特征的方法是对每一列数值字段进行检测,将该算法的异常得分作为字段的特征,共生成m维特征,并将特征使用Min-Max标准化处理,其中m是使用上述算法的数量;
A1-2:对于分类型字段,利用同频异化的频率转化方法为每个字段生成一维特征;
A1-3:将每个字段对应的特征保存在集合中;
A2:群体识别与编码,包括如下步骤:
A2-1:基于聚类方法将数值型字段的特征转换为聚类结果的编码表示;首先为每个数值列训练一个聚类模型,采用K-Means算法进行聚类,在构建聚类模型后,将每个数值都替换为对应的聚类标签结果,设第j列字段生成四个聚类簇Cj={c0,c1,c2,c3},将该列的所有数据替换为其所属的聚类簇编号{0,1,2,3};
A2-2:将分类型字段特征转换为编码表示;对于任意一列分类型字段,将其按频率特征大小进行排序,并转换为编码表示,如该列中频率最大的类别编码为0,其次的为1,以此类推,将所有列转换后生成编码数据表格DC;
A3:获取采样区间和初始标签,包括如下步骤:
A3-1:使用增强孤立森林预评分:
为了减轻用户的交互压力,需要尽可能的减少用户待标注数据的数量,采用无监督算法实现异常记录的预评估,确定较为明显正常和异常数据,将不确定性较大的一部分数据进行采样后再由人工进行标注,提升采样的有效性。本发明提供的增强孤立森林算法模型能够有效识别混合型数据异常,使用增强孤立森林算法计算每条数据的异常得分,并对得分由高到低进行排序,分数越高表明该条数据越异常;
A3-2:切分数据并确定采样区间
基于设定阈值(一般设置为1%~5%)按照增强孤立森林得分高低对数据进行切分,在阈值附近的群体标签最难以判别,切分后获得异常数据集合A和正常数据集合N;
对集合A和N去重,获得去重集合A'和N',再对集合A'和N'分别以50%的比例进一步划分,记为AC、AI、NI、NC;认为集合A'的后50%与集合N'的前50%即AI和NI为不确定性集合,因为这一部分数据更接近异常阈值,将其划分为采样区间,而对于采样区间外的样本即AC和NC认为是确定性样本;
A3-3:获取初始标签
依据增强孤立森林得分对采样区间外的数据进行标记,获取初始标签,总体标记方式如下:
其中,di是原始数据集D中的第i条数据,li是di的初始标签。
进一步地,所述步骤A1中数据标准化是将不同量纲的数据统一到同一量纲范围内的过程。其目的是消除不同变量之间的量纲影响,使得不同指标具有可比性。步骤A1中Min-Max标准化具体为:
将原始数据线性映射到[0,1]的范围内,其公式为:
其中min(X)和max(X)分别是该列数据的最大值和最小值;
IF算法具体为:IF算法是一种无监督机器学习算法,主要用于检测数值型数据的异常情况,通过构建一组隔离树的方法在数据中寻找孤立点,根据隔离树的路径长度计算样本的异常分数;
ECOD算法具体为:ECOD算法也是一种无监督机器学习算法,首先通过计算数据的经验累积分布函数ECDF,以非参数方式估计数据的潜在分布,其次使用这些经验分布来估计每个数据点的尾部概率,最后通过估计的尾部概率的聚合来计算每个数据点的离群值,计算经验累积分布函数ECDF的方法为:
其中,和/>分别为第j维度上的左尾ECDF和右尾ECDF,Θ为指示函数,当其参数为真时,该指示函数为1,否则为0;每个样本的离群分计算方式如下:
其中,Oleft(x)、Oright(x)、Oauto(x)分别左尾离群分,右尾离群分和矫正离群分,d为x的维度,γ为数据的偏度;
样本最终的异常得分则为:
O(x)=max{Oleft(x),Oright(x),Oauto(x)}
HBOS算法具体为:直方图检测HBOS是一种统计方法,首先对该列使用Min-Max标准化方法,将其缩放到相同的尺度范围,其次将数据范围划分为若干个区间,统计每个区间中样本的数量,并计算该区间样本数量的相对频率;假设该列共有k个区间,表示为B={b1,b2...,bk},则第i个区间对应的相对频率为:
其中,n(i)表示在区间bi中的样本数量,n表示总样本数量。
对于每个样本,将其映射到相应的区间,假设样本x落在区间bi中,则计算的异常分值s(x)为:
s(x)=-log(pi)
进一步地,所述步骤A1中频率转化与同频异化方法具体为:
频率转化计算字段中每个类别的出现频次,将其转化为频率表示,转化方式如下:
其中,c(i)是该字段中第i和类别,n为总数量;
由于分类型数据通常会存在频率一样的情况,从而无法区分,本发明提出同频异化方法,通过添加随机值的策略区分频率相同的类别,并使得对结果的影响最小化;首先对所有类别频率进行升序排序,再对频率相同的取值添加随机值,使添加随机值后不改变频率排序;设排序集合为P={p1,p2,...,pl},则随机值r取值方式如下:
r=random(pi-pleft,pright-pi)
其中,pleft是pi左侧不等于pi的最大值,pright是pi右侧不等于pi的最小值。
进一步地,所述步骤A2-1中采用K-Means算法进行聚类的具体过程为:
B1:在所有样本点中任意初始化k个样本点作为聚类的簇质心;
B2:计算所有点与k个质心间的距离,并将每个数据点分配到最接近的质心所在的簇;
B3:根据新划分的点重新计算每个簇的质心;
B4:重复步骤B1~B3,直到质心收敛;
其中计算质心的方法为:
其中,μi代表第i个质心,ni为簇Si的包含点的个数。
进一步地,所述步骤A3-1中针对经典IF算法仅适用于数值型数据而无法处理分类型数据以及混合型数据的问题,本发明中提出了增强孤立森林算法,使其可以有效检测混合型数据异常,并且具有很强的鲁棒性,用于对混合数据进行异常评分。
增强孤立森林算法的具体计算步骤如下:
C1:计算分类型字段的信息增益率
信息增益用于衡量字段对分类结果影响程度,信息增益率是信息增益除以划分后的数据集的熵,这样可以对取值数目较多的特征进行惩罚,其计算方式如下:
其中,和/>和分别表示两个不同的分类型字段,GainRatio(·)、Gain(·)分别表示计算分类型字段间的信息增益率和信息增益,/>表示计算字段/>对/>的信息增益率;H(·)与H(·|·)分别表示计算信息熵与条件熵;vm表示分类字段/>中的第m个属性值,p(vm)表示在字段/>中,计算等于vm的属性值个数与整个字段长度的比值;
C2:计算相关性
由于信息增益率具有不对称性,无法很好的衡量分类字段间的相关性,因此要对信息增益率进行变换,计算分类属性之间的相关性,;如下所示:
其中,表示分类型字段/>与/>之间的相关性;
C3:特征处理
根据数据中各分类型字段之间的相关性分析结果,将显著相关的分类字段拼接在一起,生成新的分类字段,并删除原始的分类字段,从而形成新的混合数据。对现有分类字段提取特征,即利用同频异化的频率转化方法将分类型数据转换为数值型数据,使其能够对混合数据进行识别;
C4:抽样
从数据中随机抽取一定数量的子样本;对于每棵孤立树,设置一个根结点,并将根节点作为当前节点;
C5:属性分割
在当前节点上,随机选择若干个维度作为目标维度用于分割,并根据分割结果构建该节点的左子树和右子树,分割策略如下:
其中,表示由若干个目标维度组成的向量,/>表示截距向量,通过在每个目标维度的最大与最小值间的均匀分布中取值得出,/>表示法向量,使用标准正态分布为每个目标维度随机生成;
通过计算获取分割超平面,若小于0,即位于分割超平面下方,则对应的样本落入左子树,其余的落入右子树;
C6:构建增强孤立树
在子节点中重复执行步骤C5,直到子节点中只有一个数据或子节点已达到设置的树的最大深度,则停止步骤,完成孤立树的构建;
C7:构建增强孤立森林
根据上述步骤C4至步骤C6,构建多颗增强孤立树,形成增强孤立森林;
C8:计算异常得分
将步骤C3处理后的数据集输入增强孤立森林中,对于每条数据,计算其在增强孤立森林中的平均路径长度,计算公式为:
其中,E(h(x))表示平均路径长度,T表示增强孤立森林中树的个数,ht(x)表示数据点在树t上的路径长度;
将所有数据的平均路径长度进行归一化处理,可得出每条数据的异常评分,计算公式为:
c(n)=2H(n-1)-2(n-1)/n
H(k)=ln(k)+ε
其中,n表示构建树输入样本的数据量,c(n)是全局平均路径长度,用于做归一化处理,ε为欧拉常数,ε=0.5772156649。
进一步地,所述步骤S3具体包括如下步骤:
D1:数据采样及结果获取,包括如下步骤:
D1-1:对采样区间内的数据进行采样
由于不同记录的每一列中可能包含相同的错误,在数据预处理模块中,每个数据列都被分成若干个数据簇,并以编码表示,为了尽可能的减少需要标记的数量,理想情况下,应保证采样的数据应覆盖每列中所有未标记的簇。因此,通过多次迭代的方式进行采样,在每次迭代中,根据Softmax函数计算每条数据的采样概率:
其中,pi是di的采样概率,pij是数据di的在第j列的概率,假设di在第j列的属于第c簇,Njc代表第j列第c簇已经被采样的数量,k是第j列的总簇数;使用该概率有利于获取包含较少已经被采样的簇的数据,依据采样概率进行抽样,直到采样数量达到预先设置的值为止,形成采样集合S;
D1-2:使用四分位法筛选待标记分类型数据
对于每个分类型字段,依据频率特征计算四分位值,将频率小于下四分位界限的类别加入分类字段采样集合Sl中,下四分位界限计算方式如下:
IQR=1.5·(Q3-Q1)
b=Q1-IQR
其中,Q1和Q3分别为25%分位数和75%分位数;
D1-3:使用用户交互模块获取标记结果
基于用户交互模块,将采样集合S和分类字段采样集合Sl传递给用户进行标注,并解析标注结果,获取数据标签;
D2:通过交互式主动学习训练记录级分类器,包括如下步骤:
D2-1:训练初始分类模型
与传统的决策树模型相比,本发明选择的LightGBM模型具有的训练速度与准确性更高,选取LightGBM作为分类器,结合已获取的数据标签,包括数据与配置加载模块生成的记录集合Lr、数据预处理模块中步骤S2的初始标签以及交互模块获取的数据标签,将编码表DC中对应的数据作为输入,获得初次训练好的模型;
D2-2:依据预测概率选择待标记样本
使用模型对去重集合A'和N'进行预测,获取每个样本所属正常类及异常类的预测概率,计算公式如下:
其中,P(y=k|x)表示样本属于类别k的概率,scorek表示所有决策树的类别k的平均分数,scorek的计算方法为:
其中,pi(k)表示样本在第i棵树中被分到叶子节点,并且该叶子节点上类别k的样本概率,N为决策树的数量,ni是此叶子结点中点的总数量,ni(k)是叶子结点中属于类别k的数量;
根据预测概率计算每个样本的不确定性概率,计算方式如下:
prop=Abs(P(y=0|x)-0.5)+Abs(P(y=1|x)-0.5)
其中,P(y=0|x)和P(y=1|x)分别表示样本正常和异常的概率,Abs()代表取绝对值操作;
将所有预测样本按不确定性概率排序,取不确定性最大的10条进行采样,并将其更新到采样集合S中;
D2-3:标注样本
将上一步中采样获得的样本传入用户交互模块并获取标签,更新标签集合;
D2-4:更新模型
使用所有已有标签的数据训练一个新的模型;
D2-5:重复步骤D2-2至D2-4,直到步骤D2-2的采样数量达到预先设置的值为止,获得最终的记录级异常检测分类器m0
D3:字段标签传播
为了最大化的利用已知信息,减少所需标注的数量,本发明设计了基于编码结果的字段标签传播方案,对于数值列字段,将已有标签根据聚类结果传播给同一簇的其他数据,获得额外的带有标签的字段数据;对于分类型字段,将标签传播给同一属性值的其他数据上;
由于一个集群可能有多个带有相互矛盾的正常或异常标签,本发明设计了两种传播方式——同质传播与多数传播。同质传播只对不包含矛盾标签的集群进行传播,即聚类中只包含一种标记结果,假设对于第j列字段包含r个聚类簇C={c1,c2,...,cr},若ci中的已标记的数据标签都为1,则ci中的其他数据标签也被传播为1;
多数传播会在具有混合标签的集群中传播用户标签,选择集群中数量更多的一种标签进行传播。若ci中的已标记的数据标签1的占比更大,则ci中的其他数据标签也被传播为1,若占比相同则不传播;
依据配置文件设置选择一种传播方式,对每一列字段分别进行标签传播,得到传播扩展后的字段级标签;
D4:训练字段级分类器
对每个数值型字段j,筛选已有标签的数据,使用步骤S2中生成的特征训练一个LightGBM分类器mj,得到l个字段级异常分类器M={m1,m2,...,ml},l代表数据包含的数值型字段的列数。
进一步地,所述步骤D2-1中LightGBM是一种基于梯度提升决策树的算法模型,可适用于分类及回归任务。其采用梯度提升方法,通过迭代的方式逐步提升模型的准确性。LightGBM模型的运行过程为:初始时,模型为一个简单的决策树,然后在每一轮迭代中逐渐添加更多的决策树来纠正之前模型的预测误差;使用直方图算法来优化决策树的训练过程,将连续特征的值进行离散化处理,将数据集划分成多个直方块;在每个直方块中,计算该直方块内样本的梯度和样本数量,然后选择最佳划分点;梯度的计算方式为:
其中是损失函数,y是真实值,/>是模型预测值。
本发明还提供一种面向数据治理的具有传播学习能力的异常识别系统,包括数据与配置加载模块、算法库集成模块、数据预处理模块、用户交互模块、模型训练模块、异常识别模块;
所述数据与配置加载模块用于执行步骤S1中的加载配置文件和加载数据;
所述算法库集成模块用于存储其他模块所需的各项算法,以供随时调用;
所述数据预处理模块用于执行步骤S2,主要实现对数据的清洗转换、预评估等功能,以便于后续进行异常模型训练与识别,包括生成特征集合、群体识别与编码、获取采样区间和初始标签三个步骤;
所述用户交互模块用于接收系统其他模块的采样结果数据,将采样结果展示给用户并进行标注操作,最后接收用户标记结果并保存在相应结构中;
在一次采样过程结束后,用户需要对每条记录数据分别标注字段异常和记录异常,用户每次标注一条数据,标记形式如{0,1,0,0,...,1},其中最后一位为记录级异常标签,前d个值代表每个字段的异常标签,d是数据包含的总列数,0代表正常,1代表异常;若传出数据为单个待标记字段值,则直接进行标记。通过解析用户输入,将记录标签和字段标签分别保存在记录标签集合和字段标签集合中。在用户全部标注完成及解析结果无误后,才会进入下一阶段,否则重新进入标注阶段。
所述模型训练模块与用户交互模块协同工作用于执行步骤S3,获取采样数据及与标记结果,并训练字段级异常分类器与记录级异常分类器;
所述异常识别模块用于执行步骤S4,基于训练好的记录级异常分类器和字段级分类器分别识别记录异常与字段异常,最终输出异常数据。
异常识别模块的识别流程为:首先,对未标记的记录数据进行检测,将编码表DC输入训练好的记录级分类器中,识别记录级异常;其次将数值列特征输入对应列的字段级分类器中,检测数值列字段异常;最后依据配置加载模块中生成的字段集合Lc及用户的标注结果,结合标签传播可确定分类列大部分数据的异常情况,剩余数据的频率特征均处于计算的四分位界限内,认为其属于正常类别。
本发明设计了一种半监督方法,相比于完全依赖于有标签数据的监督学习方法,半监督学习算法能够在少量有标签数据的情况下,结合其他无标签数据进行模型训练;同时依据标签数据的信息来减少噪声的影响,从而提高模型的鲁棒性和稳定性。本发明设计的半监督方法首先依据采样算法抽取有代表性的数据,再通过系统中集成的用户交互模块对数据进行标注及通过标签传播扩展标签数量,可以大幅减少所需标签数据的数量,并用于训练分类模型并结合主动学习提升识别准确性。
为了提升混合型数据的检测效果,本发明在系统中对分类型字段和数值型字段分别应用不同的特征处理方式与检测方式;为了识别数据中含有的多种异常类型,在系统中设置了多种尺度的异常检测分类器,包括字段级分类器与记录级分类器,分别应对每个字段内的离群异常与字段间的关联关系异常。
有益效果:本发明与现有技术相比,通过对数值型字段与分类型字段分别运用不同预处理方式,使其能够处理混合型数据并检测异常;通过聚类与标签传播方法,能够在少量用户标签的情况下即可训练分类器,在整体上形成半监督的检测模型,大幅减少了人工标记的工作量,并结合主动学习进一步提高了检测的准确性。通过在方法中集成多种组态的异常检测分类器,能够同时检测混合型数据中的多种类型异常,能发现数据集中的潜在的异常模式,对于实际生产中的多项业务如电量核查、欺诈检测等都具有重要意义。
附图说明
图1为本发明系统的设计图;
图2为本实施例中的部分数据图;
图3为本实施例中的部分配置图;
图4为本实施例中的特征集合展示图;
图5为本实施例中的编码转换表展示图;
图6为本实施例中增强孤立森林预评估排序结果图;
图7为本实施例中的标记过程图;
图8为本实施例中的主动学习结果变化展示图;
图9为本实施例中的标签传播过程展示图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1所示,本发明提供本发明还提供一种面向数据治理的具有传播学习能力的异常识别系统,包括数据与配置加载模块、算法库集成模块、数据预处理模块、用户交互模块、模型训练模块、异常识别模块;
数据与配置加载模块用于加载配置文件和加载数据;
算法库集成模块用于存储其他模块所需的各项算法,以供随时调用;算法包括Min-Max标准化、IF、ECOD、HBOS、同频异化、增强孤立森林,其中同频异化和增强孤立森林算法为本发明重点改进的算法。
数据预处理模块主要实现对数据的清洗转换、预评估等功能,以便于后续进行异常模型训练与识别,包括生成特征集合、群体识别与编码、获取采样区间和初始标签三个步骤;
用户交互模块用于接收系统其他模块的采样结果数据,将采样结果展示给用户并进行标注操作,最后接收用户标记结果并保存在相应结构中;
在一次采样过程结束后,用户需要对每条记录数据分别标注字段异常和记录异常,用户每次标注一条数据,标记形式如{0,1,0,0,...,1},其中最后一位为记录级异常标签,前d个值代表每个字段的异常标签,d是数据包含的总列数,0代表正常,1代表异常;若传出数据为单个待标记字段值,则直接进行标记。通过解析用户输入,将记录标签和字段标签分别保存在记录标签集合和字段标签集合中。在用户全部标注完成及解析结果无误后,才会进入下一阶段,否则重新进入标注阶段。
模型训练模块与用户交互模块协同工作,获取采样数据及与标记结果,并训练字段级异常分类器与记录级异常分类器;
异常识别模块基于训练好的记录级异常分类器和字段级分类器识别记录异常与字段异常,最终输出异常数据。
异常识别模块的识别流程为:首先,对未标记的记录数据进行检测,将编码表DC输入训练好的记录级分类器中,识别记录级异常;其次将数值列特征输入对应列的字段级分类器中,检测数值列字段异常;最后依据配置加载模块中生成的字段集合Lc及用户的标注结果,结合标签传播可确定分类列大部分数据的异常情况,剩余数据的频率特征均处于计算的四分位界限内,认为其属于正常类别。
基于上述系统,本发明提供一种面向数据治理的具有传播学习能力的异常识别方法,包括如下步骤:
1、通过数据与配置加载模块执行步骤S1
S1:进行配置文件加载,从数据源读取待检测数据,且将待检测数据区分为数值型字段和分类型字段;
2、通过数据预处理模块执行步骤S2
S2:对待检测数据进行预处理,获取到采样区间和初始标签;
3、通过模型训练模块与用户交互模块协同工作执行步骤S3
S3:根据采样区间进行数据采样,结合交互标记操作,对训练字段级异常分类器与记录级异常分类器;
4、通过异常识别模块执行步骤S4
S4:利用训练好的字段级异常分类器和记录级异常分类器分别对待检测数据进行字段级异常识别和记录级异常识别,输出异常数据。
步骤S1中配置文件加载具体为:从配置文件中获取参数设置和正常数据信息等相关配置,参数设置包括待检测数据路径、采样数量、特征生成算法、标签传播方式等,正常数据信息是指用户已知的该数据上的正常记录及分类型字段的正常类别值,初始化记录集合Lr与字段集合Lc,将正常数据信息保存在对应结构中,若无则为空,如Lr={x1,x2,...},Lc={j1:(c1,c2,...),...},其中xi是一条完整的记录,c1代表j1列中的类别的值。
步骤S1中数据读取为:从数据源读取待检测数据D,区分数据中数值型字段和分类型字段的列名称,将数据、列名称保存在对应的结构里。
步骤S2中的预处理具体包括如下步骤:
A1:生成特征集合,包括如下步骤:
A1-1:对于数值型字段,根据特征生成算法配置参数并生成特征;采用IF、ECOD、HBOS算法其中的某一种或多种生成特征,生成特征的方法是对每一列数值字段进行检测,将该算法的异常得分作为字段的特征,共生成m维特征,并将特征使用Min-Max标准化处理,其中m是上述使用算法的数量;
A1-2:对于分类型字段,利用同频异化的频率转化方法为每个字段生成一维特征;
A1-3:将每个字段对应的特征保存在集合中;数据标准化是将不同量纲的数据统一到同一量纲范围内的过程,其目的是消除不同变量之间的量纲影响,使得不同指标具有可比性。Min-Max标准化具体为:
将原始数据线性映射到[0,1]的范围内,其公式为:
其中min(X)和max(X)分别是该列数据的最大值和最小值;
IF算法具体为:IF算法是一种无监督机器学习算法,主要用于检测数值型数据的异常情况,通过构建一组隔离树的方法在数据中寻找孤立点,根据隔离树的路径长度计算样本的异常分数;
ECOD算法具体为:ECOD算法也是一种无监督机器学习算法,首先通过计算数据的经验累积分布函数ECDF,以非参数方式估计数据的潜在分布,其次使用这些经验分布来估计每个数据点的尾部概率,最后通过估计的尾部概率的聚合来计算每个数据点的离群值,计算经验累积分布函数ECDF的方法为:
其中,和/>分别为第j维度上的左尾ECDF和右尾ECDF,Θ为指示函数,当其参数为真时,该指示函数为1,否则为0;每个样本的离群分计算方式如下:
其中,Oleft(x)、Oright(x)、Oauto(x)分别左尾离群分,右尾离群分和矫正离群分,d为x的维度,γ为数据的偏度;
样本最终的异常得分则为:
O(x)=max{Oleft(x),Oright(x),Oauto(x)}
HBOS算法具体为:直方图检测HBOS是一种统计方法,首先对该列使用Min-Max标准化方法,将其缩放到相同的尺度范围,其次将数据范围划分为若干个区间,统计每个区间中样本的数量,并计算该区间样本数量的相对频率;假设该列共有k个区间,表示为B={b1,b2...,bk},则第i个区间对应的相对频率为:
其中,n(i)表示在区间bi中的样本数量,n表示总样本数量。
对于每个样本,将其映射到相应的区间,假设样本x落在区间bi中,则计算的异常分值s(x)为:
s(x)=-log(pi)
频率转化与同频异化方法具体为:
频率转化计算字段中每个类别的出现频次,将其转化为频率表示,转化方式如下:
其中,c(i)是该字段中第i和类别,n为总数量;
由于分类型数据通常会存在频率一样的情况,从而无法区分,本发明提出同频异化方法,通过添加随机值的策略区分频率相同的类别,并使得对结果的影响最小化;首先对所有类别频率进行升序排序,再对频率相同的取值添加随机值,使添加随机值后不改变频率排序;设排序集合为P={p1,p2,...,pl},则随机值r取值方式如下:
r=random(pi-pleft,pright-pi)
其中,pleft是pi左侧不等于pi的最大值,pright是pi右侧不等于pi的最小值。
A2:群体识别与编码,包括如下步骤:
A2-1:基于聚类方法将数值型字段的特征转换为聚类结果的编码表示;首先为每个数值列训练一个聚类模型,采用K-Means算法进行聚类,在构建聚类模型后,将每个数值都替换为对应的聚类标签结果,设第j列字段生成四个聚类簇Cj={c0,c1,c2,c3},将该列的所有数据替换为其所属的聚类簇编号{0,1,2,3};
采用K-Means算法进行聚类的具体过程为:
B1:在所有样本点中任意初始化k个样本点作为聚类的簇质心;
B2:计算所有点与k个质心间的距离,并将每个数据点分配到最接近的质心所在的簇;
B3:根据新划分的点重新计算每个簇的质心;
B4:重复步骤B1~B3,直到质心收敛;
其中计算质心的方法为:
其中,μi代表第i个质心,ni为簇Si的包含点的个数。
A2-2:将分类型字段特征转换为编码表示;对于任意一列分类型字段,将其按频率特征大小进行排序,并转换为编码表示,如该列中频率最大的类别编码为0,其次的为1,以此类推,将所有列转换后生成编码数据表格DC;
A3:获取采样区间和初始标签,包括如下步骤:
A3-1:使用增强孤立森林预评分:
为了减轻用户的交互压力,需要尽可能的减少用户待标注数据的数量,采用无监督算法实现异常记录的预评估,确定较为明显的正常和异常数据,将不确定性较大的一部分数据进行采样后再由人工进行标注,提升采样的有效性。本发明提供的增强孤立森林算法模型能够有效识别混合型数据异常,使用增强孤立森林算法计算每条数据的异常得分,并对得分由高到低进行排序,分数越高表明该条数据越异常;
这里需要强调的是,针对经典IF算法仅适用于数值型数据而无法处理分类型数据以及混合型数据的问题,本发明中提出了增强孤立森林算法,使其可以有效检测混合型数据异常,并且具有很强的鲁棒性,用于对混合数据进行异常评分。
增强孤立森林算法的具体计算步骤如下:
C1:计算分类型字段的信息增益率
信息增益用于衡量字段对分类结果影响程度,信息增益率是信息增益除以划分后的数据集的熵,这样可以对取值数目较多的特征进行惩罚,计算方式如下:
其中,和/>和分别表示两个不同的分类型字段,GainRatio(·)、Gain(·)分别表示计算分类型字段间的信息增益率和信息增益,/>表示计算字段/>对/>的信息增益率;H(·)与H(·|·)分别表示计算信息熵与条件熵;vm表示分类字段/>中的第m个属性值,p(vm)表示在字段/>中,计算等于vm的属性值个数与整个属性长度的比值;
C2:计算相关性
由于信息增益率具有不对称性,无法很好的衡量分类字段间的相关性,因此要对信息增益率进行变换,计算分类字段之间的相关性,如下所示:
其中,表示分类型字段/>与/>之间的相关性,值越大表明越相关;
C3:特征处理
根据数据中各分类型字段之间的相关性分析结果,将显著相关的分类字段拼接在一起,生成新的分类字段,并删除原始的分类字段,从而形成新的混合数据。对现有分类字段提取特征,即利用同频异化的频率转化方法将分类型数据转换为数值型数据,使其能够对混合数据进行识别;
C4:抽样
从数据中随机抽取一定数量的子样本;对于每棵孤立树,设置一个根结点,并将根节点作为当前节点;
C5:属性分割
在当前节点上,随机选择若干个维度作为目标维度用于分割,并根据分割结果构建该节点的左子树和右子树,分割策略如下:
其中,表示由若干个目标维度组成的向量,/>表示截距向量,通过在每个目标维度的最大与最小值间的均匀分布中取值得出,/>表示法向量,使用标准正态分布为每个目标维度随机生成;
通过计算获取分割超平面,若小于0,即位于分割超平面下方,则对应的样本落入左子树,其余的落入右子树;
C6:构建增强孤立树
在子节点中重复执行步骤C5,直到子节点中只有一个数据或子节点已达到设置的树的最大深度,则停止步骤,完成孤立树的构建;
C7:构建增强孤立森林
根据上述步骤C4至步骤C6,构建多颗增强孤立树,形成增强孤立森林;
C8:计算异常得分
将步骤C3处理后的数据集输入增强孤立森林中,对于每条数据,计算其在孤立森林中的平均路径长度,计算公式为:
其中,E(h(x))表示平均路径长度,T表示增强孤立森林中树的个数,ht(x)表示数据点在树t上的路径长度;
将所有数据的平均路径长度进行归一化处理,可得出每条数据的异常评分,计算公式为:
c(n)=2H(n-1)-2(n-1)/n
H(k)=ln(k)+ε
其中,n表示构建树输入样本的数据量,c(n)是全局平均路径长度,用于做归一化处理,ε为欧拉常数,ε=0.5772156649。
A3-2:切分数据并确定采样区间
基于设定阈值(一般设置为1%~5%)按照增强孤立森林得分高低对数据进行切分,在阈值附近的群体标签最难以判别,切分后获得异常数据集合A和正常数据集合N;
对集合A和N去重,获得去重集合A'和N',再对集合A'和N'分别以50%的比例进一步划分,记为AC、AI、NI、NC;认为集合A'的后50%与集合N'的前50%即AI和NI为不确定性集合,因为这一部分数据更接近异常阈值,将其划分为采样区间,而对于采样区间外的样本即AC和NC认为是确定性样本;
A3-3:获取初始标签
依据增强孤立森林得分对采样区间外的数据进行标记,获取初始标签,总体标记方式如下:
其中,di是原始数据集D中的第i条数据,li是di的初始标签。
步骤S3具体包括如下步骤:
D1:数据采样及结果获取,包括如下步骤:
D1-1:对采样区间内的数据进行采样
由于不同记录的每一列中可能包含相同的错误,在数据预处理模块中,每个数据列都被分成若干个数据簇,并以编码表示,为了尽可能的减少需要标记的数量,理想情况下,应保证采样的数据应覆盖每列中所有未标记的簇。因此,通过多次迭代的方式进行采样,在每次迭代中,根据Softmax函数计算每条数据的采样概率:
其中,pi是di的采样概率,pij是数据di的在第j列的概率,假设di在第j列的属于第c簇,Njc代表第j列第c簇已经被采样的数量,k是第j列的总簇数;使用该概率有利于获取包含较少已经被采样的簇的数据,依据采样概率进行抽样,直到采样数量达到预先设置的值为止,形成采样集合S;
D1-2:使用四分位法筛选待标记分类型数据
对于每个分类型字段,依据频率特征计算四分位值,将频率小于下四分位界限的类别加入分类字段采样集合Sl中,下四分位界限计算方式如下:
IQR=1.5·(Q3-Q1)
b=Q1-IQR
其中,Q1和Q3分别为25%分位数和75%分位数;
D1-3:使用用户交互模块获取标记结果
基于用户交互模块,将采样集合S和分类字段采样集合Sl传递给用户进行标注,并解析标注结果,获取数据标签;
D2:通过交互式主动学习训练记录级分类器,包括如下步骤:
D2-1:训练初始分类模型
与传统的决策树模型相比,本发明选择的LightGBM模型具有的训练速度与准确性更高,选取LightGBM作为分类器,结合已获取的数据标签,包括数据与配置加载模块生成的记录集合Lr、数据预处理模块中步骤S2的初始标签以及交互模块获取的数据标签,将编码表DC中对应的数据作为输入,获得初次训练好的模型;
LightGBM是一种基于梯度提升决策树的算法模型,可适用于分类及回归任务。其采用梯度提升方法,通过迭代的方式逐步提升模型的准确性。LightGBM模型的运行过程为:初始时,模型为一个简单的决策树,然后在每一轮迭代中逐渐添加更多的决策树来纠正之前模型的预测误差;使用直方图算法来优化决策树的训练过程,将连续特征的值进行离散化处理,将数据集划分成多个直方块;在每个直方块中,计算该直方块内样本的梯度和样本数量,然后选择最佳划分点;梯度的计算方式为:
其中是损失函数,y是真实值,/>是模型预测值。
D2-2:依据预测概率选择待标记样本
使用模型对去重集合A’和N’进行预测,获取每个样本所属正常类及异常类的预测概率,计算公式如下:
其中,P(y=k|x)表示样本属于类别k的概率,scorek表示所有决策树的类别k的平均分数,scorek的计算方法为:
其中,pi(k)表示样本在第i棵树中被分到叶子节点,并且该叶子节点上类别k的样本概率,N为决策树的数量,ni是此叶子结点中点的总数量,ni(k)是叶子结点中属于类别k的数量;
根据预测概率计算每个样本的不确定性概率,计算方式如下:
prop=Abs(P(y=0|x)-0.5)+Abs(P(y=1|x)-0.5)
其中,P(y=0|x)和P(y=1|x)分别表示样本正常和异常的概率,Abs()代表取绝对值操作;
将所有预测样本按不确定性概率排序,取不确定性最大的10条进行采样,并将其更新到采样集合S中;
D2-3:标注样本
将上一步中采样获得的样本传入用户交互模块并获取标签,更新标签集合;
D2-4:更新模型
使用所有已有标签的数据训练一个新的模型;
D2-5:重复步骤D2-2至D2-4,直到步骤D2-2的采样数量达到预先设置的值为止,获得最终的记录级异常检测分类器m0
D3:字段标签传播
为了最大化的利用已知信息,减少所需标注的数量,本发明设计了基于编码结果的字段标签传播方案,对于数值列字段,将已有标签根据聚类结果传播给同一簇的其他数据,获得额外的带有标签的字段数据;对于分类型字段,将标签传播给同一属性值的其他数据上;
由于一个集群可能有多个带有相互矛盾的正常或异常标签,本发明设计了两种传播方式——同质传播与多数传播。同质传播只对不包含矛盾标签的集群进行传播,即聚类中只包含一种标记结果,假设对于第j列字段包含r个聚类簇C={c1,c2,...,cr},若ci中的已标记的数据标签都为1,则ci中的其他数据标签也被传播为1;
多数传播会在具有混合标签的集群中传播用户标签,选择集群中数量更多的一种标签进行传播。若ci中的已标记的数据标签1的占比更大,则ci中的其他数据标签也被传播为1,若占比相同则不传播;
依据配置文件设置选择一种传播方式,对每一列字段分别进行标签传播,得到传播扩展后的字段级标签;
D4:训练字段级分类器
对每个数值型字段j,筛选已有标签的数据,使用步骤S2中生成的特征训练一个LightGBM分类器mj,得到l个字段级异常分类器M={m1,m2,...,ml},l代表数据包含的数值型字段的列数。
基于上述方案,为了验证本发明方案的有效性和实际效果,进行了实验验证,具体如下:
实验1:
本实施例中待检测数据中的一部分如图2所示,实验所用的部分配置如图3所示。
在实验的过程中:
获得的特征集合和编码转换表分别如图4和图5所示,其中特征集合由数值字段特征和分类字段特征构成,数据共包含4个数值型字段和12个分类型字段,每个数值型字段生成3维特征,每个分类型字段生成一维特征。编码表中的分类字段由频率特征大小生成,如“农网低压居民”的编码为“1”,“城网低压居民”的编码为“0”,代表“城网低压居民”类别的数量最多;数值字段编码由特征聚类结果转换,如运行容量字段值为“3”的编码为“0”,代表其聚类结果属于第0个簇。
图6为数据预处理模块中评分及排序后的结果,“score”列是增强孤立森林对每一条记录给出的异常得分,得分区间为0-1,依据“score”列排序后,异常概率最大的排在前面,正常概率最大的排在最后,按异常比例切分数据集可获得采样区间。
图7是用户交互模块的接收的记录采样结果及用户标记过程,如图7所示,在日志输出中可以看到模型训练模块中的分批次的采样数据序号,一共40个点被选择出来并交给用户标记。序号为176的数据首先被抛出标记并展示其具体信息,用户需要对该记录中的每一个字段进行标注,随后再对整条记录的异常情况进行标注,用户标记为1,代表该记录异常。
图8是模型训练模块中的记录级异常分类模型训练过程,图8中体现了主动学习的具体过程,在每一次学习过程中,包含采样数据、反馈标记,更新模型等子步骤。通过多次迭代的方式,逐步提升了记录级模型的检测效果。
图9是模型训练模块中步骤D3的字段标签传播过程,采用同质传播策略,在第14列中,有部分类已经存在一定数量的标记,如第1类标签为1的数量为12、0的数量为4,第2类1标签为1的数量为0、0的数量为83,使用同质传播,则第一类不进行传播,第2类的标签传播为0。所有列的标签经过传播后从1600个变为了约60万个。
最终检测识别的部分结果如表1所示:
表1部分检测结果表
在表1中,“评分”列数据是使用增强孤立森林获得的初始得分,label列是记录级分类器的预测结果,在每一条数据结果中,第一行是数据展示及其对应的标签,第二行是每个字段的检测结果,其中1是异常,0是正常。
对于数据1,其接线方式与相线字段都为“三相”,违反了图3中的配置设置,实际应为“三相四线”,因此被判定为异常;综合倍率字段的值为“160”,在数据中整体偏高,也被判定为异常;记录级异常标签为1,是由于用户分类字段与用电类别字段不匹配,其对应值分别为“城网低压非居民”和“城镇居民生活用电”,实际的用电类别值应是“商业用电”或其他非居民户用电类型。对于数据2,其用户分类字段不符合配置,被判定为异常,并且用户分类字段与用电类别字段也无法匹配,该条记录也为异常。对于数据4,其各个字段均为正常,但是接线方式与相线字段之间存在模式异常,“单相”对应“三相四线”不符,因此该记录被检测异常。
数据预处理模块中步骤A3-1生成的初始评分能够在一定程度上反应数据的异常情况,如数据1、数据2和数据4的评分都处于较高水平,代表异常的概率更大,最终的识别结果也都为异常数据。然而初始评分是无监督算法,可能出现一定偏差,通过模型训练模块中的半监督处理过程,对初始评分结果进行修正,可以获得更加准确的异常标签,如数据3和数据6。
实验2:
表1记录级检测效果对比
本实施例中通过初始评分、采样标记、主动学习等步骤训练记录级的异常检测分类器,表1对比了去除某些步骤的实验结果,其中初始评分的实验结果是依据评分进行排名,取前1%的数据标记为异常;无主动学习的分类是在初始后进行标记采样,然后直接训练分类器。从表1中可以看出,仅根据初始评分的效果最差,F1值仅有0.62,在加入标记采样过程训练分类器后,F1值提升了0.1,再通过主动学习多次更新模型后,F1值提升了0.12,达到了0.84,说明了采用标记的方法结合了无监督方法与有监督方法的优点,提升了检测的准确性,并且通过主动学习进一步纠正了结果。
表2字段级检测效果对比
无标签传播 有标签传播
Precision 0.73 0.95
Recall 0.88 0.80
F1 0.80 0.87
表2是字段级检测分类器的效果对比,无标签传播是基于采样标记结果直接训练字段级分类器。可以看出,无标签传播的召回率较高,但是精度较低,说明检出许多假异常数据,有标签传播的结果F1值更高,总体更加稳定,说明通过传播扩展标签数据量,使分类器更加稳健。
依据表1和表2,可见本发明在系统中集成多种类型的异常检测分类器,同时识别混合型数据中含有的多种异常类型,能够有效应对不同的异常类型。

Claims (10)

1.一种面向数据治理的具有传播学习能力的异常识别方法,其特征在于,包括如下步骤:
S1:进行配置文件加载,从数据源读取待检测数据,且将待检测数据区分为数值型字段和分类型字段;
S2:对待检测数据进行预处理,获取到采样区间和初始标签;
S3:根据采样区间进行数据采样,结合交互标记操作,训练字段级异常分类器与记录级异常分类器;
S4:利用训练好的字段级异常分类器和记录级异常分类器分别对待检测数据进行字段级异常识别和记录级异常识别,输出异常数据。
2.根据权利要求1所述的一种面向数据治理的具有传播学习能力的异常识别方法,其特征在于,所述步骤S1中配置文件加载具体为:从配置文件中获取参数设置和正常数据信息,参数设置包括待检测数据路径、采样数量、特征生成算法、标签传播方式,正常数据信息是指用户已知的该数据上的正常记录及分类型字段的正常类别值,初始化记录集合Lr与字段集合Lc,将正常数据信息保存在对应结构中,若无则为空,如Lr={x1,x2,...xi},Lc={j1:(c1,c2,...),...},其中xi是一条完整的记录,c1代表j1列中的类别的值。
3.根据权利要求1所述的一种面向数据治理的具有传播学习能力的异常识别方法,其特征在于,所述步骤S2中的预处理具体包括如下步骤:
A1:生成特征集合,包括如下步骤:
A1-1:对于数值型字段,根据特征生成算法配置参数并生成特征;采用孤立森林、经验累积分布检测算法、直方图检测算法其中的某一种或多种生成特征,生成特征的方法是对每一列数值字段进行检测,将该算法的异常得分作为字段的特征,共生成m维特征,并将特征使用Min-Max标准化处理,其中m是使用上述算法的数量;
A1-2:对于分类型字段,利用同频异化的频率转化方法为每个字段生成一维特征;
A1-3:将每个字段对应的特征保存在集合中;
A2:群体识别与编码,包括如下步骤:
A2-1:基于聚类方法将数值型字段的特征转换为聚类结果的编码表示;首先依据生成的特征,采用K-Means算法为每个数值列训练一个聚类模型,在构建完所有列的聚类模型后,分别将每列的数值都替换为对应的聚类标签结果,设第j列字段生成Cj={c0,c1,c2,c3},则将该列的所有数据替换为其所属的聚类簇编号{0,1,2,3};
A2-2:将分类型字段特征转换为编码表示;对于任意一列分类型字段,根据其频率特征大小转换为编码表示,如该列中频率最大的类别编码为0,其次的为1,以此类推;
A2-3:将数值字段和分类字段的编码结果拼接,生成编码数据表格DC;
A3:获取采样区间和初始标签,包括如下步骤:
A3-1:使用增强孤立森林算法计算每条数据的异常得分,并对得分由高到低进行排序,分数越高表明该条数据越异常;
A3-2:切分数据并确定采样区间
基于设定阈值按照增强孤立森林得分高低对数据进行切分,切分后获得异常数据集合A和正常数据集合N;
对集合A和N去重,获得去重集合A'和N',再对集合A'和N'分别以50%的比例进一步划分,记为AC、AI、NI、NC;认为集合A'的后50%与集合N'的前50%即AI和NI为不确定性集合,将其划分为采样区间,而对于采样区间外的样本即AC和NC认为是确定性样本;
A3-3:获取初始标签
依据增强孤立森林得分对采样区间外的数据进行标记,获取初始标签,总体标记方式如下:
其中,di是原始数据集D中的第i条数据,li是di的初始标签。
4.根据权利要求3所'述的一种面向数据治理的具有传播学习能力的异常识别方法,其特征在于,所述步骤A1中Min-Max标准化具体为:
将原始数据线性映射到[0,1]的范围内,其公式为:
其中min(X)和max(X)分别是该列数据的最大值和最小值;
IF算法具体为:通过构建一组隔离树的方法在数据中寻找孤立点,根据隔离树的路径长度计算样本的异常分数;
ECOD算法具体为:首先通过计算数据的经验累积分布函数ECDF,以非参数方式估计数据的潜在分布,其次使用这些经验分布来估计每个数据点的尾部概率,最后通过估计的尾部概率的聚合来计算每个数据点的离群值,计算经验累积分布函数ECDF的方法为:
其中,和/>分别为第j维度上的左尾ECDF和右尾ECDF,Θ为指示函数,当其参数为真时,该指示函数为1,否则为0;每个样本的离群分计算方式如下:
其中,Oleft(x)、Oright(x)、Oauto(x)分别左尾离群分,右尾离群分和矫正离群分,d为x的维度,γ为数据的偏度;
样本最终的异常得分则为:
O(x)=max{Oleft(x),Oright(x),Oauto(x)}
HBOS算法具体为:首先对该列使用Min-Max标准化方法,将其缩放到相同的尺度范围,其次将数据范围划分为若干个区间,统计每个区间中样本的数量,并计算该区间样本数量的相对频率;假设该列共有k个区间,表示为B={b1,b2...,bk},则第i个区间对应的相对频率为:
其中,n(i)表示在区间bi中的样本数量,n表示总样本数量。
对于每个样本,将其映射到相应的区间,假设样本x落在区间bi中,则计算的异常分值s(x)为:
s(x)=-log(pi)。
5.根据权利要求3所述的一种面向数据治理的具有传播学习能力的异常识别方法,其特征在于,所述步骤A1中频率转化与同频异化方法具体为:
频率转化计算字段中每个类别的出现频次,将其转化为频率表示,转化方式如下:
其中,c(i)是该字段中第i和类别,n为总数量;
提出同频异化方法,通过添加随机值的策略区分频率相同的类别,并使得对结果的影响最小化;首先对所有类别频率进行升序排序,再对频率相同的取值添加随机值,使添加随机值后不改变频率排序;设排序集合为P={p1,p2,...,pl},则随机值r取值方式如下:
r=random(pi-pleft,pright-pi)
其中,pleft是pi左侧不等于pi的最大值,pright是pi右侧不等于pi的最小值。
6.根据权利要求3所述的一种面向数据治理的具有传播学习能力的异常识别方法,其特征在于,所述步骤A2-1中采用K-Means算法进行聚类的具体过程为:
B1:在所有样本点中任意初始化k个样本点作为聚类的簇质心;
B2:计算所有点与k个质心间的距离,并将每个数据点分配到最接近的质心所在的簇;
B3:根据新划分的点重新计算每个簇的质心;
B4:重复步骤B1~B3,直到质心收敛;
其中计算质心的方法为:
其中,μi代表第i个质心,ni为簇Si的包含点的个数。
7.根据权利要求3所述的一种面向数据治理的具有传播学习能力的异常识别方法,其特征在于,所述步骤A3-1中增强孤立森林算法的具体计算步骤如下:
C1:计算分类型字段的信息增益率,计算方式如下:
其中,和/>和分别表示两个不同的分类型字段,GainRatio(·)、Gain(·)分别表示计算分类型字段间的信息增益率和信息增益,/>表示计算字段/>对/>的信息增益率;H(·)与H(·|·)分别表示计算信息熵与条件熵;vm表示分类字段/>中的第m个属性值,p(vm)表示在字段/>中,计算等于vm的属性值个数与整个字段长度的比值;
C2:计算分类字段之间的相关性,如下所示:
其中,表示分类型字段/>与/>之间的相关性;
C3:特征处理
根据数据中各分类型字段之间的相关性分析结果,将显著相关的分类字段拼接在一起,生成新的分类字段,并删除原始的分类字段,从而形成新的混合数据,对现有分类字段提取特征,即利用同频异化的频率转化方法将分类型数据转换为数值型数据,使其能够对混合数据进行识别;
C4:抽样
从数据中随机抽取子样本;对于每棵孤立树,设置一个根结点,并将根节点作为当前节点;
C5:属性分割
在当前节点上,随机选择若干个维度作为目标维度用于分割,并根据分割结果构建该节点的左子树和右子树,分割策略如下:
其中,表示由若干个目标维度组成的向量,/>表示截距向量,通过在每个目标维度的最大与最小值间的均匀分布中取值得出,/>表示法向量,使用标准正态分布为每个目标维度随机生成;
通过计算获取分割超平面,若小于0,即位于分割超平面下方,则对应的样本落入左子树,其余的落入右子树;
C6:构建增强孤立树
在子节点中重复执行步骤C5,直到子节点中只有一个数据或子节点已达到设置的树的最大深度,则停止步骤,完成孤立树的构建;
C7:构建增强孤立森林
根据上述步骤C4至步骤C6,构建多颗增强孤立树,形成增强孤立森林;
C8:计算异常得分
将步骤C3处理后的数据集输入增强孤立森林中,对于每条数据,计算其在孤立森林中的平均路径长度,计算公式为:
其中,E(h(x))表示平均路径长度,T表示增强孤立森林中树的个数,ht(x)表示数据点在树t上的路径长度;
将所有数据的平均路径长度进行归一化处理,可得出每条数据的异常评分,计算公式为:
c(n)=2H(n-1)-2(n-1)/n
H(k)=ln(k)+ε
其中,n表示构建树输入样本的数据量,c(n)是全局平均路径长度,用于做归一化处理,ε为欧拉常数。
8.根据权利要求1所述的一种面向数据治理的具有传播学习能力的异常识别方法,其特征在于,所述步骤S3具体包括如下步骤:
D1:数据采样及结果获取,包括如下步骤:
D1-1:对采样区间内的数据进行采样
通过多次迭代的方式进行采样,在每次迭代中,根据Softmax函数计算每条数据的采样概率:
其中,pi是di的采样概率,pij是数据di的在第j列的概率,假设di在第j列的属于第c簇,Njc代表第j列第c簇已经被采样的数量,k是第j列的总簇数;依据采样概率进行抽样,直到采样数量达到预先设置的值为止,形成采样集合S;
D1-2:使用四分位法筛选待标记分类型数据
对于每个分类型字段,依据频率特征计算四分位值,将频率小于下四分位界限的类别加入分类字段采样集合Sl中,下四分位界限计算方式如下:
IQR=1.5·(Q3-Q1)
b=Q1-IQR
其中,Q1和Q3分别为25%分位数和75%分位数;
D1-3:使用交互模块获取标记结果
基于用户交互模块,将采样集合S和分类字段采样集合Sl传递给用户进行标注,并解析标注结果,获取数据标签;
D2:通过交互式主动学习训练记录级分类器,包括如下步骤:
D2-1:训练初始分类模型
选取LightGBM作为分类器,结合已获取的数据标签,包括数据与配置加载模块生成的记录集合Lr、步骤S2的初始标签以及交互模块获取的数据标签,将编码表DC中对应的数据作为输入,获得初次训练好的模型;
D2-2:依据预测概率选择待标记样本
使用模型对去重集合A'和N'进行预测,获取每个样本所属正常类及异常类的预测概率,计算公式如下:
其中,P(y=k|x)表示样本属于类别k的概率,scorek表示所有决策树的类别k的平均分数,scorek的计算方法为:
其中,pi(k)表示样本在第i棵树中被分到叶子节点,并且该叶子节点上类别k的样本概率,N为决策树的数量,ni是此叶子结点中点的总数量,ni(k)是叶子结点中属于类别k的数量;
根据预测概率计算每个样本的不确定性概率,计算方式如下:
prop=Abs(P(y=0|x)-0.5)+Abs(P(y=1|x)-0.5)
其中,P(y=0|x)和P(y=1|x)分别表示样本正常和异常的概率,Abs()代表取绝对值操作;
将所有预测样本按不确定性概率排序,取不确定性最大的10条进行采样,并将其更新到采样集合S中;
D2-3:标注样本
将上一步中采样获得的样本传入用户交互模块并获取标签,更新标签集合;
D2-4:更新模型
使用所有已有标签的数据训练一个新的模型;
D2-5:重复步骤D2-2至D2-4,直到步骤D2-2的采样数量达到预先设置的值为止,获得最终的记录级异常检测分类器m0
D3:字段标签传播
设计基于编码结果的字段标签传播方案,对于数值列字段,将已有标签根据聚类结果传播给同一簇的其他数据,获得额外的带有标签的字段数据;对于分类型字段,将标签传播给同一类别的其他数据上;
D4:训练字段级分类器
对每个数值型字段j,筛选已有标签的数据,使用步骤S2中生成的特征训练一个LightGBM分类器mj,得到l个字段级异常分类器M={m1,m2,...,ml},l为数据包含的数值型字段的列数。
9.根据权利要求8所述的一种面向数据治理的具有传播学习能力的异常识别方法,其特征在于,所述步骤D2-1中LightGBM模型的运行过程为:初始时,模型为一个简单的决策树,然后在每一轮迭代中逐渐添加更多的决策树来纠正之前模型的预测误差;使用直方图算法来优化决策树的训练过程,将连续特征的值进行离散化处理,将数据集划分成多个直方块;在每个直方块中,计算该直方块内样本的梯度和样本数量,然后选择最佳划分点;梯度的计算方式为:
其中是损失函数,y是真实值,/>是模型预测值。
10.一种面向数据治理的具有传播学习能力的异常识别系统,其特征在于,包括数据与配置加载模块、算法库集成模块、数据预处理模块、用户交互模块、模型训练模块、异常识别模块;
所述数据与配置加载模块用于执行步骤S1中的加载配置文件和加载数据;
所述算法库集成模块用于存储其他模块所需的各项算法,以供随时调用;
所述数据预处理模块用于执行步骤S2;
所述用户交互模块用于接收系统其他模块的采样结果数据,将采样结果展示给用户并进行标注操作,最后接收用户标记结果并保存在相应结构中;
所述模型训练模块与用户交互模块协同工作用于执行步骤S3,获取采样数据及与标记结果,并训练字段级异常分类器与记录级异常分类器;
所述异常识别模块用于执行步骤S4,基于训练好的记录级异常分类器和字段级分类器分别识别记录异常与字段异常,最终输出异常数据。
CN202311087471.6A 2023-08-28 2023-08-28 面向数据治理的具有传播学习能力的异常识别方法及系统 Pending CN117131449A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311087471.6A CN117131449A (zh) 2023-08-28 2023-08-28 面向数据治理的具有传播学习能力的异常识别方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311087471.6A CN117131449A (zh) 2023-08-28 2023-08-28 面向数据治理的具有传播学习能力的异常识别方法及系统

Publications (1)

Publication Number Publication Date
CN117131449A true CN117131449A (zh) 2023-11-28

Family

ID=88855939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311087471.6A Pending CN117131449A (zh) 2023-08-28 2023-08-28 面向数据治理的具有传播学习能力的异常识别方法及系统

Country Status (1)

Country Link
CN (1) CN117131449A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117576823A (zh) * 2023-11-29 2024-02-20 上海徽视科技集团有限公司 一种排队叫号系统终端
CN117725437A (zh) * 2024-02-18 2024-03-19 南京汇卓大数据科技有限公司 一种基于机器学习的数据精准匹配分析方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117576823A (zh) * 2023-11-29 2024-02-20 上海徽视科技集团有限公司 一种排队叫号系统终端
CN117576823B (zh) * 2023-11-29 2024-05-14 上海徽视科技集团有限公司 一种排队叫号系统终端
CN117725437A (zh) * 2024-02-18 2024-03-19 南京汇卓大数据科技有限公司 一种基于机器学习的数据精准匹配分析方法
CN117725437B (zh) * 2024-02-18 2024-05-24 南京汇卓大数据科技有限公司 一种基于机器学习的数据精准匹配分析方法

Similar Documents

Publication Publication Date Title
CN110597735B (zh) 一种面向开源软件缺陷特征深度学习的软件缺陷预测方法
CN117131449A (zh) 面向数据治理的具有传播学习能力的异常识别方法及系统
CN112069310B (zh) 基于主动学习策略的文本分类方法及系统
CN110826618A (zh) 一种基于随机森林的个人信用风险评估方法
CN111274817A (zh) 一种基于自然语言处理技术的智能化软件成本度量方法
CN113779272A (zh) 基于知识图谱的数据处理方法、装置、设备及存储介质
CN110222192A (zh) 语料库建立方法及装置
CN116128544A (zh) 一种电力营销异常营业数据的主动稽核方法和系统
CN116821832A (zh) 针对高压工商业用户用电负荷的异常数据辨识与修正方法
CN112800232A (zh) 基于大数据的案件自动分类、优化方法及训练集修正方法
CN116861924A (zh) 基于人工智能的项目风险预警方法及系统
CN114093445B (zh) 一种基于偏多标记学习的患者筛选标记方法
CN115146062A (zh) 融合专家推荐与文本聚类的智能事件分析方法和系统
CN113032573B (zh) 一种结合主题语义与tf*idf算法的大规模文本分类方法及系统
CN117131022A (zh) 一种电力信息系统的异构数据迁移方法
CN115035966B (zh) 基于主动学习和符号回归的超导体筛选方法、装置及设备
CN117010373A (zh) 一种电力设备资产管理数据所属类别和组的推荐方法
CN116304721A (zh) 基于数据类别的大数据治理中数据标准制定方法及系统
CN113139061B (zh) 一种基于词向量聚类的案件特征提取方法
Liu et al. An accurate method of determining attribute weights in distance-based classification algorithms
CN111353523A (zh) 一种对铁路客户进行分类的方法
CN116578611B (zh) 一种孕育知识的知识管理方法和系统
CN114817668B (zh) 用于电磁大数据的自动化标注与目标关联方法
CN118132633A (zh) 一种用于数据库的数据集成分发方法
CN115964953A (zh) 一种基于元学习的电网数字化资源建模管理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination