[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聚类算法的完整代码