一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于粒子群模糊聚类的服务聚类方法与流程

2022-02-22 02:27:54 来源:中国专利 TAG:


1.本发明属于计算机技术领域,具体涉及一种基于粒子群模糊聚类的服 务聚类方法。


背景技术:

2.随着面向服务架构技术的发展,服务已经成为互联网上的重要的软件 资源,如何从数量庞大的服务中准确地发现满足用户需求的服务已经成为 领域的热点问题。
3.现有技术中,通常采用基于主题模型的服务聚类方法进行服务发现、服 务推荐以及服务管理。如,基于lda(潜式狄利克雷分布)和模糊c均值 的web服务多功能聚类方法;又如,基于模糊聚类优化的语义web服务发 现方法。
4.但是,现有技术中的服务聚类方法主要采用lda和k-means等模型, 这些模型通常只能在同一领域下进行工作,因此,普遍存在以下两点不足:
5.1)未充分考虑词汇之间的语义关系,从而导致服务发现的效率低、准 确率低。
6.2)未充分考虑服务与服务之间的相互联系,从而导致服务聚类准确率 低、数据服务之间无法相互协作,资源浪费率高。


技术实现要素:

7.为了解决现有技术中存在的上述问题,本发明提供了种基于粒子群模 糊聚类的服务聚类方法。本发明要解决的技术问题通过以下技术方案实现:
8.一种基于粒子群模糊聚类的服务聚类方法,包括:步骤1:获取多个服 务对应的服务数据,其中,所述服务数据包括:服务描述文档、所述服务描 述文档对应的种类和所述服务描述文档的个数;步骤2:对所述服务数据进 行预处理,以得到目标服务数据,所述目标服务数据中包括关键词数据和关 键词词频数据;步骤3:确定所述服务数据对应的服务的簇个数;步骤4: 初始化粒子群;步骤5:确定每个粒子的适应度值;步骤6:更新每个粒子 的速度和位置步骤7:判断更新后的每个粒子的位置是否满足全局位置最优 值;步骤8:根据判断结果,对服务进行聚类处理,其中,当粒子的位置满 足全局位置最优值时,则基于模糊聚类算法,对所述服务进行聚类;当粒子 的位置不满足全局位置最优值时,则重复步骤5至步骤8,直到服务聚类完 成。
9.在本发明的一个实施例中,所述步骤1包括:步骤1-1:通过预设爬取 工具,从服务网站中爬取多个服务描述文档;步骤1-2:按照预设统计计算 规则,对所述服务描述文档进行统计计算,以得到每个所述服务描述文档对 应的种类和所述服务描述文档的个数。
10.在本发明的一个实施例中,所述步骤2包括:步骤2-1:基于预设关键 词处理规则,处理所述服务数据,以对所述服务数据中的关键词进行提取; 步骤2-2:基于预设词频计算规则,计算所述服务数据中关键词的词频,表 示为:
11.[0012][0013]
其中,n
ij
代表第j个单词在i个服务文档的数量,n
ij
是第i个服务中所有 单词的数量,n
ij
代表文档的个数,if
ij
表示关键词词频,idfi计算服务文档 的重要程度,其中n代表服务文档的个数,ni代表在一个文档n
ij
的个数。
[0014]
本发明的有益效果:
[0015]
本发明能够基于服务与服务之间的相互关系,提高服务聚类的准确度, 降低资源浪费率。
[0016]
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
[0017]
图1是本发明实施例提供的一种基于粒子群模糊聚类的服务聚类方法 流程示意图;
[0018]
图2是本发明实验中服务的数量柱状图;
[0019]
图3是本发明实施例提供的采用不同聚类算法进行聚类时准确率指标 的对比图;
[0020]
图4是本发明实施例提供的采用不同聚类算法进行聚类时召回率指标 的对比图;
[0021]
图5是本发明实施例提供的采用不同聚类算法进行聚类时熵指标的对 比图;
[0022]
图6是本发明实施例提供的采用不同聚类算法进行聚类时f值指标的 对比图。
具体实施方式
[0023]
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施 方式不限于此。
[0024]
实施例
[0025]
请参见图1,图1是本发明实施例提供的一种基于粒子群模糊聚类的服 务聚类方法流程示意图,所述方法包括:
[0026]
步骤1:获取多个服务对应的服务数据,其中,所述服务数据包括:服 务描述文档、所述服务描述文档对应的种类和所述服务描述文档的个数。
[0027]
可选的,所述步骤1包括:
[0028]
步骤1-1:通过预设爬取工具,从服务网站中爬取多个服务描述文档。
[0029]
步骤1-2:按照预设统计计算规则,对所述服务描述文档进行统计计算, 以得到每个所述服务描述文档对应的种类和所述服务描述文档的个数。
[0030]
如,通过r语言的rvest包,从programmable web服务网站上爬取多 个服务描述文档。
[0031]
步骤2:对所述服务数据进行预处理,以得到目标服务数据,所述目标 服务数据中包括关键词数据和关键词词频数据。
[0032]
如,通过r语言的tm包对服务描述文档进行预处理。
[0033]
本发明能够将目标服务描述文档作为基于粒子群的模糊聚类算法的输 入数据,以实现对服务的聚类。
[0034]
可选的,所述步骤2包括:
[0035]
步骤2-1:基于预设关键词处理规则,处理所述服务数据,以对所述服 务数据中的关键词进行提取。
[0036]
可选的,所述步骤2-1包括:
[0037]
步骤2-11:对所述服务数据中的停用词进行过滤。
[0038]
步骤2-12:将所述服务数据中的动词还原为词干。
[0039]
步骤2-2:基于预设词频计算规则,计算所述服务数据中关键词的词频, 表示为:
[0040][0041][0042]
其中,n
ij
代表第j个单词在i个服务文档的数量,n
ij
是第i个服务中所有 单词的数量,n
ij
代表文档的个数,if
ij
表示关键词词频,idfi计算服务文档 的重要程度,其中n代表服务文档的个数,ni代表在一个文档n
ij
的个数。
[0043]
步骤3:确定所述服务数据对应的服务的簇个数。
[0044]
在服务聚类算法中,簇的个数对于服务聚类的准确性起着至关重要的 作用。
[0045]
可选的,所述步骤3包括:
[0046]
步骤3-1:计算每个服务数据对应的服务的密度dens(xi),表示为:
[0047][0048][0049]
其中,xi={x
i1
,x
i2
,

x
im
}表示服务,所述服务xi表示为一组具有m个分类 属性为特征的集合,n表示服务的个数。
[0050]
步骤3-2:确定每个服务对应的截断距离dc。
[0051]
dc为采用基于gram改进的余弦相似度计算两个服务之间相似性值,在 本发明中dc选择近邻服务的个数大约是服务总数据数量的1%到2%
[0052]
步骤3-3:对服务的密度的数值大小按照降序排序,表示为:
[0053]
rank=arg(sort(dens(xi)),descent)。
[0054]
步骤3-4:根据所述截断距离,确定每个服务的相邻服务xi,表示为:
[0055]
neib(xi)。
[0056]
步骤3-5:将每个服务对应的相邻服务分配给所述每个服务的簇中心, 以形成多个簇团。
[0057]
步骤3-6:将所述簇团个数确定为所述服务簇的个数。
[0058]
参见表1,表1中为确定所述服务数据对应的服务的簇个数对应的详细 代码:
[0059]
表1确定所述服务数据对应的服务的簇个数
[0060][0061]
步骤4:初始化粒子群。
[0062]
可选的,所述步骤4包括:
[0063]
步骤4-1:设置一个粒子群,所述粒子群中包括n个粒子p。
[0064]
每个粒子都由两部分组成:控制变量和簇的分配。
[0065]
步骤4-2:随机产生控制变量c=(c1,c2,

,ck),其中,ci的值大于0小于 1。
[0066]
步骤4-3:确定粒子群中簇的个数,表示为:c(p)=k,其中,k=k
max

