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

MATLAB工具箱k-means算法

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
2 l  I( K6 I2 r
MATLAB包含kmeans算法聚类工具$ m6 O$ |& \% s' x/ l& h7 p
+ @5 O/ j9 X% q( z: t" r! q
返回值
) X' S6 I1 g3 i& ?+ V/ v
8 W/ Y% O! E1 t0 w+ M  hIdx N*1的向量,存储的是每个点的聚类标号  }% i9 `. r7 G- t' i
Ctrs K*P的矩阵,存储的是K个聚类质心位置
  S, }" E5 U" b4 S/ G% QSumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和
- R( j  ]7 y& H% l9 D: }- _D N*K的矩阵,存储的是每个点与所有质心的距离;
2 C5 b- g3 v9 j; O& [' w2 _
7 D2 ]1 \; F- N5 h6 R! F参数) _: S9 Z' [$ |- k3 |
, U& {. [) s4 c4 e; P
1. ‘Distance’(距离测度)
  O! v3 B6 q4 R6 q‘sqEuclidean’ 欧式距离(默认时,采用此距离方式)) I* D4 i# V' ~' v
‘cityblock’ 绝度误差和,又称:L1
$ u8 P1 [( E( f$ j1 t) K+ ]4 X‘cosine’ 针对向量  u1 k9 w# R# S  A( i% M; F- F
‘correlation’ 针对有时序关系的值3 y  r" t5 G2 o3 p/ G3 w& }
‘Hamming’ 只针对二进制数据
* B2 D2 N$ y2 z- v' |# b
& }* f; z$ e+ h: d2. ‘Start’(初始质心位置选择方法)
# n2 y2 [' E2 w' O' h; _) }‘sample’ 从X中随机选取K个质心点
" n2 O7 d6 |3 S! @7 A& \‘uniform’ 根据X的分布范围均匀的随机生成K个质心
  E8 e, S/ P6 }& b+ T( ]# h4 L$ M‘cluster’ 初始聚类阶段随机选择10%的X的子样本(此方法初始使用’sample’方法)  [0 M! ]' n+ J& a4 X8 o
matrix 提供一K*P的矩阵,作为初始质心位置集合3 [: P' m+ H* l# U
6 O6 \" o& n" ]8 w* }/ B) L
3. ‘Replicates’(聚类重复次数) 整数
- w, O. ^, V6 e' b! l% @6 s0 G% d* ^( r2 F( q9 q
  • %随机获取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
    ' U5 ^2 \2 X) u. E! T3 R# A* D  K

0 W/ i1 M8 |8 U8 v
9 k% S" [) a- H" W效果. B$ T5 _; X, }6 g& g- |% `) C+ q

  M. A% R+ h) f# b9 `/ J+ G3 J1 t. |+ S

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-13 10:32 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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