1.一种基于密度峰值检测的Mashup服务聚类方法,其特征在于,所述方法包括以下步骤:第一步、对于所有参与聚类的Mashup服务的特征向量,进行局部密度、向量间距离和较高密度最近距离计算;
第二步、基于第一步计算的密度信息,从所有Mashup服务特征向量中,筛选出聚类中心的候选点;
第三步、对第二步所得的聚类中心候选点,进一步筛选出最为合适的K个初始聚类中心,进行K‑means聚类,过程如下:步骤(3.1)在聚类中心候选点集合中,筛选出ρy与δy乘积最高的向量,并将其在半径r内包含的向量个数m统计出来,其中半径r即为第二步计算出的判定半径,进行步骤(3.2);
步骤(3.2)遍历聚类中心候选点集合,计算当前候选点的波动值SDy,计算公式如下所示:其中,U(y)表示距离y最近的m个向量,γz表示ρy与δy的乘积,avgz则表示这m个向量γz的均值,进行步骤(3.3);
步骤(3.3)判断候选点集合是否遍历完成,若否,则返回步骤(3.2),否则,进行步骤(3.4);
步骤(3.4)对候选点集合中的每个向量,进行加权评估计算,计算公式如下所示:其中,a为介于0与1之间
的权值,默认为0.5,进行步骤(3.5);
步骤(3.5)对步骤(3.4)计算所得的score进行降序排序,选取前K个向量作为K‑means算法的输入,进行K‑means聚类;
所述第一步的过程如下:
步骤(1.1)遍历每个Mashup服务特征向量,计算当前向量的局部密度ρy,计算公式如下所示:其中,DVecy表示Mashup服务的特征向量,而DVecy的局部密度ρy就是由离其最近的k个特征向量DVecz的余弦相似度cos(DVecy,DVecz)累加而成,这样的计算方式不仅避免了人工设定截断距离所带来的干扰问题,并且可以让每个向量获得较为合理的局部密度值,进行步骤(1.2);
步骤(1.2)计算当前向量的向量间距离dyz,计算公式如下所示:dyz=1‑cos(DVecy,DVecz),进行步骤(1.3);
步骤(1.3)基于属性ρy与属性dyz,定义当前向量的较高密度最近距离δy,定义公式如下:其中,定义式中y表示当前向量,z表示其他向
量,min函数表示选取最小值,max函数表示选取最大值,进行步骤(1.4);
步骤(1.4)判断Mashup服务特征向量是否遍历完成,若否,则返回步骤(1.1),否则,结束;
所述第二步的过程如下:
步骤(2.1)计算限定值bound,其计算公式如下所示:bound=(max(δy)+min(δy))/2,其中,max(δy)表示δy的最大值,而min(δy)表示δy的最小值,进行步骤(2.2);
步骤(2.2)将δy值低于bound的Mashup服务特征向量提取出来,并将它们的密度信息对应放入集合S,进行步骤(2.3);
步骤(2.3)计算步长单元au,并设置初始值为0,其中,au主要用于确定聚类中心候选点的δy值范围,进行步骤(2.4);
步骤(2.4)遍历集合S,取出δy,进行步骤(2.5);
步骤(2.5)遍历集合S,取出δz,其中,δz与δy不相等,进行步骤(2.6);
步骤(2.6)对au进行累加计算,计算公式如下:au=au+|δy‑δz|,其中,|δy‑δz|表示取δz与δy之差的绝对值,记录当前循环次数count,进行步骤(2.7);
步骤(2.7)判断集合S是否遍历完成,若否,则返回步骤(2.5),否则,进行步骤(2.8);
步骤(2.8)判断集合S是否遍历完成,若否,则返回步骤(2.4),否则,进行步骤(2.9);
步骤(2.9)设au=au/count,进行步骤(2.10);
步骤(2.10)设置判定半径r,并赋默认值为bound,其中判定半径主要用于进一步确定聚类中心候选点的范围,进行步骤(2.11);
步骤(2.11)针对所有Mashup服务特征向量,判断在连续的bound/au个区域中,向量δy属性的数量是否保持递增,并将初始遍历区域设为[l1=0,l2=au],进行步骤(2.12);
步骤(2.12)若δy属性的数量递增,则将l1与l2的值分别累加一个步长au,进行更新,否则,进行步骤(2.13);
步骤(2.13)将判定半径r设为l1的值,进行步骤(2.14);
步骤(2.14)从所有Mashup服务特征向量中,筛选出半径r内包含其它向量,并且δy值大于r的向量作为聚类中心候选点集合。