码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-09-08 21:03:38      阅读:1024      评论:0      收藏:0      [点我收藏+]

标签:point   函数   最小   sqrt   区别   mat   function   误差   创建   

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); %权重初始化
f=@(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函数的求点集的重心

标签:point   函数   最小   sqrt   区别   mat   function   误差   创建   

原文地址:https://www.cnblogs.com/clemente/p/9610189.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!