[0067]
步骤4-4:基于所述控制变量,对非核心区域的服务进行分类,以确定 每个粒子中的有效服务簇数,表示为:
[0068]ht 1
(p)=count(c
(t 1)
(p)|cj>0.5|),j=1,...k
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0069]
其中,当cj≥0.5时,则将非核心区域的服务归为服务簇中;或者,当 cj<0.5时,不将非核心区域的服务归为服务簇中。
[0070]
步骤4-5:获取所述有效服务簇的初始位置,以得到模糊隶属矩阵,表 示为:
[0071]
w(p)=initial_pos(n,h(p))。
[0072]
步骤4-6:设置每个粒子的初始化速度以及每个粒子对应的簇团的分配 速度,以实现初始化粒子群。
[0073]
控制变量用于识别有多少个簇处于活动状态;其次设置初始粒子的速 度和位置,粒子群的初始化过程的如表2所示:
[0074]
表2粒子群初始化算法
[0075][0076]
设置每个粒子的初始化速度以及每个粒子对应的簇团的分配速度如表 3所示:
[0077]
表3粒子群速度初始化算法
[0078][0079]
其中,第二行表示的是粒子的速度,粒子的速度是随机设置的,第三行 表示的是团簇的分配速度。
[0080]
步骤5:确定每个粒子的适应度值。
[0081]
可选的,所述步骤5包括:
[0082]
基于适应度函数,计算每个粒子的适应度值,表示为:
[0083]
fit(xi)=π sep
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0084][0085][0086]
其中,fit(xi)表示粒子适应度值,w=(ω
ij
)是一个模糊矩阵, k=k
max
,z=z1,z2,

