1.一种基于K-means和Latent Dirichlet Allocation(LDA)双向验证的网络行为习惯聚类方法,其特征在于,利用人员上网记录中的网页属性、关键词和频数,结合K-means算法、LDA文档主题提取模型和退火算法,先对全体人员-标签-频率集、人员浏览记录-人员-关键词集进行K-means算法聚类和LDA文档主题提取模型生成,存储计算中间结果,之后使用退火算法将K-means和LDA进行双向验证,计算全局最佳主题-分类标签序列,以此为依据优化网络行为习惯聚类的结果;其中,包含模拟退火算法主流程步骤A和成本函数处理流程步骤B:模拟退火算法主流程步骤A1到步骤A26:
步骤A1:设全体人员-标签-频率集为PERSONLABELFREQ={(PERSONp1, LABELp1,
FREQp1), (PERSONp2, LABELp2, FREQp2), …, (PERSONpa, LABELpa, FREQpa)},其中,PERSONp1, PERSONp2, …, PERSONpa代表人员唯一标识,LABELp1, LABELp2, …, LABELpa代表人员上网浏览内容的整体属性,一个人员唯一标识可对应多个属性,FREQp1, FREQp2, …, FREQpa代表人员上网浏览内容的整体属性的权重,设人员上网浏览记录-人员-关键词集为RECORDIDPERSONKEYWORD={(RECORDIDr1, PERSONr1, KEYWORDr1), (RECORDIDr2, PERSONr2, KEYWORDr2), …, (RECORDIDra, PERSONra, KEYWORDra)},其中,RECORDIDr1, RECORDIDr2, …, RECORDIDra代表人员记录唯一标识,由人员唯一标识和上网日期组成,PERSONr1, PERSONr2, …, PERSONra代表人员唯一标识,KEYWORDr1, KEYWORDr2, …, KEYWORDra代表人员上网浏览内容包含的关键词,设主题分布的狄利克雷参数为ALPHA,设关键词分布的狄利克雷参数为ETA,设LDA文档主题提取模型迭代次数为ITERLDA,设K-means聚类算法迭代次数为ITERKMEANS,设分类标签总数为CATEGORYNUM,设LDA文档主题提取模型的主题总数为TOPICNUM,设模拟退火算法温度为T,设模拟退火算法改变步长为STEP,设模拟退火算法冷却参数为COOL;
步骤A2:设K-means聚类算法的结果集为全体人员-分类标签集,即,表示为
KMEANSPERSONCATEGORY,其中,分类标签由自然整数表示;设LDA模型的主题-关键词集为LDATOPICWORD,其中,主题由自然整数表示;设LDA模型的主题-人员集为LDATOPICPERSON,其中,主题由自然整数表示;设全局最佳主题-分类标签序列为FACTOR,设全局最大匹配数为EA,设当前主题-分类标签序列为vecb,设当前匹配数为eb,设主题-分类标签序列当前下标为index,设模拟退火算法当前步长为curstep;
步骤A3:调用K-means聚类算法工具,传入步骤A1的分类标签总数CATEGORYNUM、步骤A1的K-means聚类算法迭代次数ITERKMEANS以及步骤A1的全体人员-标签-频率集PERSONLABELFREQ,得到K-means聚类算法结果集为全体人员-分类标签集,即,得到KMEANSPERSONCATEGORY={(PERSON1, CATEGORYc1), (PERSON2, CATEGORYc2), …, (PERSONa, CATEGORYca)},其中,KMEANSPERSONCATEGORY来自步骤A2;
步骤A4:调用LDA模型工具,传入LDA文档主题提取模型的主题总数TOPICNUM、主题分布的狄利克雷参数ALPHA、关键词分布的狄利克雷参数ETA、LDA文档主题提取模型迭代次数ITERLDA以及人员上网浏览记录-人员-关键词集RECORDIDPERSONKEYWORD,得到LDA模型的主题-关键词集,即,得到LDATOPICWORD={(TOPICt1, KEYWORD1), (TOPICt2, KEYWORD2), …, (TOPICtb, KEYWORDb)}以及LDA模型的主题-人员集,即,LDATOPICPERSON={(TOPICt1, PERSONp1), (TOPICt2, PERSONp2), …, (TOPICtc, PERSONpc)},其中,LDATOPICWORD以及LDATOPICPERSON来自步骤A2;
步骤A5:用0到CATEGORYNUM-1之间的随机数初始化全局最佳主题-分类标签序列
FACTOR,序列长度为LDA文档主题提取模型的主题总数TOPICNUM,序列中的每个元素的范围在0到CATEGORYNUM-1之间,其中,CATEGORYNUM为分类标签总数,初始化全局最大匹配数EA为0,即,FACTOR={FACTOR1, FACTOR2, …, FACTORTOPICNUM},EA=0;
步骤A6:当步骤A1中的模拟退火算法温度T大于0.1时,则执行步骤A7到步骤A25;否则执行步骤A26;
步骤A7:给步骤A2中的主题-分类标签序列当前下标index以随机数赋值,随机数的范围在0和TOPICNUM-1之间,其中,TOPICNUM为步骤A1中的LDA文档主题提取模型的主题总数;
步骤A8:给步骤A2中的模拟退火算法当前步长为curstep以随机数赋值,随机数的范围在-1×STEP和STEP之间,其中,STEP为步骤A1中的模拟退火算法改变步长;
步骤A9:令步骤A2中的当前主题-分类标签序列vecb等于步骤A2中的全局最佳主题-分类标签序列FACTOR,即,vecb=FACTOR;
步骤A10:改变步骤A2中的当前主题-分类标签序列vecb,第index位置上的数值,令vecbindex加上curstep,其中,index为步骤A2重的主题-分类标签序列当前下标,curstep为步骤A2中的模拟退火算法当前步长,即,vecbindex= vecbindex+curstep;
步骤A11:当步骤A2中的当前主题-分类标签序列vecb在第index位置上的数值小于0时,即,vecbindex<0,则执行步骤A12;否则执行步骤A13;
步骤A12:令步骤A2中的当前主题-分类标签序列vecb在第index位置上的数值等于0,即,vecbindex=0;转到步骤A15;
步骤A13:当步骤A2中的当前主题-分类标签序列vecb在第index位置上的数值大于CATEGORYNUM-1时,其中,CATEGORYNUM为步骤A1中的分类标签总数,即,vecbindex>CATEGORYNUM-1,则执行步骤A14;否则执行步骤A15;
步骤A14:令步骤A2中的当前主题-分类标签序列vecb在第index位置上的数值等于CATEGORYNUM-1,即,vecbindex= CATEGORYNUM-1,其中,CATEGORYNUM为步骤A1中的分类标签总数;
步骤A15:获取步骤A2中的全局最佳主题-分类标签序列FACTOR;
步骤A16:执行步骤B;
步骤A17:获取步骤B的结果赋给步骤A2中的全局最大匹配数EA;
步骤A18:获取步骤A2中的当前主题-分类标签序列vecb;
步骤A19:执行步骤B;
步骤A20:获取步骤B的结果赋给步骤A2中的当前匹配数eb;
步骤A21:当步骤A2中的当前匹配数eb大于步骤A2中的全局最大匹配数EA时,即,eb>EA,则执行步骤A22;否则执行步骤A25;
步骤A22:生成随机数random,其中,数值范围在0到1之间;
步骤A23:当步骤A22中的随机数random小于e(eb-EA)/T时,即,random
步骤A24:令步骤A2中的全局最佳主题-分类标签序列FACTOR的值为步骤A2中的当前主题-分类标签序列vecb,令步骤A2中的全局最大匹配数EA的值为步骤A2中的当前匹配数eb,即,FACTOR=vecb,EA=eb;
步骤A25:降低步骤A1中的模拟退火算法温度T,使用步骤A1中的模拟退火算法冷却参数COOL,即,T=T×COOL,执行步骤A6;
步骤A26:返回步骤A2中的全局最佳主题-分类标签序列,即,FACTOR={FACTOR1, FACTOR2, …, FACTORTOPICNUM};返回步骤A2中的全局最大匹配数EA;
成本函数处理流程步骤B从步骤B1到步骤B15:
步骤B1:获取步骤A中传入的主题-分类标签序列TMPFACTOR;
步骤B2:设LDA文档主题提取模型的人员-分类标签集为LDAPERSONCATEGORY,设人员唯一标识集为LDAPERSON,设人员总数为LDAPERSONNUM,设全体分类标签集为CATEGORY,设匹配数为SUM,设单个人员对应的主题集合为singlepersontopic,设LDA文档主题提取模型中当前分类人员集合为ldacurcategoryperson,设K-means聚类算法中当前分类人员集合为kmeanscurcategoryperson,设重合的人数集合为unionperson,设重合的人数为unionpersonnum;
步骤B3:从步骤A2中的LDA模型的主题-人员集LDATOPICPERSON中筛选出步骤B2中的人员唯一标识集LDAPERSON,并对筛选结果去重,即,LDAPERSON=Π2(LDATOPICPERSON) ={PERSONp1, PERSONp2, …, PERSONpd};
步骤B4:从步骤A2中的K-means算法的全体人员-分类标签集KMEANSPERSONCATEGORY中筛选出步骤B2的全体分类标签集CATEGORY,并对筛选结果去重,即,CATEGORY=Π2(KMEANSPERSONCATEGORY)={CATEGORYc1, CATEGORYc2, …, CATEGORYcd};
步骤B5:设循环变量为i,i
步骤B6:从步骤A2中的LDA模型的主题-人员集LDATOPICPERSON中筛选出LDAPERSONi对应的主题集合singlepersontopic,即, ={TOPICt1, TOPICt2, …, TOPICtc},其中,singlepersontopic来自步骤B2;
步骤B7:对LDAPERSONi对应的主题集合singlepersontopic中每一个主题,从步骤B1中的主题-分类标签序列TMPFACTOR中找到对应的分类标签,其中,令categoryt1 = TMPFACTORTOPICt1、categoryt2 = TMPFACTORTOPICt2、…、categorytc = TMPFACTORTOPICtc,其中,categoryt1 ,categoryt2 , …, categorytc 代表分类标签,并且,不同的变量可能代表同一个分类标签,singlepersontopic来自步骤B2;统计每个分类标签出现的次数,记为categorysnum1, categorysnum2, …, categorysnumCATEGORYNUM,找出分类标签出现次数最大的分类标签category;更新步骤B2中的LDA文档主题提取模型的人员-分类标签集LDAPERSONCATEGORY,即,LDAPERSONCATEGORY=LDAPERSONCATEGORY∪{(LDAPERSONi, category)};
步骤B8:当循环变量i大于LDAPERSONNUM时,其中,LDAPERSONNUM为步骤B2中的人员总数,则执行步骤B9;否则,i值加1,即,i=i+1,执行步骤B6到步骤B7;
步骤B9:设循环变量为j,j
步骤B10:从步骤A2中的K-means算法的全体人员-分类标签集KMEANSPERSONCATEGORY中筛选出CATEGORYj对应的人员集合kmeanscurcategoryperson,即, = {PERSONkmeans1,
PERSONkmeans2, … , PERSONkmeansc},其中,kmeanscurcategoryperson来自步骤B2;
步骤B11:从步骤B2中的LDA文档主题提取模型的人员-分类标签集LDAPERSONCATEGORY中筛选出CATEGORYj对应的人员集合ldacurcategoryperson,即,={PERSONlda1, PERSONlda2, …
, PERSONldac},其中,ldacurcategoryperson来自步骤B2;
步骤B12:计算步骤B2中的人员集合ldacurcategoryperson与步骤B2中的人员集合kmeanscurcategoryperson的交集unionperson,即,unionperson=ldacurcategoryperson∩kmeanscurcategoryperson={PERSONunion1, PERSONunion2, … , PERSONunionc};
步骤B13:统计步骤B2中的重合的人数集合unionperson的人数个数,赋值给步骤B2中的重合的人数unionpersonnum,并叠加到步骤B2中的匹配数SUM,即,SUM=SUM+unionpersonnum;
步骤B14:当循环变量j大于步骤A1中的分类标签总数CATEGORYNUM时,则执行步骤B15;
否则,j的值加1,即,j=j+1,执行步骤B10到步骤B13;
步骤B15:返回步骤B2中的匹配数SUM。
2.根据权利要求1所述的一种基于K-means和LDA双向验证的网络行为习惯聚类方法,其特征在于,聚类是将全体人员上网记录使用K-means聚类算法和LDA模型进行聚类分析,再将两个聚类结果相互验证,并使用模拟退火算法提高优化聚类结果的效率,以此提高聚类准确性。
3.根据权利要求1所述的一种基于K-means和LDA双向验证的网络行为习惯聚类方法,其特征在于,步骤A3到步骤A4提供模拟退火算法所需的初始数据;步骤A7到步骤A12是在模拟退火算法中更改当前解序列中的随机位置上的数值;步骤B5到步骤B8是通过步骤B1的主题-分类标签序列TMPFACTOR与步骤A2中的LDA模型的主题-人员集LDATOPICPERSON进行关联,关联出步骤B2中的LDA文档主题提取模型的人员-分类标签集LDAPERSONCATEGORY;步骤B9到步骤B14是通过比对相同类别中,同时出现在K-means聚类结果中与LDA模型结果中的人员的个数,并叠加各个类别中此类人员的个数,并在流程的最后返回,并作为当前序列的成本;步骤A14到步骤A18是判断eb与EA的大小以及步骤A15的随机数random与e(eb-EA)/T的大小,其中,eb为步骤A2的当前匹配数,EA为步骤A2的全局最大匹配数,当eb>EA并且random
4.根据权利要求1所述的一种基于K-means和LDA双向验证的网络行为习惯聚类方法,设步骤A3中的K-means聚类算法迭代次数ITERKMEANS为300,分类标签总数CATEGORYNUM为
3,步骤A4中的主题分布的狄利克雷参数ALPHA为0.1,关键词分布的狄利克雷参数ETA为
0.01,LDA文档主题提取模型迭代次数ITERLDA为2000,步骤A1的LDA文档主题提取模型的主题总数TOPICNUM为20。