• 对三维数据集的K-means聚类研究


    对三维数据集的K-means聚类研究


     

    本文是在《根据”关于‘k-means算法在流式细胞仪中细胞分类的应用’的学习笔记总结“撰写的中期报告》一文的基础上,对该实验数据中的CD3/CD8/CD45三种抗原分子的三列荧光强度数据在Matlab环境下进行K-means聚类研究。

    实验数据地址:http://pan.baidu.com/s/1hqomDq0

    由于之前论文查重时查到了《根据”关于‘k-means算法在流式细胞仪中细胞分类的应用’的学习笔记总结“撰写的中期报告》一文,现特摘取论文中部分内容修改后辑成本文,文字尽量精简。待论文事情结束后我会在整理成另一篇文章。

     


     

     

    对以CD3/CD8/CD45为分类指标所对应的三列光谱数据进行减法聚类。

    程序

    A=load('CD3-8-45-4.txt');

    X=A(:,[4 5 6]);

    [C,S]=subclust(X,0.5,[],[1.25 0.5 0.15 0]);

    得到聚类中心为

    C=
    79 75 62
    102 74 490
    576 74 536

    设置参数k=3,进行聚类。

    程序

     idx3=kmeans(X,3,'dist','city','display','iter');

    得到聚类中心为

    cent3=

    99 78 470
    552 97 552
      78 78 54

    由于都是三维矩阵,为便于比较,可以用三维散点图在三维空间中显示出两组聚类中心,分别用星号*和三角△表示。

    程序

    plot(0,0);

    hold on

    view(3)

    plot3(C(:,1),C(:,2),C(:,3),'*')

    hold on

    plot3(cent3(:,1),cent3(:,2),cent3(:,3),'^')

    图1 k=3时的两组聚类中心

    两组聚类中心并不完全重合。下面两个聚类中心契合度较高,而上面一个偏离较大,显然k是不可能为3的。

    在三维空间中用散点图表示出各样本点。

    程序

    plot(0,0);

    hold on

    view(3)

    plot3(X(:,1),X(:,2),X(:,3),'*')

    图2 三维样本集的散点图

    各个坐标轴分别表示三种抗原分子对应的荧光强度。结合图1,很容易猜测有四个聚类中心,即k很可能等于4。

    设置k=4,再次进行K-means聚类。

    程序

    [idx4 cent4]=kmeans(X,4,'dist','city','display','iter');

    得到

    cent4 =
    98 79 472
    552 97 552
    70 78 0
    85 77 91

    在上面图1的三维空间中继续绘出聚类中心cent4,用圆圈○表示

    程序

     

    plot(0,0);

     

    hold on

     

    view(3)

     

    plot3(C(:,1),C(:,2),C(:,3),'*')

     

    hold on

     

    plot3(cent3(:,1),cent3(:,2),cent3(:,3),'^')

    hold on

     

    plot3(cent4(:,1),cent3(:,2),cent4(:,3),'o')

    图3 k=3、4时的聚类中心

     

    显然,k=4时的聚类中心包含了k=3时的两组聚类中心,而且契合度非常高,所以应该聚成4类。

    绘制k分别取3和4时的轮廓图,并比较。

    程序

    figure(1)

    [silh3,h3]=silhouette(X,idx3,'city');

    figure(2)

    [silh4,h4]=silhouette(X,idx4,'city');

    图4 k=3时轮廓图

    图5 k=4时轮廓图

     

     

    通过比较,很容易确定k=4时,聚类效果更好。

    采用不同的颜色、不同的标记,用比较容易观察的三维散点图展示上面的最终聚类。

    程序

    plot(0,0)
    hold on
    view(3)
    plot3(X(idx4==1,1),X(idx4==1,2),X(idx4==1,3),'b*')
    hold on
    plot3(X(idx4==2,1),X(idx4==2,2),X(idx4==2,3),'r.')
    hold on
    plot3(X(idx4==3,1),X(idx4==3,2),X(idx4==3,3),'yo')
    hold on
    plot3(X(idx4==4,1),X(idx4==4,2),X(idx4==4,3),'^')

    图6 样本数据分成四类的三维散点图

     

    font-size: 16px;

  • 相关阅读:
    JZOJ5906 传送门
    JZOJ5907 轻功
    JZOJ5904 刺客信条
    JZOJ5347 遥远的金字塔
    JZOJ5344 摘果子
    JZOJ4742 单峰
    JZOJ4725 质数序列
    JZOJ2499 东风谷早苗
    JZOJ4737 金色丝线将瞬间一分为二
    最后的财产——模板大全
  • 原文地址:https://www.cnblogs.com/assiamein9/p/3775146.html
Copyright © 2020-2023  润新知