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

MATLAB工具箱k-means算法

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

) y# ]- t  `8 K& G) Y9 r5 vMATLAB包含kmeans算法聚类工具/ f8 E# {8 v% \

: g  E2 f* D2 b返回值
, t' i+ K% L( i6 n) g% r8 R( m8 [5 `, R3 a& O
Idx N*1的向量,存储的是每个点的聚类标号
2 o% M: P7 d, A( FCtrs K*P的矩阵,存储的是K个聚类质心位置
& A4 Z6 N" M# W6 C  Y' PSumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和
2 o- W8 o' _2 e. y" Q5 R8 x! a* ?D N*K的矩阵,存储的是每个点与所有质心的距离;2 t5 H) n9 c5 g& [  M; w- Z

! d' V& t) V$ k' Z参数
3 m9 J+ \; `* {9 c, _5 B" i) H% W6 v8 b9 s+ [2 Y
1. ‘Distance’(距离测度). y( B( g3 T7 y
‘sqEuclidean’ 欧式距离(默认时,采用此距离方式)
5 [$ E, d) e" M5 m1 w6 Q  I‘cityblock’ 绝度误差和,又称:L1
0 U: g# F& k* t7 [4 y7 v‘cosine’ 针对向量
7 q, C/ o. ?- u/ d0 C8 j; G: M5 G‘correlation’ 针对有时序关系的值- ?* I: s3 ?4 q9 [* X4 }
‘Hamming’ 只针对二进制数据7 w' e: ^$ K9 Q

; x0 Q! a; W4 k7 m9 c2. ‘Start’(初始质心位置选择方法)! M, s/ H+ t8 k
‘sample’ 从X中随机选取K个质心点2 ?& O5 C# j. h" M
‘uniform’ 根据X的分布范围均匀的随机生成K个质心
3 v# c9 P2 q# R, s‘cluster’ 初始聚类阶段随机选择10%的X的子样本(此方法初始使用’sample’方法)  h; n6 l. X" {5 o" a& ]
matrix 提供一K*P的矩阵,作为初始质心位置集合  P+ e4 {' f/ ~5 l" q; a9 X
4 i3 f5 R* V2 z! L! f1 k4 r
3. ‘Replicates’(聚类重复次数) 整数  ?9 Z$ y/ k8 {! y1 b
& h( I: ^5 s; K9 `% N4 s0 x
  • %随机获取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
    1 J% X9 u6 h& Y) G: K
- }, O/ {+ u' g5 u! v* a9 b

$ ?1 {+ O) k1 Y效果
+ Z3 j; k: @& U* w
% n/ `6 ?+ r5 Z! `; M' a" F+ F: I
( r& u+ L* n7 d: x  t

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 15:14 , Processed in 0.187500 second(s), 27 queries , Gzip On.

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

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

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