CN111242179B - 一种基于cfs_kl的贝叶斯加权方法 - Google Patents
一种基于cfs_kl的贝叶斯加权方法 Download PDFInfo
- Publication number
- CN111242179B CN111242179B CN202010003109.6A CN202010003109A CN111242179B CN 111242179 B CN111242179 B CN 111242179B CN 202010003109 A CN202010003109 A CN 202010003109A CN 111242179 B CN111242179 B CN 111242179B
- Authority
- CN
- China
- Prior art keywords
- cfs
- attribute
- fingerprint
- merit
- value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 46
- 238000012549 training Methods 0.000 claims abstract description 35
- 238000012360 testing method Methods 0.000 claims abstract description 21
- 239000013598 vector Substances 0.000 claims abstract description 18
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000007789 sealing Methods 0.000 claims abstract description 10
- 238000004088 simulation Methods 0.000 claims abstract description 7
- 238000010187 selection method Methods 0.000 claims abstract description 6
- 238000009826 distribution Methods 0.000 claims description 13
- 238000011156 evaluation Methods 0.000 claims description 8
- 238000000342 Monte Carlo simulation Methods 0.000 claims description 5
- 238000012937 correction Methods 0.000 claims description 3
- 238000009499 grossing Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 11
- 239000000523 sample Substances 0.000 description 8
- 238000012795 verification Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification 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
- G06F18/24155—Bayesian classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于CFS_KL的新型贝叶斯加权方法,使用指纹库中的指纹名称作为模型的标记数据,指纹名称下的响应序列标志位构成训练数据;对训练数据进行封箱预处理操作;使用KL散度计算属性与类之间的关联度作为每个属性的权值;使用特征选择方法选出42个维度;使用CFS选出的维度修正KL散度计算出的权重;使用加权贝叶斯算法进行训练;通过封箱操作将向量输入训练好的指纹模型,基于CFS_KL的加权贝叶斯算法计算每条流量的最大后验概率,完成模拟数据测试;通过向目标网段发包的方式,采集真实流量,将真实流量输入指纹模型,预测结果;计算真实流量的测试精度。本发明缓解了贝叶斯算法对于特征独立的要求,提高了贝叶斯算法的识别精度。
Description
技术领域
本发明属于机器学习技术领域,具体涉及一种基于CFS_KL(correlation-basedfeature selection_Kullback-Leibler)的贝叶斯加权方法。
背景技术
贝叶斯算法作为机器学习的十大经典算法之一,在众多领域都有很多应用,且都表现出非常不错的效果,例如,根据电子邮件的标题和内容判断其是否为垃圾邮件。但由于学习最优的贝叶斯分类器就如同学习贝叶斯网络一样,是个NP难问题,所以学习朴素贝叶斯分类器就得到了众多学者的青睐,而朴素贝叶斯往往基于一个简单但却不现实的假设:训练数据的特征之间相互独立,这个强条件在现实生活中是很难达到的,甚至在现实中逻辑上已经表明特征之间相互独立的数据集,实际的数据中并没有那么强的独立性,这就极大的限制了朴素贝叶斯的分类效果。于是,许多学者开始尝试缓解朴素贝叶斯要求特征之间相互独立的条件。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于CFS_KL的贝叶斯加权方法,缓解朴素贝叶斯特征之间相互独立的条件,进而提高了朴素贝叶斯的分类精度。
本发明采用以下技术方案:
一种基于CFS_KL的贝叶斯加权方法,包括以下步骤:
S1、分析nmap指纹库中的操作系统识别规则,拆解nmap指纹库,使用指纹库中的指纹名称作为模型的标记数据,指纹名称下的响应序列标志位构成训练数据;
S2、对训练数据进行封箱预处理操作;
S3、使用KL散度计算属性与类之间的关联度作为每个属性的权值;
S4、使用特征选择方法选出42个维度;
S5、使用CFS选出的维度修正KL散度计算出的权重;
S6、使用加权贝叶斯算法进行训练;
S7、取步骤S1的训练数据,通过封箱操作将向量输入训练好的指纹模型,通过基于CFS_KL的加权贝叶斯算法,计算出每条流量的最大后验概率,完成模拟数据测试;
S8、通过向目标网段发包的方式,采集真实流量,将真实流量输入指纹模型,预测结果;计算真实流量的测试精度。
具体的,步骤S1中,以Fingerprint行代表的是该指纹所属的操作系统,以此作为分类的类标记,将每个响应序列加上标志位作为特征进行拆分,在选择维度时删除SEQ.SP特征,得到118个特征;按照规则集拆分指纹库,对于标志位取值SP=0-5拆解成SP=0,SP=1到SP=5;对于标志位取值GCD=B8|114|170|1CC拆解成GCD=B8,GCD=114,并映射成118列的数字向量;按照蒙特卡洛方法,从拆分出的数据集中抽出90万数据作为训练数据。
进一步的,蒙特卡洛方法具体为:
分别获取响应序列的全集,当全集数量大于500时,从全集随机挑选4个样本;当全集数量大于10小于等于500时,从全集随机挑选2个样本;当全集数量小于10时,随机挑选1个样本,获得90万数据作为模拟测试集。
具体的,步骤S2中,在训练数据中,对于每一个维度,取所有值,去重,按照从小到大排序,将所有数据平均分散到40个区间内,取每个区间的首尾,将区间内的数据全部映射成另外一个数字。
具体的,步骤S3中,第i个属性Ai对应的权值Mi为:
其中,P(ai)为第i个属性Ai的取值的概率,P(c)为类别c的先验概率,P(c|ai)为第i个属性Ai的取值上类别为c的条件概率。
具体的,步骤S4具体为:
S401、输入训练数据集D并进行数据预处理,获得数据集D的特征属性集合A={A1,A2,...An}和类集合属性C={C1,C2...Cm},然后对供选择的属性构成的集合SelectingSet赋初值为特征属性集合A,已选择的属性够成的集合SelectedSet赋初值为空;
S403、从SelectingSet中选择相关系数取值最大的那个属性Ai,将其从SelectingSet中剔除,并把它加入到SelectedSet中,并初始化max(Merit(As))为Merit(Asi);
S404、对SelectingSet中余下的每一个属性Aj(j≠i),根据计算SelectedSet中全部的属性与SelectingSet中的属性Aj构成的属性子集Asj的子集评估值Merit(Asj);
S405、对步骤S404求得的各个Merit(Asj)进行比较并选出最大的子集评估值max(Merit(Asj)),将其和max(Merit(As))进行比较,若max(Merit(Asj))大于max(Merit(As)),此时把Aj从SelectingSet中剔除同时将其加入到SelectedSet中,并把max(Merit(Asj))赋值给max(Merit(As)),继续步骤S404,若max(Merit(Asj))不大于max(Merit(As)),获得selectedSet为所求的最佳属性子集,返回SelectedSet。
具体的,步骤S5中,维度修正KL散度计算出的权重为:
具体的,步骤S6中,设输入空间为N维向量的集合,输出空间为类标记集合γ={c1,c2,...,ck},输入为特征向量x∈χ,输出为类标记y∈γ,X是定义在输入空间χ上的随机向量,Y是定义在输出空间γ上的随机变量,通过训练数据集学习联合概率分布P(X,Y),采用贝叶斯估计,条件概率的贝叶斯估计为:
其中,ajl表示第j个特征的第l个取值,Sj代表第j个特征的取值范围,ck表示第k个类别,λ表示拉普拉斯平滑时的参数,N表示训练样本个数;先验概率的贝叶斯估计为:
其中,K代表标记类的个数。
具体的,步骤S8中,朴素贝叶斯分类时,对给定的输入x,通过学习到的模型计算后验概率分布P(Y=ck|X=x),将后验概率最大的类作为x的类输出,根据贝叶斯定理计算后验概率,基于CFS_KL加权的贝叶斯算法对朴素贝叶斯算法进行修改,在分类时引入权重概念,最终的最大后验概率对应的类别y为:
其中,ck表示第k个类别,X(j)为第j个特征,x(j)为第j个特征的取值,wj为计算出的第j个特征的权重。
进一步的,带入独立性的后验概率为:
其中,k=1,2,...,K;
朴素贝叶斯分类器为:
与现有技术相比,本发明至少具有以下有益效果:
本发明针对于朴素贝叶斯由于特征间不独立而造成的分类效果不理想的问题,提出了一种的属性加权方法,缓解了朴素贝叶斯特征间要求独立的条件,提升了贝叶斯算法的分类效果,并成功的应用于了资产识别领域。
进一步的,nmap拥有丰富的操作系统指纹库nmap_os_db,内部包含上千种已知的指纹特征,拆分nmap指纹库可得到大量的唯一指纹,可为算法提供训练数据,将其转化为向量,以便算法的识别训练。
进一步的,由于某些特征在指纹库的取值范围是上亿的,例如’SEQ.GCD’,经过映射规则处理后的取值范围为1-3458752002,但观察到实际取值比较分散,所以将数据进行封箱处理,钝化辨识度,提高算法分类准确率。
进一步的,朴素贝叶斯算法要求特征之间保持强独立,而实际情况中,这往往是很难实现的,这也极大的限制了贝叶斯算法的分类精度,使用KL散度给每个维度计算初始权重,缓解维度之间的独立要求,为计算最终权重做准备。
进一步的,使用CFS特征选择方法选出与类别关联度比较大的特征,为计算最终权重做准备。
进一步的,结合CFS选出的与类别关联度大的特征,进一步修正KL计算出的缓解维度独立性的权重,计算出更加准确的最终权重。
进一步的,NB算法作为机器学习的十大算法之一,在许多领域已经表现了很好的分类效果,最重要的是,对于我们的数据来源,由于网络等原因,会有许多缺失值出现,而NB算法天然具有的对于缺失值不敏感的特性,使得NB算法非常适合我们的数据特点,进而表现出较好的分类效果,进一步的我们使用加权后的NB算法,有效的规避了朴素贝叶斯需要特征之间相互独立的弱点,使朴素贝叶斯算法进一步贴近实际问题,提高算法的精确度。
进一步的,采集真实网络流量,输入算法模型,验证算法在真实环境中的效果。
综上所述,本发明通过结合KL散度和CFS特征选择提出一种新的贝叶斯特征权重计算方法,缓解了贝叶斯算法对于特征独立的要求,提高了贝叶斯算法的识别精度,并在操作系统识别场景下验证其效果。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明方法的流程图;
图2为CFS算法的流程图;
图3为本发明算法验证结果在类别上的效果对比图;
图4为本发明算法验证结果在大版本上的效果对比图;
图5为本发明算法验证结果在小版本上的效果对比图。
具体实施方式
本发明一种基于CFS_KL的贝叶斯加权方法,包括以下步骤:
S1、数据收集阶段,拆解nmap指纹库,得到训练数据,模拟测试数据;
分析nmap指纹库中的操作系统识别规则,nmap指纹库会发送16个数据包,来对应生成响应序列,每个响应序列会对应一些标志位。nmap的指纹库包含了nmap已知的操作系统对nmap的16个探测包的回应数据包中所包含的该操作系统的指纹信息。因此,使用指纹库中的指纹名称来作为模型的标记数据,指纹名称下的响应序列的标志位来构成训练数据。如下为nmap指纹库的一条指纹:
Fingerprint Linux 3.10
Class Linux|Linux|3.X|general purpose
CPE cpe:/o:linux:linux_kernel:3.10 auto
SEQ(SP=100-10A%GCD=i-6%ISR=106-110%TI=Z%CI=Z%II=I%TS=C)
OPS(O1=MFFD7ST11NW7%O2=MFFD7ST11NW7%O3=MFFD7NNT11NW7%O4=MFFD7ST11NW7%O5=MFFD7ST11NW7%O6=MFFD7ST11)
WIN(W1=AAAA%W2=AAAA%W3=AAAA%W4=AAAA%W5=AAAA%W6=AAAA)
ECN(R=Y%DF=Y%T=3B-45%TG=40%W=AAAA%O=MFFD7NNsNW7%CC=Y%Q=)
T1(R=Y%DF=Y%T=3B-45%TG=40%S=O%A=S+%F=AS%RD=0%Q=)
T2(R=N)
T3(R=N)
T4(R=Y%DF=Y%T=3B-45%TG=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)
T5(R=Y%DF=Y%T=3B-45%TG=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)
T6(R=Y%DF=Y%T=3B-45%TG=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)
T7(R=Y%DF=Y%T=3B-45%TG=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)
U1(DF=N%T=3B-45%TG=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)
IE(DFI=N%T=3B-45%TG=40%CD=S)
其中,Fingerprint行代表的是该指纹所属的操作系统,以此作为分类的类标记,接下来的SEQ、OPS、WIN、ECN、T1、T2、T3、T4、T5、T6、T7、U1、IE为响应序列,每个响应序列会有后面的标志位,例如:SEQ的标志位为SP、GCD、ISR、TI、CI、II、TS,将每个响应序列加上他的标志位作为特征,例如:SEQ.SP、SEQ.GCD等,这样拆出119个特征。
其中,SEQ.SP表示TCP ISN序列可预测性指数,ISN是nmap接收的SYN/ACK包,包含的32位初始序列号,SP用于预测下一个ISN,计算时需要的参数有seq_rates和GCD,其中seq_rates的计算方法为:diff1/两个探针之间经过的时间量(单位:S-0.1)=seq_rates数组,diff1表示对于namp接收的SYN/ACK包,包含的32位初始序列号(ISN),diff1中第一个元素是第一和第二个探测包响应的ISN的差异;第二个元素是第二和第三个探测包响应的ISN的差异;如果接收了所有6个包,会有5个元素,diff1存放差值。
SP的计算方法为:
如果先前计算的GCD值大于9,则先前计算的seq_rates数组的元素除以该值,获取所得值的阵列的标准偏差,如果值为1或者更小,SP为0;否则计算结果的log2n;
然后将其乘以8,四舍五入到最接近的整数,并存储为SP;由于SP对于GCD逻辑上的强依赖关系,在选择维度时人为的删除SEQ.SP特征,为了尽量保持朴素贝叶斯维度间独立的条件,得到118个特征;
接下来,按照规则集拆分指纹库,指纹库包含的标志位取值的方法主要有:‘-’和‘|’。对于标志位取值类似于‘SP=0-5’,需要拆解成‘SP=0’,‘SP=1’到‘SP=5’6个取值;对于标志位取值类似于‘GCD=B8|114|170|1CC’,需要拆解成‘GCD=B8’,‘GCD=114’等4个值,并映射成118列的数字向量;
按照蒙特卡洛方法,从拆分出的大量数据集中抽出90万数据作为训练数据,具体做法为:
分别获取响应序列的全集,当全集数量大于500时,从全集随机挑选4个样本;
当全集数量大于10小于等于500时,从全集随机挑选2个样本;
当全集数量小于10时,随机挑选1个样本,从而获得90万数据作为模拟测试集;
为了加大测试样本和训练样本的不同性,在挑选测试集时,用同样的方法,但不从响应序列(例如GCD)而从单独的标志位(例如SP)作为标准衡量,即当单个特征的所有取值集合数量大于15,挑选数量为3,获得样本量为425096的测试集合。
S2、对训练数据进行封箱预处理操作;
由于某些特征在指纹库的取值范围是上亿的,例如'SEQ.GCD',经过以上处理的取值范围为1-3458752002,但观察到实际取值比较分散,所以将数据进行封箱处理,具体做法为:在训练数据中,对于每一个维度,取所有值,去重,按照从小到大排序,将所有数据平均分散到40个区间内,取每个区间的首尾,将区间内的数据全部映射成另外一个数字。例如:
某维度的取值为:[2,6,22,4,6,1,8,5,3,15,34,25,67,23]
去重排序后:[1,2,3,4,5,6,8,15,22,23,25,34,67]
均分到k个区间内(例如k=3):[1,2,3,4],[5,6,8,15],[22,23,25,34,67]
则该维度上1、2、3、4被映射成1,5、6、8、15被映射成2,22、23、25、34、67被映射成3。
实际测试得知该做法比较适用于实际情况
S3、KL散度计算权重阶段
相对熵,又被称为Kullback-Leibler散度(Kullback-Leibler divergence)或信息散度(information divergence),是两个概率分布(probability distribution)间差异的非对称性度量。
在信息理论中,相对熵等价于两个概率分布的信息熵的差值。本算法中使用KL散度来计算属性与类之间的关联度作为每个属性的权值,以此来缓解朴素贝叶斯要求特征间相互独立的强条件,是一种过滤的属性加权方法,本发明中,第i个属性Ai对应的权值Wi为:
其中,P(ai)为第i个属性Ai的取值的概率,P(c)为类别c的先验概率,P(c|ai)为第i个属性Ai的取值上类别为c的条件概率。
S4、使用特征选择方法CFS选择维度
在信息论中,用熵来表示一个随机变量的不确定程度或一个变量包含信息量的大小。假设P(x)表示属性X取值为x的概率,熵H(X)定义为:
另外,条件熵H(X|Y)表示在已知Y属性的前提下,X属性的熵的大小,用以下公式进行计算,其中,P(x|y)表示当属性Y取值为y时属性X取值为x的概率:
为了表示两个属性X和Y间相关性的大小,故而引入信息增益的概念。他被定义为属性X的熵与已知属性Y的条件熵H(X|Y)的差值即属性X的熵的减少量,其计算公式为:
gain=H(X)-H(X|Y)=H(X)+H(Y)-H(Y,X)=H(Y)-H(Y|X)
从上述公式可以看出,在保持熵H(X)不变的情况下,条件熵H(X|Y)的取值越大即属性X与属性Y之间的相关性越高,此时信息增益gain的取值越小,为了保证就算结果的准确性,防止其向含有较多信息的属性偏移,对信息增益gain的取值进行规格化处理,结合对称不确定方法,通过以下公式将信息增益gain的取值规格化到[0,1],而在CFS算法中,即通过以下公式来计算属性与类属性间相关性的大小以及属性与属性间相关性的大小。
使用CFS算法进行属性选择时,其思想是根据相关性的大小来评价一个属性子集的优良,他以属性间相关性的启发式评价函数为标准来评价属性子集,在这里,将属性集合中每个单独的属性作为度量类属性的一个单一测试,因此,根据合成测试的原理公式,在使用CFS算法进行属性选择时,包含k个属性的属性子集As的评价函数可表示为:
故CFS算法的具体执行步骤为:
S401、输入训练数据集D并进行数据预处理,获得数据集D的特征属性集合A={A1,A2,...An}和类集合属性C={C1,C2...Cm},然后对供选择的属性构成的集合SelectingSet赋初值为特征属性集合A,已选择的属性够成的集合SelectedSet赋初值为空;
S403、从SelectingSet中选择相关系数取值最大的那个属性Ai,将其从SelectingSet中剔除,并把它加入到SelectedSet中,并初始化max(Merit(As))为Merit(Asi);
S404、对SelectingSet中余下的每一个属性Aj(j≠i),根据公式计算SelectedSet中全部的属性与SelectingSet中的属性Aj构成的属性子集Asj的子集评估值Merit(Asj);
S405、对上步骤中求得的各个Merit(Asj)进行比较并选出最大的子集评估值max(Merit(Asj)),将其和max(Merit(As))进行比较。若max(Merit(Asj))大于max(Merit(As)),此时把Aj从SelectingSet中剔除同时将其加入到SelectedSet中,并把max(Merit(Asj))赋值给max(Merit(As)),继续上个步骤,若max(Merit(Asj))不大于max(Merit(As)),此时获得的selectedSet即为所求的最佳属性子集,返回SelectedSet。
具体地,通过CFS方法选出了WIN.W1、OPS.O2、SEQ.TS、SEQ.CI、T3.F、IE.T、SEQ.ISR、ECN.O、T7.A、T2.DF、SEQ.GCD、SEQ.II、IE.DFI、T3.DF、T4.A、WIN.W3、SEQ.SS、T3.A、U1.RUCK、ECN.Q、T1.DF、OPS.O6、T2.S、U1.RIPCK、SEQ.TI、T4.W、T7.Q、IE.CD、T3.S、T6.DF、T7.T、ECN.CC、ECN.W、T4.Q、U1.IPL、ECN.DF、T2.A、T3.O、T6.A、T7.S、T5.Q、U1.DF共42个维度。
S5、使用CFS选出的维度修正KL散度计算出的权重
其中,表示被CFS方法选中的第i个维度,ai表示没有被CFS方法选中的其他属性;即:对于CFS选出的维度将其KL权重乘以2,对于CFS没有选出的维度,保留KL散度计算的权重,得出最终的KL_CFS权重。
S6、使用加权贝叶斯算法进行训练
朴素贝叶斯法通过训练数据集学习联合概率分布P(X,Y)。具体地,学习先验概率分布及条件概率分布。
先验概率分布:
P(Y=ck)
其中,k=1,2...K;
条件概率分布:
P(X=x|Y=ck)=P(X(1)=x(1),...,X(n)=x(n)|Y=ck)
其中,k=1,2,...,K。
朴素贝叶斯对条件概率分布坐了条件独立性假设,具体地,条件独立性假设是:
采用贝叶斯估计,具体地,条件概率的贝叶斯估计是:
其中,ajl表示第j个特征的第l个取值,Sj代表第j个特征的取值范围,ck表示第k个类别,λ表示拉普拉斯平滑时的参数,常取1,N表示训练样本个数;
先验概率的贝叶斯估计是
其中,K代表标记类的个数。
S7、模拟数据测试阶段
取第一步的40万模拟数据,通过同样的封箱操作,将向量输入训练好的指纹模型,通过基于CFS_KL的加权贝叶斯算法,计算出每条流量的最大后验概率,计算出测试精度等衡量指标。
S8、真实流量测试阶段
通过向目标网段发包的方式,采集真实流量,将真实流量输入指纹模型,预测结果;计算真实流量的测试精度。
朴素贝叶斯分类时,对给定的输入x,通过学习到的模型计算后验概率分布P(Y=ck|X=x),将后验概率最大的类作为x的类输出,后验概率计算根据贝叶斯定理进行:
将独立性带入有:
其中,k=1,2,...,K;
于是,朴素贝叶斯分类器可表示为:
注意到,分母对所有ck都是相同的,所以,
基于CFS_KL加权的贝叶斯算法对朴素贝叶斯算法进行修改,为了缓解朴素贝叶斯特征之间相互独立的强特征,在分类时引入权重的概念,条件概率的计算方式有所修改,最终的最大后验概率的计算公式为:
分类出来的结果一般是类别+大版本+小版本的形式,例如:FingerprntLinux3.10,Fingerprint Windows7.1,将Linux,windows这样的结果称为类别,Linux3,windows7称为大版本,Linux3.10,windows7.1称为小版本,以此可以在三个层次上计算精度。
连续5天在某网段扫描,得到五批数据,每批有300条流量数据,其中主要包括80条windows类别,127条linux类别,93条Vmware类别,且包含多种大小版本,转化向量后输入算法模型,输出结果,计算准确度,得到以下验证效果(横轴为5批数据编号,实线表示CFS_KL加权贝叶斯算法的效果,短虚线表示KL加权贝叶斯算法的效果,长虚线表示朴素贝叶斯算法的效果),图3表示类别层次上的分类效果对比图,图4表示大版本层次上的分类效果对比图,图5表示小版本层次上的分类效果对比图。可以明显看到使用CFS_KL加权贝叶斯算法缓解了朴素贝叶斯特征独立的要求后,在测试的三个层次上,无论是类别、大版本还是小版本都有不同程度的提升,尤其在大小版本上的提升比较明显。表明了本方法的有效性。
综上所述,本发明创造性的将KL(Kullback-Leibler)散度和CFS的特征选择方法结合在一起,成为一种新的特征加权方式,在缓解朴素贝叶斯“朴素”的特点上也表现了较好的效果,并且成功的应用于操作系统的识别上。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (8)
1.一种基于CFS_KL的贝叶斯加权方法,其特征在于,包括以下步骤:
S1、分析nmap指纹库中的操作系统识别规则,拆解nmap指纹库,使用指纹库中的指纹名称作为模型的标记数据,指纹名称下的响应序列标志位构成训练数据;
S2、对训练数据进行封箱预处理操作;
S3、使用KL散度计算属性与类之间的关联度作为每个属性的权值,第i个属性Ai对应的权值Mi为:
其中,P(ai)为第i个属性Ai的取值的概率,P(c)为类别c的先验概率,P(c|ai)为第i个属性Ai的取值上类别为c的条件概率;
S4、使用特征选择方法选出42个维度;
S5、使用CFS选出的维度修正KL散度计算出的权重,维度修正KL散度计算出的权重为:
S6、使用加权贝叶斯算法进行训练;
S7、取步骤S1的训练数据,通过封箱操作将向量输入训练好的指纹模型,通过基于CFS_KL的加权贝叶斯算法,计算出每条流量的最大后验概率,完成模拟数据测试;
S8、通过向目标网段发包的方式,采集真实流量,将真实流量输入指纹模型,预测结果;计算真实流量的测试精度。
2.根据权利要求1所述的基于CFS_KL的贝叶斯加权方法,其特征在于,步骤S1中,以Fingerprint行代表的是该指纹所属的操作系统,以此作为分类的类标记,将每个响应序列加上标志位作为特征进行拆分,在选择维度时删除SEQ.SP特征,得到118个特征;按照规则集拆分指纹库,对于标志位取值SP=0-5拆解成SP=0,SP=1到SP=5;对于标志位取值GCD=B8|114|170|1CC拆解成GCD=B8,GCD=114,并映射成118列的数字向量;按照蒙特卡洛方法,从拆分出的数据集中抽出90万数据作为训练数据。
3.根据权利要求2所述的基于CFS_KL的贝叶斯加权方法,其特征在于,蒙特卡洛方法具体为:
分别获取响应序列的全集,当全集数量大于500时,从全集随机挑选4个样本;当全集数量大于10小于等于500时,从全集随机挑选2个样本;当全集数量小于10时,随机挑选1个样本,获得90万数据作为模拟测试集。
4.根据权利要求1所述的基于CFS_KL的贝叶斯加权方法,其特征在于,步骤S2中,在训练数据中,对于每一个维度,取所有值,去重,按照从小到大排序,将所有数据平均分散到40个区间内,取每个区间的首尾,将区间内的数据全部映射成另外一个数字。
5.根据权利要求1所述的基于CFS_KL的贝叶斯加权方法,其特征在于,步骤S4具体为:
S401、输入训练数据集D并进行数据预处理,获得数据集D的特征属性集合A={A1,A2,...An}和类集合属性C={C1,C2...Cm},然后对供选择的属性构成的集合SelectingSet赋初值为特征属性集合A,已选择的属性够成的集合SelectedSet赋初值为空;
S403、从SelectingSet中选择相关系数取值最大的那个属性Ai,将其从SelectingSet中剔除,并把它加入到SelectedSet中,并初始化max(Merit(As))为Merit(Asi);
S404、对SelectingSet中余下的每一个属性Aj(j≠i),根据计算SelectedSet中全部的属性与SelectingSet中的属性Aj构成的属性子集Asj的子集评估值Merit(Asj);
S405、对步骤S404求得的各个Merit(Asj)进行比较并选出最大的子集评估值max(Merit(Asj)),将其和max(Merit(As))进行比较,若max(Merit(Asj))大于max(Merit(As)),此时把Aj从SelectingSet中剔除同时将其加入到SelectedSet中,并把max(Merit(Asj))赋值给max(Merit(As)),继续步骤S404,若max(Merit(Asj))不大于max(Merit(As)),获得selectedSet为所求的最佳属性子集,返回SelectedSet。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010003109.6A CN111242179B (zh) | 2020-01-02 | 2020-01-02 | 一种基于cfs_kl的贝叶斯加权方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010003109.6A CN111242179B (zh) | 2020-01-02 | 2020-01-02 | 一种基于cfs_kl的贝叶斯加权方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111242179A CN111242179A (zh) | 2020-06-05 |
CN111242179B true CN111242179B (zh) | 2022-02-18 |
Family
ID=70874265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010003109.6A Active CN111242179B (zh) | 2020-01-02 | 2020-01-02 | 一种基于cfs_kl的贝叶斯加权方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111242179B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363099B (zh) * | 2020-10-30 | 2023-05-09 | 天津大学 | 一种tmr电流传感器温漂与地磁场校正装置及方法 |
CN113113131B (zh) * | 2021-03-24 | 2024-02-13 | 南京途博科技有限公司 | 死亡风险预测模型的生成方法、终端及计算机存储介质 |
CN116305148A (zh) * | 2023-02-28 | 2023-06-23 | 南京瀚海伏羲防务科技有限公司 | 一种基于指纹自动收集与增量模型训练的被动操作系统识别方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6973459B1 (en) * | 2002-05-10 | 2005-12-06 | Oracle International Corporation | Adaptive Bayes Network data mining modeling |
CN106384123A (zh) * | 2016-09-01 | 2017-02-08 | 中国地质大学(武汉) | 基于相关性的特征加权过滤方法及朴素贝叶斯分类方法 |
CN110222744A (zh) * | 2019-05-23 | 2019-09-10 | 成都信息工程大学 | 一种基于属性加权的朴素贝叶斯分类模型改进方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352393B2 (en) * | 2007-08-03 | 2013-01-08 | Alcatel Lucent | Method and system for evaluating tests used in operating system fingerprinting |
-
2020
- 2020-01-02 CN CN202010003109.6A patent/CN111242179B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6973459B1 (en) * | 2002-05-10 | 2005-12-06 | Oracle International Corporation | Adaptive Bayes Network data mining modeling |
CN106384123A (zh) * | 2016-09-01 | 2017-02-08 | 中国地质大学(武汉) | 基于相关性的特征加权过滤方法及朴素贝叶斯分类方法 |
CN110222744A (zh) * | 2019-05-23 | 2019-09-10 | 成都信息工程大学 | 一种基于属性加权的朴素贝叶斯分类模型改进方法 |
Non-Patent Citations (5)
Title |
---|
Chang-Hwan Lee etc..Calculating feature weights in naïve bayes with kullback-leibler measure.《2011 IEEE 11th International Conference on Data Mining》.2012,第1146-1151页. * |
Intrusion detection using naive bayes classifier with feature reduction;Saurabh Mukherjee etc.;《Procedia Technology》;20120614;第4卷;第119-128页 * |
基于贝叶斯网络的动态数据流分类研究;范慧敏;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20190815(第8期);第I138-467页 * |
属性加权的贝叶斯网络分类算法及其应用研究;余良俊;《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》;20181115(第11期);第I140-5页 * |
网络资产探测技术研究;王宸东 等;《计算机科学》;20181215;第45卷(第12期);第24-31页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111242179A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111242179B (zh) | 一种基于cfs_kl的贝叶斯加权方法 | |
Zeng et al. | Accurately clustering single-cell RNA-seq data by capturing structural relations between cells through graph convolutional network | |
CN110519128B (zh) | 一种基于随机森林的操作系统识别方法 | |
CN111444951B (zh) | 样本识别模型的生成方法、装置、计算机设备和存储介质 | |
CN110991549A (zh) | 一种针对图像数据的对抗样本生成方法及系统 | |
Paris et al. | Applying boosting techniques to genetic programming | |
Kim et al. | Ordinal classification of imbalanced data with application in emergency and disaster information services | |
CN112232526B (zh) | 一种基于集成策略的地质灾害易发性评价方法及系统 | |
CN113378988A (zh) | 基于粒子群算法的深度学习系统鲁棒性增强方法及装置 | |
CN111091194B (zh) | 一种基于cavwnb_kl算法的操作系统识别方法 | |
CN109034238A (zh) | 一种基于信息熵的聚类划分方法 | |
Zarei et al. | Detecting overlapping community structure of networks based on vertex–vertex correlations | |
CN111144462A (zh) | 一种雷达信号的未知个体识别方法及装置 | |
CN115032720A (zh) | 基于随机森林的多模式集成预报在地面气温预报中的应用 | |
CN109121133B (zh) | 一种位置隐私保护方法及装置 | |
CN112529112B (zh) | 一种矿物识别的方法和装置 | |
CN116545764B (zh) | 一种工业互联网的异常数据检测方法、系统和设备 | |
JP2002133389A (ja) | データ分類学習方法、データ分類方法、データ分類学習器、データ分類器、データ分類学習プログラムを記録した記憶媒体、データ分類プログラムを記録した記録媒体 | |
Yu et al. | PairMotif+: a fast and effective algorithm for de novo motif discovery in DNA sequences | |
Roebber | Using evolutionary programs to maximize minimum temperature forecast skill | |
CN109308565B (zh) | 人群绩效等级识别方法、装置、存储介质及计算机设备 | |
CN112733036A (zh) | 知识点推荐方法、装置、存储介质及电子装置 | |
CN112308151A (zh) | 基于加权的旋转森林高光谱图像分类方法 | |
KR20200113397A (ko) | 데이터 불균형 해결을 위한 언더샘플링 기반 앙상블 방법 | |
Sun et al. | Local false discovery rate estimation with competition‐based procedures for variable selection |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |