MATLAB K-means聚类的介绍与使用

K-means算法是硬聚类算法
,是典型的基于原型的目标函数
聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法以偶是距离
作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和
准则函数作为聚类准则函数

    K-means聚类算法采用的是将N*P的矩阵X划分为K个类,使得类内对象之间的距离最大,而类之间的距离最小。

使用方法:

      Idx=Kmeans(X,K)

      [Idx,C]=Kmeans(X,K) 

      [Idx,C,sumD]=Kmeans(X,K) 

      [Idx,C,sumD,D]=Kmeans(X,K) 

      […]=Kmeans(…,’Param1’,Val1,’Param2’,Val2,…)

各输入输出参数介绍:

       X :N*P的数据矩阵

       K: 表示将X划分为几类,为整数

       Idx :N*1的向量,存储的是每个点的聚类标号

       C: K*P的矩阵,存储的是K个聚类质心位置

      sumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和

      D N*K的矩阵,存储的是每个点与所有质心的距离

      […]=Kmeans(…,’Param1′,Val1,’Param2′,Val2,…)

      这其中的参数Param1、Param2等,主要可以设置为如下:

      1. ‘Distance’(距离测度)

        ‘sqEuclidean’ 欧式距离(默认时,采用此距离方式)

        ‘cityblock’ 绝度误差和,又称:L1

        ‘cosine’ 针对向量

        ‘correlation’  针对有时序关系的值

        ‘Hamming’ 只针对二进制数据

      2. ‘Start’(初始质心位置选择方法)

        ‘sample’ 从X中随机选取K个质心点

        ‘uniform’ 根据X的分布范围均匀的随机生成K个质心

        ‘cluster’ 初始聚类阶段随机选择10%的X的子样本(此方法初始使用’sample’方法)

         matrix 提供一K*P的矩阵,作为初始质心位置集合

      3. ‘Replicates’(聚类重复次数)  整数

                   这个博客很好,忘记了就参考这个!

深入浅出K-Means算法-CSDN.NET  http://www.csdn.net/article/2012-07-03/2807073-k-means

使用Matlab自带K-means的示例:

%随机获取150个点
X = [randn(50,2)+ones(50,2);randn(50,2)-ones(50,2);randn(50,2)+[ones(50,1),-ones(50,1)]];
opts = statset('Display','final');

%调用Kmeans函数
%X N*P的数据矩阵
%Idx N*1的向量,存储的是每个点的聚类标号
%Ctrs K*P的矩阵,存储的是K个聚类质心位置
%SumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和
%D N*K的矩阵,存储的是每个点与所有质心的距离;

[Idx,Ctrs,SumD,D] = kmeans(X,3,'Replicates',3,'Options',opts);

%画出聚类为1的点。X(Idx==1,1),为第一类的样本的第一个坐标;X(Idx==1,2)为第二类的样本的第二个坐标
plot(X(Idx==1,1),X(Idx==1,2),'r.','MarkerSize',14)
hold on
plot(X(Idx==2,1),X(Idx==2,2),'b.','MarkerSize',14)
hold on
plot(X(Idx==3,1),X(Idx==3,2),'g.','MarkerSize',14)

%绘出聚类中心点,kx表示是圆形
plot(Ctrs(:,1),Ctrs(:,2),'kx','MarkerSize',14,'LineWidth',4)
plot(Ctrs(:,1),Ctrs(:,2),'kx','MarkerSize',14,'LineWidth',4)
plot(Ctrs(:,1),Ctrs(:,2),'kx','MarkerSize',14,'LineWidth',4)

legend('Cluster 1','Cluster 2','Cluster 3','Centroids','Location','NW')

Ctrs
SumD

程序结果:

《MATLAB K-means聚类的介绍与使用》
《MATLAB K-means聚类的介绍与使用》

    原文作者:聚类算法
    原文地址: https://blog.csdn.net/a493823882/article/details/79282425
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