找回密码
 注册
关于网站域名变更的通知
查看: 569|回复: 1
打印 上一主题 下一主题

MATLAB工具箱k-means算法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-9-29 14:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
4 {) j/ n0 W: w$ [/ d4 z7 q9 ~: t
MATLAB包含kmeans算法聚类工具8 r6 ?0 @- u5 [  c+ P
4 _% s4 b# }$ S8 {2 k! H
返回值. u% J) G# G& i4 }+ t

) B3 N7 ?* l8 r( gIdx N*1的向量,存储的是每个点的聚类标号" r' {% }- G4 L+ O2 p
Ctrs K*P的矩阵,存储的是K个聚类质心位置7 H: ^+ K/ b' J8 s  o5 a
SumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和
1 {5 [3 Y, j0 R! ^D N*K的矩阵,存储的是每个点与所有质心的距离;
  K: M. d  |3 j8 T# q( [1 U$ H( ~. h
参数
1 j& J6 W3 O; h( V! ?9 b; Z/ {( W% {7 r, l) d! c
1. ‘Distance’(距离测度)) ~: m+ j0 i( z( f* W# b
‘sqEuclidean’ 欧式距离(默认时,采用此距离方式)' ?, M% @. F6 v& ~3 L! e+ h. a
‘cityblock’ 绝度误差和,又称:L1
3 q0 V  n4 o& S1 X. N8 x4 v( b‘cosine’ 针对向量
2 b6 P2 u2 B# D9 V5 J' D- q. V‘correlation’ 针对有时序关系的值
3 Y" Q/ G6 T+ n0 U‘Hamming’ 只针对二进制数据* g0 [! }1 ^1 R/ F

" c0 u8 R6 E- ~! s! h2. ‘Start’(初始质心位置选择方法)
. L( ~+ A, J5 D/ A6 P; ]. f9 L‘sample’ 从X中随机选取K个质心点/ l( A2 x0 c  G$ L8 E8 I5 D
‘uniform’ 根据X的分布范围均匀的随机生成K个质心
) J3 B& o. r8 L: c‘cluster’ 初始聚类阶段随机选择10%的X的子样本(此方法初始使用’sample’方法)
% F' Q8 l! r6 k" Tmatrix 提供一K*P的矩阵,作为初始质心位置集合  G- x# @  {  y! N+ P

$ W! D5 G) t% Q9 B3. ‘Replicates’(聚类重复次数) 整数
$ I& W! P. M9 q! r4 W
% Q# Z5 d' [, T; l# F
  • %随机获取150个点
  • X = [randn(50,2)+ones(50,2);randn(50,2)-ones(50,2);randn(50,2)+[ones(50,1),-ones(50,1)]];
  • %X为二维下50个点的坐标
  • 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
    3 y, [: M) K+ F  S+ V2 P; }

. P8 _4 I& G' s% d# T0 W$ |% S8 o; o# {* q3 W
效果
4 d6 r/ M2 p; S/ k4 `! x
9 H2 e( R/ i* {+ L+ g) w2 f. b4 |- E& Z; }

该用户从未签到

2#
发表于 2020-9-29 15:14 | 只看该作者
MATLAB工具箱k-means算法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-27 19:06 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表