SMMP:一种基于稳定成员资格的多峰聚类算法(Matlab代码实现)

 ‍个人主页:研学社的博客 

欢迎来到本博客❤️❤️

博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

本文目录如下:

目录

1 概述

2 运行结果

3 Matlab代码实现

4 参考文献


1 概述

由于现有的单原型聚类算法大多不适用于复杂形状的聚类,因此提出了许多多原型聚类算法。然而,自动估计聚类数量和检测复杂形状仍然具有挑战性,并且解决这些问题通常依赖于用户指定的参数,并且可能非常耗时。该文提出一种基于稳定隶属度的自调优多峰聚类算法(SMMP),无需迭代即可实现快速、自动、有效的多原型聚类。设计一种动态关联-转移方法,应用密度峰聚类技术,学习子聚类生成过程中点对子聚类中心的代表性。根据学习代表性,采用基于边界链路的连通性测度实现子簇的高保真相似性评估。同时,基于合理的聚类在聚类阈值变化时应具有相对稳定的隶属状态的假设,SMMP可以分别自动识别子簇和簇的数量。此外,SMMP 专为大型数据集而设计。在合成数据集和真实数据集上的实验结果证明了SMMP的有效性。

2 运行结果

SMMP:一种基于稳定成员资格的多峰聚类算法(Matlab代码实现)_第1张图片

部分代码:

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

你可能感兴趣的:(#,机器学习,深度学习,聚类,算法,matlab)