[matlab] 18.matlab自带kmeans函数的求点集的重心

Posted clemente

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[matlab] 18.matlab自带kmeans函数的求点集的重心相关的知识,希望对你有一定的参考价值。

k -means聚类是一种分区方法。该函数kmeans将数据分区为k个互斥集群,并返回它为每个观察分配的集群的索引。

与层次聚类不同,k -means聚类对实际观察(而不是较大的相异度度量集)进行操作,并创建单个级别的聚类。这些区别意味着k -means聚类通常比大量数据的层次聚类更合适。

使用方法:
      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的矩阵,存储的是每个点与所有质心的距离

 

C为点群的重心坐标

% 也可以用重心法求中心,不过weight加权会有误差
x=point(:,1)‘; y=point(:,2)‘; %转置处理
weight=1/n*ones(b,1); %权重初始化
[email protected](var) sqrt((var(1)-x).^2+(var(2)-y).^2)*weight; %点距加权 最后算出val(1),val(2)位置
[var,fval]=ga(f,2); %遗传工具箱算出最小值
x0=var(1); y0=var(2); %赋值重心坐标

 

以上是关于[matlab] 18.matlab自带kmeans函数的求点集的重心的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB | kmeans聚类如何绘制更强的聚类边界(决策边界)

MATLAB | kmeans聚类如何绘制更强的聚类边界(决策边界)

求MATLAB实现canopy-kmeans聚类算法的完整代码

opencv c++ kmeans 和 matlab kmeans 的不同结果

数据流kmeans的matlab代码

Matlab:kmeans聚类给出了意想不到的聚类