【问题标题】:clustering on the base of k means centroid基于 k 均值质心的聚类
【发布时间】:2017-09-24 20:37:16
【问题描述】:

我有 1500 名患者肺部的图像,我正在尝试对它们应用 kmean 来解决我的问题。我的问题是,我想对一名患者(有 230 张图像)应用 k 均值,然后保存该患者的质心,我想根据该质心对其他患者应用 kmeans。这是matlab代码。 [idx,C] = kmeans(data,80) 现在,我有 C,但我应该怎么做才能使用它并将这个质心也应用到其他图像上?

这是我的数据的样子,我根据这些图像的直方图进行聚类。

Img1   histogram with 16 bins
Img2   Histo gram with 16 bins
Img3   // // // // // // //
Img4   // / / / // /// // / 
 .
 .
 .

任何教程或任何可能有帮助的东西,请提出建议。谢谢。

【问题讨论】:

    标签: matlab cluster-analysis k-means


    【解决方案1】:

    Kmeans 中,每个点的成员资格由最近的中心确定。因此,在获得中心之后,您可以通过检查它们与每个中心的距离来继续关联更多点。在 matlab 中,您可以使用 pdist2 轻松完成:

    dim = 2;
    n = 100;
    % generate two data sets
    data1 = rand(n,dim);
    data2 = rand(n,dim);
    % computing membership & clusters using kmeans on data1
    k = 5;
    [idx1,C] = kmeans(data1,k);
    % computing membership using pairwise distance on data2
    D = pdist2(data2,C);
    [~,idx2] = min(D,[],2);
    % plot centers
    scatter(C(:,1),C(:,2),100,1:k,'*')
    hold on
    % plot data1
    scatter(data1(:,1),data1(:,2),30,idx1,'filled')
    % plot data2
    scatter(data2(:,1),data2(:,2),30,idx2)
    legend('centers','data1','data2')
    

    如果您愿意,您甚至可以使用 Voronoi 图绘制成员限制:

    voronoi(C(:,1),C(:,2));
    

    【讨论】:

      猜你喜欢
      • 2018-12-20
      • 2020-02-21
      • 2017-12-30
      • 2018-09-19
      • 2017-09-12
      • 2014-06-05
      • 2023-03-30
      • 2016-09-24
      • 2017-11-04
      相关资源
      最近更新 更多