发明内容
本发明所要解决的是现有网站恶意用户检测方案存在检测精度不高的问题,提供一种基于两阶段随机森林算法的网站恶意用户预测方法。
为解决上述问题,本发明是通过以下技术方案实现的:
基于两阶段随机森林算法的网站恶意用户预测方法,包括步骤如下:
步骤1、令用于训练预测网站恶意用户任务的两阶段随机森林的用户训练数据集中每一个样本权重为1/Q;
步骤2、在步骤1所确定的用户训练数据集中每一个样本权重的基础上,对用户训练数据集进行带权有放回抽样,得到αB个训练数据子集;
步骤3、对于步骤2所得到的αB个训练数据子集,使用每一个训练数据子集分别训练出一个基分类器决策树,这些基分类器决策树构成两阶段随机森林的第一阶段基分类器决策树;
步骤4、令用于训练预测网站恶意用户任务的两阶段随机森林的用户训练数据集中每一个样本权重为wq;其中
步骤5、在步骤4所确定的用户训练数据集中每一个样本权重的基础上,对用户训练数据集进行带权有放回抽样,得到(1-α)B个训练数据子集;
步骤6、对于步骤4所得到的(1-α)B个训练数据子集,使用每一个训练数据子集分别训练出一个基分类器决策树,这些基分类器决策树构成两阶段随机森林的第二阶段基分类器决策树;
步骤7、将步骤3所得到的第一阶段基分类器决策树和步骤6所得到的第二阶段基分类器决策树组成两阶段随机森林预测模型;
步骤8、将待预测的网站用户数据输入到步骤7所得到的两阶段随机森林预测模型中,并根据两阶段随机森林预测模型的每个基分类器决策树对待预测的网站用户数据的预测类别进行投票,最多票的类别即为该待预测的网站用户数据的最终类别,进而根据该待预测的网站用户数据的最终类别确定用户是否为网站恶意用户;
其中,Q表示用户训练数据集的样本数量;α表示给定的两阶段随机森林的第一阶段基分类器决策树的数量占两阶段随机森林的全部基分类器决策树的数量的比例,α∈(0,1);B表示两阶段随机森林的全部基分类器决策树的数量;vq表示样本xq在第一阶段基分类器决策树中分类错误次数,当样本xq在第一阶段基分类器决策树中分类错误次数为0时,vq=1。
上述步骤3和步骤6中,使用一个训练数据子集训练出一个基分类器决策树的过程如下:
步骤1)计算当前训练数据子集的特征集中每个特征与类别标签集的对称不确定性,并将对称不确定性为0的特征从特征集中删除,得到当前初选特征集;
步骤2)计算当前初选特征集的每个特征与类别标签集的特征权重,并选择特征权重较大的前p个特征构成当前候选特征子集;
步骤3)先从当前训练数据子集选取包含当前候选特征子集中至少一个特征的样本构造当前保留数据子集;再分别使用线性判别分析法对当前保留数据子集进行降维,得到当前降维数据子集;
步骤4)在当前降维数据子集上使用Boolean测试计算划分超平面,并将所得到的划分超平面加入到备选划分超平面集中;
步骤5)对当前初选特征集进行更新,即从当前初选特征集中删除特征权重较小的yn个特征,并返回步骤2);
步骤6)重复执行步骤2)至步骤5)的迭代操作,直到步骤2)中当前初选特征集中的所有特征权重连续两次没有更新,或步骤5)中更新后的当前初选特征集中的特征数量小于等于p;
步骤7)计算备选划分超平面集中各个划分超平面的信息增益,并选择信息增益最大的划分超平面作为当前最优划分超平面,并使用当前最优划分超平面将当前训练数据子集划分为左右孩子节点的训练数据子集;
步骤8)对左右孩子节点的训练数据子集分别视为当前训练数据子集,并重复执行步骤1)至7)的递归操作,直到当前训练数据子集中的预定比例的样本属于同一类或者递归次数大于设定的最大限制的深度;
其中,p表示设定值,γ表示给定的删除率,γ∈(0,1),n为特征集的特征数量。
上述步骤1)中,特征集的特征fi与类别标签集C的对称不确定性SU(fi,C)为:
式中,MI(fi,C)表示特征集的特征fi与类别标签集C的互信息,H(fi)表示特征集的特征fi的香农信息熵,H(C)表示类别标签集C的香农信息熵,H(fi|C)表示特征集的特征fi与类别标签C的条件熵。
上述步骤2)中,初选特征集的特征fi与类别标签集C的特征权重w(fi,C)为:
式中,SU(f
i,C)表示初选特征集的特征f
i与类别标签集C的对称不确定性;SU(f
j,C)表示初选特征集的特征f
j与类别标签集C的对称不确定性;PairScore(f
i,f
j,C)表示非负归一化信息交互增益,
NIG(f
i,f
j,C)表示初选特征集的特征f
i和f
j与类别标签集C的归一化信息交互增益,IG(f
i,f
j,C)表示初选特征集的特征f
i和f
j与类别标签集C的信息交互增益;N为非负归一化信息交互增益PairScore(f
i,f
j,C)的数量即IG(f
i,f
j,C)>0的数量;|F′|为初选特征集F′中特征个数。
上述步骤8)中,预定比例的取值范围为85%~100%。
与现有技术相比,本发明具有如下特点:
1、使用基于对称不确定性和信息交互增益的方法来度量用户特征的重要性,该方法同时还考虑了用户特征之间的相关性和交互作用。现有的方法大多在划分左右子树时,只适用一个特征,而本发明使用的是一组特征,从而可识别网站恶意用户可能通过多个非敏感操作的组合完成以往检测方案无法检测的攻击。
2、设计了一种两阶段随机森林方法来改善随机森林中个体决策树的互补性,用以提高识别恶意用户的精确度:在第一阶段训练一组基于对称不确定性和信息交互增益的决策树,然后更新在该组决策树中分类错误用户样本的权重;在第二阶段训练的决策树将集中处理在第一阶段决策树中分类错误的用户样本。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,对本发明进一步详细说明。
本发明考虑到以往基于随机森林算法的恶意用户检测方法在存在大量相关性低或冗余特征的网站用户数据集上存在精度不高的问题,提出一种基于对称不确定性和信息交互增益两阶段随机森林算法的恶意用户检测方法,通过选择网站用户数据集中最优特征子集而不是仅考虑最优特征来构造随机森林中的基分类器决策树,随后基于这些决策树构造出两阶段随机森林,从而提高随机森林算法在判断恶意用户任务中的精度和效率。
本发明即基于两阶段随机森林算法的网站恶意用户预测方法,包括步骤如下:
一、训练阶段:
在本发明中,我们考虑到基分类器决策树之间存在的互补性。我们首先带权有放回抽样用户训练数据集用以训练第一部分可用于判断用户是否为恶意用户任务的基分类器决策树,然后我们训练剩余的基分类器决策树,这部分决策树主要集中处理两阶段随机森林的第一阶段分类错误的用户数据样本,该部分决策树的输出结果经过投票操作得到两阶段随机森林算法的第二阶段最终结果,同时这个结果也是整个两阶段随机森林的最终结果。
步骤1、初始化:从服务器中收集用于训练预测网站恶意用户任务的两阶段随机森林的用户训练数据集Dtrain,并令用户训练数据集Dtrain中每一个样本权重为1/Q,这意味着每个样本在带权有放回抽样时被抽中的概率一致,其中Q为用户训练数据集Dtrain的样本总数。
步骤2、对在步骤1所确定的用户训练数据集中每一个样本权重的基础上,对用户训练数据集进行带权有放回抽样,得到αB个训练数据子集。其中α∈(0,1),α表示第一阶段的决策树占全部决策树数量的比例,B表示随机森林基分类器的总个数。
步骤3、对于步骤2所得到的αB个训练数据子集,使用每一个训练数据子集分别训练出一个基分类器决策树,这些基分类器决策树构成随机森林的第一阶段基分类器决策树。
假定训练数据子集为D={x1,x2,x3,...,xm-1,xm},m为训练数据子集的样本数量;训练数据子集的特征集F={f1,f2,f3,...fn-1,fn},n为训练数据子集的特征数量;训练数据子集的类别标签集C={c1,c2,c3,...,co-1,co},o为训练数据子集的类别标签数量。
一般基于随机森林算法的恶意用户检测方法所使用的特征选择方法仅关注特征(feature)与类别标签(class)之间的相关性或特征之间的冗余性。然而对于用户数据集中的某些用户样本来说,尽管单个特征和类别标签之间的相关性可能很小,但是多个特征的组合可能比单个特征可以提供更多的信息。因此,我们首先利用对称不确定性和信息交互增益来评估特征之间的重要性,然后选择一批最优的特征用以划分节点,而其他基于随机森林的方法往往选择一个最优的特征用以划分节点。
利用训练数据子集训练基分类器决策树的过程如下:
步骤3.1、计算训练数据子集的特征集中每个特征与类别标签集的对称不确定性,并将对称不确定性为0的特征从特征集中删除,得到初选特征集。
使用对称不确定性(SU)来度量数据子集的特征集与类别标签集的相关性。数据子集的特征集F第i个特征fi与类别标签集C的对称不确定性SU(fi,C)为:
其中,MI(fi,C)表示特征fi与类别标签集C的互信息,H(fi)表示特征fi的香农信息熵,H(C)表示类别标签集C的香农信息熵,H(fi|C)表示特征fi与类别标签C的条件熵。
若对称不确定性SU(fi,C)=0,这意味着在该组数据子集中特征fi与类别标签集C无关,从当前的特征集中删除无用特征fi,得到初选特征集F′。例如有一组特征{f1,f2,f3,f4,f5,f6},其中SU(f2,C)=SU(f4,C)=0,则对于该数据子集来说,删除特征{f2,f4},保留的特征为初选特征集F′={f1,f3,f5,f6},不影响最后的结果。
步骤3.2、计算初选特征集的每个特征与类别标签集的权重,并选择权重较大的前p个特征构成候选特征子集,其中p为设定值。
对于步骤3.1筛选之后的初选特征集F′中每个特征fi,我们为了考虑用户特征与用户类别标签之间的相关性和用户特征之间的相互作用,使用归一化信息交互增益(NIG)衡量特征fi与fj之间的相互作用,其中fi∈F′-fj。本发明使用一种基于对称不确定性和信息交互增益的递归特征消除方法。特征fi与类别标签集C的特征权重w(fi,C)的计算方法如下,特征权重w(fi,C)越大意味着该用户特征fi对用户类别标签的确定贡献值越大,即重要性越大。
其中,SU(fi,C)为特征fi和类别标签集C对称不确定性,NIG(fi,fj,C)和IG(fi,fj,C)分别为特征fi和fj与类别标签集C的归一化信息交互增益和信息交互增益,N为非负归一化信息交互增益PairScore(fi,fj,C)的数量即IG(fi,fj,C)>0的数量,|F′|为筛选之后的初选特征集中特征个数。
使用上述方法求得初选特征集F′中每个特征权重w(fi,C)后,按权重大小对特征进行降序排序,然后选择前p个特征作为基分类器决策树某个节点的候选特征子集,其中p为决策树生成算法的一个参数。
步骤3.3、先从训练数据子集选取包含其候选特征子集中任意一个特征的样本构造保留数据子集,即将训练数据子集删除掉除了候选特征子集以外的特征得到新的数据子集。再使用经典的降维方法即线性判别分析(LinearDiscriminantAnalysis,以下简称LDA)将保留数据子集降维得到k维的降维数据子集D′(默认取k=1,意味着使用LDA将数据子集降维至1维),同时获取其降维权重矩阵w。降维数据子集D′中样本xi′与数据子集中的对应样本xi的关系为xi′=wTxi。
步骤3.4、在降维数据子集上使用Boolean测试计算划分超平面,并将所得到的划分超平面加入到备选划分超平面集中。
步骤3.5、对初选特征集进行更新,即从初选特征集中删除特征权重较小的γn个特征;再返回步骤3.2。其中γ表示给定删除率。
步骤3.6、重复执行步骤3.2至步骤3.5,直到步骤3.2所计算的所有特征权重连续两次没有更新或执行步骤3.5删除操作后的特征数量小于等于最低选取特征的数量p。
步骤3.7、计算备选划分超平面集中各个划分超平面的信息增益,并选择信息增益最大的划分超平面作为当前最优划分超平面,并使用当前最优划分超平面将当前训练数据子集划分为左右孩子节点的训练数据子集。
计算信息增益ΔGini用以确定备选划分超平面集中每一个划分超平面的效果,信息增益ΔGini越大意味着划分左右孩子节点的效果越好,左右孩子节点的信息纯度越大。
信息增益计算方法为:
ΔGini=Ginip-Ginic
其中Ginip为父节点GINI指数,Ginic为左右孩子节点GINI指数。
选择信息增益最大的划分超平面作为最优划分超平面θ,我们使用最优分割超平面将数据子集划分为左右孩子节点的数据子集。
划分规则为:对于降维数据子集D′中每一个小于最优分割超平面θ的样本xi′所对应的在数据子集中的样本xi划到左孩子节点,否则划到右孩子节点。同时我们在该节点内保存最优划分超平面、在Boolean测试方法中最优划分超平面所使用的候选特征子集以及降维矩阵,这些数据将在两阶段随机森林模型的预测阶段使用,用以预测用户属于哪种用户类型。
步骤3.8、对左右孩子节点的训练数据子集分别重复执行步骤3.1至步骤3.7的递归操作,直到当前训练数据子集中的绝大部分样本(如85%~100%的样本)属于同一类或者递归次数大于设定的最大限制的深度max_depth。其中最大限制的深度max_depth设置为10。
我们在每个非叶子节点上,使用基于对称不确定性和信息交互增益特征选择方法来获得最优候选特征子集。然后我们利用LDA算法在候选特征子集上寻找最佳的投影方向用以将候选特征子集中每个特征投影至同一平面(即降维),计算最优划分超平面用以在决策树上生成左右孩子节点(在最优划分超平面左边的数据集被划分给左孩子节点,反之则划分为右孩子节点)。而在每个叶子节点上,保存在满足递归停止条件时数据子集中大多数样本所属于的用户类别。递归全部停止后一个基分类器-基于对称不确定性和信息交互增益决策树训练完成,其预测结果可供上层随机森林进行投票操作以确定模型最终结果。
步骤4、在训练完第一阶段中αB个基分类器决策树后,我们调高在该过程中分类错误的用户数据样本的权重,即重新确定用于训练预测网站恶意用户任务的两阶段随机森林的用户训练数据集中每一个样本权重wq:
其中vq为用户训练数据集中第q个样本xq在两阶段随机森林算法的第一阶段中分类错误次数。若样本xq在第一阶段全部的αB个基分类器中全部分类正确则vq=1。更新后的用户数据样本权重wq越高意味着该样本在两阶段随机森林的第二阶段中带权有放回抽样被抽中概率越大,即第二阶段中的决策树主要集中处理二阶段随机森林的第一阶段中分类错误的用户数据样本。
步骤5、在步骤4所确定的用户训练数据集中每一个样本权重的基础上,对用户训练数据集进行带权有放回抽样,得到(1-α)B个训练数据子集。
步骤6、对于步骤5所得到的(1-α)B个训练数据子集,采用与步骤3相同的方法,使用每个训练数据子集分别训练出(1-α)B个基分类器决策树,这些基分类器决策树构成随机森林的第二阶段基分类器决策树。
步骤7、将步骤3所得到的第一阶段基分类器决策树和步骤6所得到的第二阶段基分类器决策树构成两阶段随机森林预测模型,如图1所示。
二、预测阶段:
步骤8、将待预测的网站用户数据输入到步骤7所得到的随机森林预测模型中,并根据随机森林预测模型的每个基分类器决策树的预测结果对用户类别进行投票,最多票的类别即为该待预测的网站用户数据的最终类别,进而根据待预测的网站用户数据的最终类别确定用户是否为网站恶意(当待预测的网站用户数据为恶意类别时,则判断该用户为网站恶意用户,否则,判断该用户为非网站恶意用户)。
在网站服务器中继续收集用户产生的预测数据集Dpredict,利用训练好的两阶段随机森林模型对收集的新数据进行用户类别预测。在进行用户类别判断时,根据所有单个决策树的预测结果对用户类别进行投票,最多票的类别即为该用户的最终类别。
例如,我们假设在第二阶段中共有10个基于对称不确定性和信息交互增益的决策树构成,对于预测数据集第i个样本xi,有6个基分类器将其预测为恶意用户、3个基分类器将其预测为正常用户、1个基分类器将其预测为高危用户,则根据投票操作的少数服从多数原则,第i个样本xi最终会被定为恶意用户。使用用户训练数据集训练好的两阶段随机森林模型可根据输入的用户数据判断该用户是否为恶意用户或者属于哪种安全级别用户,给出具有一定可信程度的判断参考结果,可用于网站管理员或网站运维人员等进行用户权限控制和禁止用户访问等后继工作。减轻网站管理员工作压力的同时,可在一定程度上提高用户分类工作的精确度,减少恶意用户对网站的攻击。
本发明公开一种基于对称不确定性和信息交互增益两阶段随机森林算法的恶意用户检测方案,主要针对传统随机森林算法在处理用户数据集等存在大量相关性低或冗余特征的数据集时精度较低的问题而提出。本发明通过考虑特征之间的相关性的同时还考虑特征之间的交互作用,即在决策树进行节点划分时不是仅使用一个最优特征而是使用多个特征的组合,因此可增强数据特征提供的信息量从而提高决策树的精度,然后使用以上的决策树作为基分类器构造出两阶段随机森林,从而识别网站恶意用户可能通过多个非敏感操作的组合完成以往检测方案无法检测的攻击。
需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。