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

MATLAB工具箱k-means算法

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

5 i4 d  J" N# p8 ?MATLAB包含kmeans算法聚类工具
2 ^6 i8 K' V! E$ ~3 j- J/ l, Q  q* |$ {! ~" V
返回值2 |, N$ K/ E+ _' S

( k; V& V5 W, c( R8 sIdx N*1的向量,存储的是每个点的聚类标号
& i" b9 n% I+ Y" t( |! uCtrs K*P的矩阵,存储的是K个聚类质心位置; N4 d5 T4 e2 P, @. Y
SumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和
9 U7 W. R% K% D( x- I- {% ?8 kD N*K的矩阵,存储的是每个点与所有质心的距离;
0 d9 q0 G2 \8 D6 I2 C) `, n9 `) A1 g$ V2 N, ]) ]
参数
( N' o& N- {8 i" E3 k+ C; @( O% |1 i) v) _) v: `: W3 a
1. ‘Distance’(距离测度)
! U' Z) O9 n. C- o5 j% W; `3 c‘sqEuclidean’ 欧式距离(默认时,采用此距离方式)
2 {% g( S$ m1 R* ]‘cityblock’ 绝度误差和,又称:L1
7 O, D5 @! }* w1 D- f0 D+ Z‘cosine’ 针对向量3 K6 s& D6 }+ H" Y
‘correlation’ 针对有时序关系的值! P1 `, i. V* l4 T6 f  {+ c
‘Hamming’ 只针对二进制数据+ }; Z) ?, S7 V5 v1 L& S; Z

% q1 W3 _: Q' k) c- {, C+ Y2 U2. ‘Start’(初始质心位置选择方法)
1 n2 `( G* U+ g# e4 v, A‘sample’ 从X中随机选取K个质心点6 l" C! K6 [7 q+ k6 C
‘uniform’ 根据X的分布范围均匀的随机生成K个质心
6 ?( ?. u+ }; f. S‘cluster’ 初始聚类阶段随机选择10%的X的子样本(此方法初始使用’sample’方法)
3 c  \2 M5 s; ^7 {6 amatrix 提供一K*P的矩阵,作为初始质心位置集合8 ^2 W2 I9 p0 a; j8 [$ ~4 R
- L8 [$ N/ Y4 \! u9 ~# W  o7 ?; t
3. ‘Replicates’(聚类重复次数) 整数
2 B& Z: l: O4 k' \" S
$ a; I1 Y3 b* u
  • %随机获取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
    ( k# m0 W/ D0 l& f4 [/ c
( j! x" ?; s. M- `; d5 f0 r
& M' L- M0 m1 j+ J
效果( E% [. F& [2 M  W9 a4 `8 M: U
; S8 f6 o, |3 U- z5 e

* o: W. f" R  {

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-22 13:48 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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