[发明专利]一种基于密度加权集成规则的日志异常检测方法有效
申请号: | 202110063328.8 | 申请日: | 2021-01-18 |
公开(公告)号: | CN112711665B | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | 应时;刘祥瑞;王冰明;黄浩 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F16/35 | 分类号: | G06F16/35;G06F40/216 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 许莲英 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 密度 加权 集成 规则 日志 异常 检测 方法 | ||
1.一种基于密度加权集成规则的日志异常检测方法,其特征在于,包括以下步骤:
步骤1:引入多条软件日志,将每条软件日志根据分隔符分割解析得到软件单词数据集,将多个软件单词数据集进行求并集处理,进一步通过单词去重复处理得到单词集合,统计单词集合中每个单词在每条日志出现的频次,进一步构建软件日志单词频次向量;
步骤2:根据单词频次向量,使用基于改进的复杂分布数据谱聚类的多粒度主曲线方法提取确定初始中心点和初始类数,对单词频次向量进行聚类并获得精确的簇,同时得到每个簇的中心点,根据每个簇的中心点的状态标记簇中的所有样本,根据中心点的状态确定所有样本的状态,得到正常簇、异常簇,并统计异常簇的数量,再统计异常簇的样本数量,计算得到新的正常簇的样本数量,对正常簇抽样得到新的正常簇,通过新的正常簇的样本数量,计算得到新的异常簇的样本数量,对异常簇抽样得到新的异常簇,得到正常日志集和异常日志集,通过正常日志集和异常日志集构建平衡日志集;
步骤3:基分类器将平衡日志集作为训练集进行优化训练,用训练后的基分类器构建多基分类器,用多基分类器对待分类的样本进行分类,多基分类器的每个基分类器会产生分类概率向量;
步骤4:根据多基分类器的每个基分类器产生的分类概率向量,通过五个集成规则MaxNW,MinNW,MajNW,ProdNW和SumNW,分别得到五个集成规则产生的分类结果,遍历五个分类结果,如果有相同的分类结果,则分类结果的频次加一,得到分类结果的频次,从中选择频次最大的分类结果作为最终的分类结果,如果有多个频次最多的分类结果,则从中随机选择一个分类结果作为最终的分类结果;
步骤2所述初始中心点和类分别为:
CenterPoint0
Classes={Class1,Class2,...,ClassClaNum}
其中,CenterPoint0为初始中心点,Classclassnum为第clanum个类,clanum∈[1,ClaNum];
步骤2所述精确的簇为:
Clusters={Cluster1,Cluster2,...,ClusterCluNum}
其中,Clusterclunum为第clunum个簇,clunum∈[1,CluNum];
步骤2所述每个簇的中心点为:
CenterPoints={CenterPoint0,CenterPoint1,...,CenterPointCluNum}
其中,CenterPointclunum为第clunum个簇的中心点,特别地,CenterPointo为初始中心点;
步骤2所述每个簇的中心点状态为:
CenterPointStates={CPState1,CPState2,...,CPStateCluNum}
其中,CPStateclunum为第clunum个簇的中心点的状态,CPStateclunum∈[0,CluNum-1],CPStateclunum=0表示第clunum个簇的中心点为正常,CPStateclunum≠0表示第clunum个簇的中心点为异常,正常状态只有1种,异常状态有ClusterNum-1种;
步骤2所述簇中的样本为:
其中,Clusterclunum为第clunum个簇,Sampleclunum,samnum为第clunum个簇的第samnum个样本,SamNumclunum为第clunum个簇的样本数量,samnum=[1,SamNumclunum];
步骤2所述根据中心点的状态确定所有样本的状态为:
其中,SamStatesclunum为第clunum个簇的样本状态集,SamStateclunum,samnum为第clunum个簇的第samnum个样本状态,与CPStateclunum类似,两者之间存在这样的关系:
if CPStateciunum=0
then
如果第clunum个簇的中心点状态为正常,那么第clunum个簇中的所有样本状态全为正常,第clunum个簇为正常簇;
if CPStateclunum=x
then
(x∈[1,ClusterNum-1])
如果第clunum个簇的中心点状态为异常,那么第clunum个簇中的所有样本状态全为异常,第clunum个簇为异常簇;
正常簇为:
NorClusters0={NorCluster0,1}
其中,NorClusters0表示正常簇集,NorCluster0,1为正常簇集的第1个正常簇,正常簇的数量只有1;
异常簇为:
其中,AbnorClusters0表示异常簇集,为异常簇集的第nabnor个异常簇,nabnor∈[1,Nabnor],Nabnor为异常簇数量;
步骤2所述异常簇的样本数量为:
其中,为第nabnor个异常簇的样本数量;
步骤2所述新的正常簇的样本数量为:
步骤2所述新的异常簇的样本数量为:
从每一个正常簇里抽出Nnor个样本,得到新的正常簇:
NorClusters1={NorCluster1,1}
其中,NorClusters1为经过1轮抽样的正常簇集,NorCluster1,1为经过1轮抽样的正常簇集的第1个正常簇,此过程重复N次;
从每一个异常簇里提取Nabnor个样本,得到新的异常簇:
其中,AbnorClusters1为经过1轮抽样的异常簇集,为经过1轮抽样的异常簇集的第nabnor个异常簇,nabnor∈[1,Nabnor],Nabnor为经过1轮抽样的异常簇数量,此过程重复N次;
步骤2正常日志样本集为:
NorSet={NorClusters1,NorClusters2,...,NorClustersN}
其中,NorClustersn为经过n次抽样后的正常簇集,n∈[1,N];
步骤2异常日志样本集为:
AbnorSet={AbnorClusters1,AbnorClusters2,...,AbnorClustersN}
其中,AbnorClustersn为经过n次抽样后的异常簇集;
步骤2所述平衡日志集为:
BalanceSet={BS1,BS2,...,BSN}
其中,BSn为经过n次抽样后的平衡日志集,
BSn={AbnorClustersn,NorClustersn};
步骤3所述基分类器为:
MulClassifier={CS1,CS2,...,CSCSNum}
其中,MulClassifier为多基分类器,CScsnum为第csnum个基分类器,csnum∈[1,CSNum];
步骤3所述待分类的样本:
S
步骤3所述多基分类器的每个基分类器产生的分类概率向量为:
CScsnum={probcsnum,1*|MKNN(S,1)|,probcsnum,2*|MKNN(S,2)|,...,probcsnum,ClaNum*|MKNN(S,ClaNum)|}
其中,probcsnum,clanum是第csnum个基分类器将待分类的样本S分类到第clanum个类的概率,MKNN(S,clanum)(classnum∈[1,ClaNum])表示待分类的样本S在第clanum个类的样本簇中的互近邻样本,|MKNN(S,clanum)|表示待分类的样本S在第clanum个类的样本簇中所具有的互近邻样本数;
步骤4所述MaxNW规则为:
得到多基分类器的每个基分类器产生的分类概率向量,每个基分类器从产生的分类概率向量中得到各自最大的分类概率,将这些最大的分类概率拼接成最大分类概率集合,从最大分类概率集合中选出最大的最大分类概率,再搜索得到最大的最大分类概率所对应的类,此类即MaxNW规则下的分类结果;
MaxNW规则所述各自最大的分类概率为:
max(CScsnum)
其中,CScsnum为第csnum个基分类器,csnum∈[1,CSNum];
MaxNW规则所述最大分类概率集合为:
MaxPro={max(CS1),max(CS2),...,max(CSCSNum)}
其中,max(CScsnum)为第csnum个基分类器的最大概率;
MaxNW规则所述最大分类概率集合中最大的最大分类概率为:
max(MaxPro)
MaxNW规则所述搜索得到最大的最大分类概率为:
其中,为第csnum个基分类器将待分类的样本S分到第a1个类的概率,a1∈[1,ClaNum];
MaxNW规则所述MaxNW规则下的分类结果为:
步骤4所述MinNW规则为:
得到多基分类器的每个基分类器产生的分类概率集合,每个基分类器从产生的分类概率向量中得到各自最小的分类概率,将这些最小的分类概率拼接成最小分类概率集合,从最小分类概率集合中选出最小的最小分类概率,再搜索得到最小的最小分类概率所对应的类,此类即MinNW规则下的分类结果;
MinNW规则所述各自最小的分类概率为:
min(CScsnum)
其中,CScsnum为第csnum个基分类器,csnum∈[1,CSNum];
MinNW规则所述最小分类概率集合为:
MinPro={min(CS1),min(CS2),...,min(CSCSNum)}
其中,min(CScsnum)为第cSnum个基分类器的最小概率;
MinNW规则所述最小分类概率集合中最小的最小分类概率为:
min(MinPro)
MinNW规则所述搜索得到最小的最小分类概率为:
其中,是第csnum个基分类器将待分类的样本S分到第a2个类的概率,a2∈[1,ClaNum];
MinNW规则所述MinNW规则下的分类结果为:
步骤4所述MajNW规则为:
得到多基分类器的每个基分类器产生的分类概率向量,每个基分类器从产生的分类概率向量中得到各自最大的分类概率,将这些最大的分类概率拼接成最大分类概率集合,统计最大分类概率集合中各个最大的分类概率所对应的类出现的频次,得到频次集合,从频次集合中再搜索得到最大频次所对应的类,此类即MajNW规则下的分类结果;
MajNW规则所述频次集合为:
Count={count1,count2,...,countClaNum}
其中,countclanum为第clanum个类在最大分类概率集合中出现的频次,clanum∈[1,ClaNum];
MajNW规则所述最大频次为:
max(Count)
MajNW规则所述搜索得到最大频次为:
MajNW规则所述MajNW规则下的分类结果为:
步骤4所述ProdNW规则为:
得到多基分类器的每个基分类器产生的分类概率向量,据此得到每个类的分类概率集合,再据此得到整个分类概率集合,将每个类的分类概率集合的分类概率依次相乘,得到每个类的分类概率的积,据此得到分类概率的积的集合,从中得到最大的的分类概率的积,再搜索得到最大的的分类概率的积对应的类,此类即ProdNW规则下的分类结果;
ProdNW规则所述整个分类概率集合:
ClassProbability={CP1,CP2,...,CPClaNum}
其中,CPclanum为第clanum个类的分类概率集合,clanum∈[1,ClaNum];
ProdNW规则所述每个类的分类概率集合为:
CPclanum={prob1,clanum,prob2,clanum,...,probCSNum,clanum}
其中,probcsnum,clanum为第csnum个分类器将待分类的样本S分类为第clanum类的概率;
ProdNW规则所述每个类的分类概率的积为:
ProdNW规则分类概率的积的集合为:
ProdPro={produce1,produce2,...,produceClaNum}
ProdNW规则所述最大的的分类概率的积为:
max(ProdPro)
ProdNW规则所述搜索得到最大的的分类概率的积为:
ProdNW规则所述规则下的分类结果为:
步骤4所述SumNW规则为:
得到多基分类器的每个基分类器产生的分类概率向量,据此得到每个类的分类概率集合,再据此得到整个分类概率集合,将每个类的分类概率集合的分类概率依次相加,得到每个类的分类概率的和,据此得到分类概率的和的集合,从中得到最大的的分类概率的和,再搜索得到最大的的分类概率的和对应的类,此类即SumNW规则下的分类结果;
SumNW规则所述每个类的分类概率的和为:
SumNW规则分类概率的积的集合为:
SumPro={sum1,sum2,...,sumClaNum}
SumNW规则所述最大的的分类概率的积为:
max(SumPro)
SumNW规则所述搜索得到最大的的分类概率的积为:
SumNW规则所述规则下的分类结果为:
步骤4所述五个集成规则产生的分类结果为:
Results={Result1,Result2,...,Result5}
其中,Results为分类结果集,Resultr为第r个集成规则得到的分类结果,r∈[1,5],集成规则顺序为:MaxNW,MinNW,MajNW,ProdNW和SumNW;
步骤4所述分类结果的频次为:
ResNums={ResNum1,ResNum2,...,ResNumClaNum}
其中,ResNums为集成规则产生的分类结果的数量集,ResNumclanum表示第clanum个类在分类结果集Results中出现的频次;
步骤4所述频次最大的分类结果为:
MaxResults={MaxResult1,MaxResult2,...,MaxResultMR}
其中,MaxResults为频次最大的分类结果集,MaxResultmr表示第mr个频次最大的分类结果,mr∈[1,MR],1≤MR≤5,如果MRCN=1,则最终分类结果为MaxResult1,如果MRCN≠1,则从集合中随机选择一个最大数量所对应的类作为最终分类结果;
步骤4所述最终分类结果为:
random=rand(1,MR)
FinalResult=Resultrandom
其中,random=rand(1,MR)为从[1,MR]的区间中随机选择一个整数,FinallResult=Resultrandom为选择第random个分类结果作为最终的分类结果。
2.根据权利要求1所述的基于密度加权集成规则的日志异常检测方法,其特征在于:
步骤1所述每条软件日志为:
Logi
i∈[1,M]
其中,Logi为第i条软件日志,M为软件日志的数量;
步骤1所述软件单词数据集为:
其中,Datai为第i条软件日志的软件单词数据集,Wordi,j为第i条软件日志的软件单词数据集中第j个软件单词,Ni为第i条软件日志的软件单词数据集中软件单词的数量,j∈[1,Ni];
步骤1所述多个软件单词数据集进行求并集处理为:{Data1,Data2,...,DataM};
步骤1所述通过单词去重复处理得到单词集合为:
WordSet={Word1,Word2,...,WordL}
其中,Wordk为单词集合中第k个单词,L为单词集合中单词的数量,k=[1,L];
步骤1所述统计单词集合中每个单词在每条日志出现的频次为:
Freqk={Fk,1,Fk,2,...,Fk,M}
其中,Freqk为单词集合中第k个单词在各软件单词数据集种出现的频次,Freqk,i为单词集合中第k个单词在第i条软件日志的软件单词数据集中出现的频次即次数,L为单词集合中单词的数量,k∈[1,L];
步骤1所述构建软件日志单词频次向量为:
Vectori={F1,i,F2,i,...,FL,i}
i∈[1,M]
其中,Vectori为第i条软件日志的单词频次向量,M为软件日志的数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110063328.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:玻璃组合物
- 下一篇:一种建筑用建筑垃圾粉碎装置