,zk是服务的簇中心,α是权重,d(xi,zj)表示服务i和 簇j之间的距离,d(zi,zj)表示簇i和簇j之间的距离。
[0087]
其中公式(5)为紧凑性函数,公式(6)为模糊分离性函数。
[0088]
步骤6:更新每个粒子的速度和位置。
[0089]
可选的,所述步骤6包括:
[0090]
步骤6-1:为每个粒子匹配新的活动簇数,表示为:
[0091][0092]
步骤6-2:计算每个粒子的犹豫程度,表示为:
[0093][0094]
其中,γ是犹豫度控制参数。
[0095]
步骤6-3:根据所述活动簇数和所述犹豫程度,更新每个粒子的速度。
[0096]
粒子速度的更新过程如表4所示:
[0097]
表4粒子群速度更新算法
[0098][0099]
步骤6-4:将更新后的粒子速度和簇分配w
t
(p)进行比较。
[0100]
步骤6-5:根据比较结果更新每个粒子的位置,其中,当更新后的粒子 速度与簇分配相等时,根据更新后的粒子速度与簇分配的和,更新每个粒子 的位置,表示为:或者,当更新后的粒子速度小于 簇分配数值时,对簇分配的位置进行第一调整,根据更新后的粒子速度与第 一调整后的粗分配的和,更新每个粒子的位置;或者,当更新后的粒子速度 大于簇分配数值时,对簇分配的位置进行第二调整,根据更新后的粒子速度 与第二调整后的粗分配的和,更新每个粒子的位置。
[0101]
粒子位置的更新过程如表5所示:
[0102]
表5粒子群位置的更新算法
[0103][0104]
其中,粒子速度大小为a,簇分配的大小为b,size_reduce和size_increase 函数用于调整簇分配前位置的大小。
[0105]
根据表5的伪代码可以看出,第一行到第三行对于每个粒子,粒子速 度大小为a,簇分配的大小为b;第四行到第五行表示的是如果粒子速度的大 小与簇分配的大小相等,则更新的簇分配函数等于上一个簇分配函数与上 一个粒子速度之和;第六行到第八行表示的如果粒子速度的大小小于簇分 配的大小,则将簇分配函数的大小减小到与簇粒子速度大小一致,更新的簇 分配函数等于上一个簇分配函数与上一个粒子速度之和;第九行到第十一 行表示的如果粒子速度的大小大于簇分配的大小,则将簇分配函数的大小 增加到与簇粒子速度大小一致,更新的簇分配函数等于上一个簇分配函数 与上一个粒子速度之和;第十二行到第十三行结束if语句以及for循环语 句。
[0106]
步骤7:判断更新后的每个粒子的位置数值是否小于全局位置最优值。
[0107]
可选的,所述步骤7之前,所述方法还包括:
[0108]
步骤s11:获取每个粒子对应的原始个体极值pbest和原始局部极值gbest。
[0109]
步骤s12:将适应度值fit(xi)与原始个体极值pbest进行比较,并根据比 较结果,确定每个粒子的目标个体极值,其中,若fit(xi)>pbest,则将fit(xi) 值确定为目标个体极值,否则将原始个体极值确定为目标个体极值。
[0110]
步骤s13:将适应度值fit(xi)和原始局部极值gbest进行比较,并根据比 较结果,确定每个粒子的目标局部极值,其中,若fit(xi)>gbest,则将fit(xi) 确定为目标局部极值,否则将原始局部极值确定为目标局部极值。
[0111]
步骤s14:将所述目标个体极值和所述目标局部极值确定为全局位置最 优值。
[0112]
步骤8:根据判断结果,对服务进行聚类处理,其中,当粒子的位置数 值小于全局位置最优值时,则基于模糊聚类算法,对所述服务进行聚类;当 粒子的位置数值大于或等于全局位置最优值时,则重复步骤5至步骤8,直 到服务聚类完成。
[0113]
可选的,本发明部署有预设迭代次数,所述重复步骤5至步骤8,直到 服务聚类完成,包括:
[0114]
重复步骤5至步骤8,直到重复次数达到预设迭代次数,则确定服务聚 类完成。
[0115]
本发明采用基于gram改进的余弦相似度的模糊聚类算法进行聚类。
[0116]
可选的,所述基于模糊聚类算法,对所述服务进行聚类,包括:
[0117]
步骤s21:计算动态滑动窗口,表示为:
[0118][0119]
其中,wi表示服务数据的第i个窗口的大小,si表示窗口中服务数据的 gram值的方差,n为窗口的动态变化量。
[0120]
gram算法使用滑动窗口对服务相似度进行辅助操作,当窗口中的gram 值较小,则应该扩大服务窗口,加速服务相似度的检测,而当滑动窗口中的 gram值较大时,则应当缩小窗口,提高服务相似度的计算准确性,进而提 高服务聚类算法的准确率。wi通过窗口中服务数据的方差值来更新的。
[0121]
步骤s22:根据关键词词频数据计算余弦相似度值,表示为:
[0122][0123]
其中,n为服务样本的个数,ai和bi表示为两个服务的向量。
[0124]
步骤s23:基于所述余弦相似度,通过模糊聚类算法,对所述服务进行 聚类,表示为:
[0125][0126]
满足条件
[0127]
0≤u
ij
≤1,1≤i≤c,1≤j≤n
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0128]
其中,x={x1,x1,

,xn}为服务样本集合,n为样本的个数,v={v1,v2,

,vc} 为c个服务聚类的簇中心,u
ij
表示第i个服务样本的隶属度,d
ij
为服务样本 i与服务簇vi之间的距离,即,余弦相似度。
[0129]dij
为基于gram改进的余弦相似度。
[0130]
模糊聚类算法(fuzzy c-means,fcm)用于服务聚类,是根据服务数据 集中的服务与c个服务簇中心的加权相似性度量,通过对目标函数的迭代, 得到最终的服务聚类结果,目标函数如公式(9)所示
[0131]
综上,本发明能够基于服务与服务之间的相互关系,从而提高服务聚类 准确度。
[0132]
基于实验对本发明上述方法进行验证:
[0133]
1.实验数据
[0134]
本发明从programmable web网站上爬取的web服务文本数据,并对 这些数据集进行了统计计算,包括统计每个服务的个数、并将服务的个数按 照递减的顺序排序,如图2所示,mapping的服务数量最多将近1000个, 在数据集中服务个数大于200个小于300的服务有search、social、ecommerce、 photos、music等服务,其他的服务个数少于200个,本章实验中选择了search、 social、ecommerce、photos、music等服务进行聚类。
[0135]
2.评价指标
[0136]
为了对本发明提出的聚类方法的有效性进行评价,采用常用的准确率, 召回率、熵和f值作为评价标准。公式下面是各个指标的简要说明:准确 率是衡量聚类算法性能的一个重要指标,准确率越高,性能越好;召回率是 衡量聚类算法性能的重要指标,召回率越高,性能越好;熵值代表一个物体 的混乱程度,若熵值越大,则说明事物混乱,若熵值越小,则说明该物体稳 定,混乱系数较低;f值是准确率和召回率的线性组合,以一种综合的方式 衡量聚类算法的性能。准确率如公式(12)所示,召回率如公式(13)所示, 熵如公式(14)所示,f值如公式(16)所示:
[0137][0138]
[0139][0140][0141][0142]ci
表示簇i,succ(ci)代表web服务的数量放入正确的群集ci,mispl(ci) 代表放置在簇ci中的错误web服务数量,missed(ci)代表的web服务数量 应在群集ci,但将其放在其他群集中,p
ij
代表数据点i属于簇j的概率,计算 如公式(15)所示。
[0143]
3.仿真实验
[0144]
参照技术方案中的步骤1-8进行实验,并在准确率、召回率、熵、f值 等方面进行比较。
[0145]
实验一:
[0146]
从图3所示的数据是不同聚类算法在准确率的比较,图中的nfc-nspo 为本发明的方法,从对比实验数据可以看出,我们的方法明显由于其他算法。 由于本发明采用基于gram改进的余弦相似度计算,用于计算服务之间的相 似度,gram算法使用滑动窗口对服务相似度进行辅助操作,当窗口中的 gram值较小,则应该扩大服务窗口,加速服务相似度的检测,而当滑动窗 口中的gram值较大时,则应当缩小窗口,提高服务聚类的准确率。其次, 采用粒子群算法的优势,能够通过粒子的运动,寻找到全局最优解,避免模 糊聚类算法随机选择簇中心,陷入局部最优,从而提高nfc-nspo的聚类 准确率。
[0147]
实验二:
[0148]
从图4所示的数据是不同聚类算法在召回率的比较,图中的nfc-nspo 为本发明的方法,从对比实验数据可以看出,k-modes算法的召回率最高, 其次是nfc-nspo,由于k-modes的相似度计算采用汉明距离来测量服务 之间的相似性,通过比较向量的每个位是否相同,如果不同,则汉明距离增 加1,否则,汉明距离保持不变,从而获得服务之间的相似性,导致聚类的 准确率低。
[0149]
实验三
[0150]
从图5所示的数据是不同聚类算法的熵值比较,熵方面,最大的是k
‑ꢀ
protype,其次是pso-kmeans,熵最小的是nfc-nspo算法,k-protype算法 是结合k-means和k-modes的改进算法,该方法既可以处理数值型数据又 可以处理分类型数据,由于web服务只有少量数值型数据,在某种程度上,k-protype弱化成为k-modes,并且k-protype算法容易受到簇中心位置的影 响,容易陷入局部最优,所以k-protype算法不稳定。
[0151]
实验四
[0152]
从图6所示的数据是不同聚类算法的f值比较,nfc-nspo是最高的, 其次是k-modes,最差的是k-protype。综合准确率图3和召回率图4可以得 出,在准确率方面nfc-nspo明显的高于其他算法,在召回率方面,nfc
‑ꢀ
nspo的召回率值低于k-modes算法,综合下来nfc-nspo略高于k-modes。 nfc-nspo算法,首先,采用基于gram改进的余弦相似度能够更
好的计算 出两两样本之间的相似度,其次,将粒子群算法与模糊聚类算法相结合,能 够避免模糊聚类算法随机选择簇的位置导致准确率的问题出现,进而提高 服务聚类的准确率。
[0153]
实验五
[0154]
在聚类算法中,相似性函数扮演着很重要的角色,即使同一个聚类算法 使用不同的相似度函数,得到的聚类算法的准确率有差异。本文对相似度函 数进行改进,并从实验的角度验证改进的好坏,用同一个算法使用不同的相 似度函数在准确率、召回率、熵和f值等方面进行比较。
[0155][0156]
通过表1可以看出,nfc-nspo(gram-cosine similarity)的准确率最 高,其值为0.896;其次是nfc-nspo(cosine similarity),其值为0.842, 最次的是nfc-nspo(euler)。在召回率方面,nfc-nspo(gram-cosinesimilarity)的召回率最高,其值为0.734;最次的是nfc-nspo(manhatten), 其值为0.612。在熵方面,nfc-nspo(euler)的熵值最高,其值为0.773; 最次的是nfc-nspo(gram-cosine similarity),其值为0.713。在f值方 面,nfc-nspo(gram-cosine similarity)的f值最高,其值为0.806;最次 的是nfc-nspo(euler),其值为0.637。
[0157]
原因分析如下:因为nfc-nspo(gram-cosine similarity)采用基于gram 改进的余弦相似度能够更好的计算出两两样本之间的相似度,该方法能够 调整个体和簇之间的窗口大小,当窗口中的gram值较小,则应该扩大服务 窗口,加速服务相似度的检测,而当滑动窗口中的gram值较大时,则应当 缩小窗口,提高服务相似度的计算准确性,进而提高服务聚类算法的准确率。
[0158]
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、
ꢀ“
长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、
ꢀ“
右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时 针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置 关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置 或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对 本发明的限制。
[0159]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或 暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第 一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在 本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的 限定。
[0160]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、
ꢀ“
示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示 例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或 示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实 施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一 个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以 将本
说明书中描述的不同实施例或示例进行接合和组合。
[0161]
尽管在此结合各实施例对本技术进行了描述,然而,在实施所要求保护 的本技术过程中,本领域技术人员通过查看所述附图、公开内容、以及所附 权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,
ꢀ“
包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个
”ꢀ
不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若 干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些 措施不能组合起来产生良好的效果。
[0162]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明, 不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域 的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单 推演或替换,都应当视为属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献