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

MATLAB工具箱k-means算法

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
# B3 ^5 `& T/ _+ d1 o: f8 |
MATLAB包含kmeans算法聚类工具* _7 a: X5 Z/ z1 k, X' V
4 O0 z8 T0 P" |/ j
返回值# h3 L' K- L# t7 G/ n
' R6 \$ D8 K0 K" U# }1 p" q
Idx N*1的向量,存储的是每个点的聚类标号6 n# y  K; F* Z: r
Ctrs K*P的矩阵,存储的是K个聚类质心位置
2 m7 j% _" S7 ~8 TSumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和- Q& [. C5 V" b6 d2 R3 }2 H& o
D N*K的矩阵,存储的是每个点与所有质心的距离;
) ^4 f( _7 I: u) M; }4 S  \! {! X0 e
参数% x! i. ^5 Q( p0 H

4 ^% D! I+ Q5 @+ p' x. q# D1. ‘Distance’(距离测度)* q" z. r8 r7 W2 b$ m5 j! @
‘sqEuclidean’ 欧式距离(默认时,采用此距离方式)
( r- L+ R* M- F; _; \‘cityblock’ 绝度误差和,又称:L1
& ~7 X  Z. \0 O- q" c* Q* `: y‘cosine’ 针对向量
1 x! f. f8 K( f$ g‘correlation’ 针对有时序关系的值
" G0 b/ G2 w8 A, I+ B7 N‘Hamming’ 只针对二进制数据( S5 a0 F" {' {% @: F
, L& m3 r! E$ C$ e) j+ i
2. ‘Start’(初始质心位置选择方法)' G6 [; o* e, b6 W9 D0 P! H
‘sample’ 从X中随机选取K个质心点* S8 ]0 o! O* f5 n% d8 W- e: {
‘uniform’ 根据X的分布范围均匀的随机生成K个质心9 S7 A4 T8 I  C, ^0 Z. t& l+ y
‘cluster’ 初始聚类阶段随机选择10%的X的子样本(此方法初始使用’sample’方法)! p. v) C6 R8 ~/ n
matrix 提供一K*P的矩阵,作为初始质心位置集合
! S2 ?% m' A- v5 ~: Q* O: q, ]  \/ j  \6 g
3. ‘Replicates’(聚类重复次数) 整数
9 v8 n: I: N5 W/ V) l: H. y3 q4 J; N" A% ?) M7 f( u- u: r
  • %随机获取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: D: Z- e  s5 c9 x: [' ]
' ~$ C" J( C: e6 {& G

8 ]5 g& j. ^/ g4 R! a3 l5 ]效果
8 B' ^! a/ V" A9 t! E/ u
" N0 O' B6 w- N5 Z9 l" [( s, h  M! s# n5 _

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-2 22:29 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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