1.网络中重叠社团的挖掘方法,其特征在于,包括以下步骤:
步骤1、种子选择阶段:在定义种子选择的过程中根据社团结构自适应产生最优的种子;
步骤2、种子扩展阶段:利用个性化PageRank算法,并根据社团和种子顶点间的关系进行种子扩展,覆盖网络多数顶点;
步骤3、社团扩展阶段:将未覆盖的顶点自适应划分到邻近社团中,完成社团划分。
2.根据权利要求1所述的网络中重叠社团的挖掘方法,其特征在于:所述步骤1中,先定义种子集、覆盖集和顶点覆盖增长率的概念,将顶点按照度从大到小排序,之后在种子选择迭代过程中依次选择不属于覆盖集的顶点作为种子,并根据顶点覆盖增长率的变化范围确定种子数目,根据顶点覆盖增长率的定义选择顶点,并获取初始种子集。
3.根据权利要求1所述的网络中重叠社团的挖掘方法,其特征在于:所述步骤2中,基于种子选择阶段得到的初始种子集按顺序对其中的种子及其邻接点进行种子扩展。
4.根据权利要求1所述的网络中重叠社团的挖掘方法,其特征在于:所述步骤3中,在PageRank算法结束时,未被覆盖的社团可分成两种类型,种类一、顶点至少有一个邻接点属于簇类中,种类二、顶点是离群点,其所有邻接点也都未被覆盖,如果顶点属于种类一,则将顶点与其邻接点分到同一社团中;如果顶点属于种类二,则将顶点与可能存在的邻接点组成一个新社团。
5.根据权利要求1或2所述的网络中重叠社团的挖掘方法,其特征在于,所述步骤1包括以下步骤:步骤1.1、记G(V,E)为无向图,顶点集记为V={v1,v2,...vN},对应N个顶点和边集将顶点按照度从大到小排序,并对其进行1到n编号,计算顶点vi的度degree(vi),初始化i=1;
步骤1.2、记Coveragei-1包含第i次迭代时生成的种子集及它们的邻接点;
定义式:Coveragei=si∪neighbor(si)∪Coveragei-1;其中si表示第i次迭代时选择的种子,neighbor(si)表示si的邻接点,n为迭代的次数;
如果顶点vi不存在于第i-1次迭代时生成的种子集及它们的邻接点集合Coveragei-1中,则利用式Seedi=si∪Seedi-1(i=1,2,...,n),计算第i次迭代时生成的种子集Seedi,将顶点vi加入种子集Seedi中,并计算Coveragei,将顶点vi和它的邻接点和上一次迭代生成的Coveragei-1加入集合Coveragei中;
步骤1.3、利用顶点覆盖增长率GrowthRatei控制种子的数量;
再通过 计算顶点覆盖
增长率GrowthRatei,其中size(Coveragei)是Coveragei中元素的个数;
如果GrowthRatei>η,表明还有顶点可以加入种子集,i=i+1,找到序列中的下一个顶点,并循环步骤1.2和步骤1.3,若条件不满足,则进入步骤1.4;
步骤1.4、将上一次迭代的种子集Seedi-1复制到Seedall,Seedall就是选择完毕的种子集。
6.根据权利要求1或3所述的网络中重叠社团的挖掘方法,其特征在于,所述步骤2包括以下步骤:步骤2.1、基于种子选择阶段,已经得到初步种子集Seedall,记α为传送概率,ε为随机游走的误差,初始化count=1,对于Seedall中所有种子scount按顺序进行扩展;
步骤2.2、利用T←{scount}∪{neighbor(scount)}将scount及它的邻接点neighbor(scount) 加入集合T中,寻找scount的邻接点中是否存在可能的种子;
步骤2.3、设Xi={x1i,x2i,...,xni}为page-rank算法第i次随机游走后的Page-Rank向量,向量Ri={r1i,r2i,...,rni}为每个顶点第i次随机游走时的启动向量,之后对于点集合V中的任意顶点v,顶点v在第1次随机游走后的概率xv1=0,对于集合V/T中的任意顶点v,顶点v在第1次随机游走后启动向量的概率rv1=0,对于集合T中的任意顶点v,顶点v在第1次随机游走后启动向量的概率 最后令i=1;
步骤2.4、如果此时满足rvi>degree(v)·ε;
利用 计算顶点v在第i+1次随机游走后的概率
xv(i+1),对于边集合E中所有与v相连的边(v,u);
利用rui=ru(i-1)+(1-α)rv(i-1)/2degree(v)计算顶点u在第i+1次随机游走后启动向量的概率ru(i+1),其中α为传送概率,ε为随机游走的误差(ε-approximate),两者取值位于(0,1]之间;
利用rvi=(1-α)rv(i-1)/2计算顶点v在第i+1次随机游走后启动向量的概率rv(i+1);
之后对点集V中的下一个顶点进行计算,如果此时还满足rvi>degree(v)·ε条件,则循环步骤2.4,若干不满足,则进入步骤2.5;
步骤2.5、对于点集合V中所有顶点v,如果 就将该顶点作为新种子
加入Ccount;
步骤2.6、将Ccount加入社团集合C中,继续从步骤2.1开始从Seedall下一个种子进行种子扩展,直到遍历完Seedall中的所有种子。
7.根据权利要求1或4所述的网络中重叠社团的挖掘方法,其特征在于,所述步骤3包括以下步骤:步骤3.1、基于种子扩展阶段生成的社团集合C,将C中的每个社团Ci复制给C'i,最终保存在社团集合C'中;
步骤3.2、对于在点集合V不在集合C中的顶点,即没有被划分到任何一个社团中的剩余顶点v,利用Remain←Remain∪{v}将顶点加入到剩余集合Remain中;
步骤3.3、对于剩余集合Remain中的顶点v,如果v存在至少有一个邻接点u属于簇类中,利用C'i←C'i∪{v}将v与u所在的社团合并,否则,说明v是离群点,其所有邻接点也都未被覆盖,利用C'M+1←{v}∪{neighbor(v)}将顶点v与它的邻接点合并形成一个新社团。