💥1 概述
由于现有的单原型聚类算法大多不适用于复杂形状的聚类,因此提出了许多多原型聚类算法。然而,自动估计聚类数量和检测复杂形状仍然具有挑战性,并且解决这些问题通常依赖于用户指定的参数,并且可能非常耗时。该文提出一种基于稳定隶属度的自调优多峰聚类算法(SMMP),无需迭代即可实现快速、自动、有效的多原型聚类。设计一种动态关联-转移方法,应用密度峰聚类技术,学习子聚类生成过程中点对子聚类中心的代表性。根据学习代表性,采用基于边界链路的连通性测度实现子簇的高保真相似性评估。同时,基于合理的聚类在聚类阈值变化时应具有相对稳定的隶属状态的假设,SMMP可以分别自动识别子簇和簇的数量。此外,SMMP 专为大型数据集而设计。在合成数据集和真实数据集上的实验结果证明了SMMP的有效性。
📚2 运行结果
部分代码:
function resultshow(data,CL) PtSize = 2; NC = length(unique(CL)); label_set = unique(CL); [N,M] = size(data); figure('Position',[400 400 350 300]); cmap = UiGetColormap(NC); for i=1:NC l=label_set(i); if M~=3 if l~=0 scatter(data((CL==l),1),data((CL==l),2),PtSize+5,'o','filled','MarkerFaceColor',cmap(l,:),'MarkerEdgeColor',cmap(l,:)); else scatter(data((CL==l),1),data((CL==l),2),PtSize+50,'x','MarkerEdgeColor','k'); end else if l~=0 scatter3(data((CL==l),1),data((CL==l),2),data((CL==l),3),PtSize+5,'o','filled','MarkerFaceColor',cmap(l,:),'MarkerEdgeColor',cmap(l,:)); else scatter3(data((CL==l),1),data((CL==l),2),data((CL==l),3),PtSize+5,'x','filled','MarkerEdgeColor','k'); end end hold on end set(gca,'XTickLabel',''); set(gca,'YTickLabel',''); set(gca,'ZTickLabel',''); if M~=3 axis off end function [cmap]=UiGetColormap(NC) colormap jet cmap=colormap; cmap=cmap(round(linspace(1,length(cmap),NC+1)),:); cmap=cmap(1:end-1,:);
🌈3 Matlab代码实现
🎉4 参考文献
部分理论来源于网络,如有侵权请联系删除。
Junyi Guan, Sheng Li, Xiongxiong He, Jinhui Zhu, Jiajia Chen, Peng Si (2022) SMMP: A Stable-Membership-based Auto-tuning Multi- Peak Clustering Algorithm