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

MATLAB工具箱k-means算法

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

" ~6 U( K/ y4 b. d3 FMATLAB包含kmeans算法聚类工具9 V- \' m8 M/ w' A" C/ R7 p

9 d2 l" j. j- Q5 s. |返回值
$ k9 y7 M/ e2 J% X; m; `8 Z' T: u8 s/ g& |/ `
Idx N*1的向量,存储的是每个点的聚类标号
  d( C- c/ H3 y! O  F; r; yCtrs K*P的矩阵,存储的是K个聚类质心位置! X% g/ d4 t5 @: z
SumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和
" F- L+ i" G6 R) D; f( E6 N6 p' y3 ND N*K的矩阵,存储的是每个点与所有质心的距离;7 C% `( s/ q/ t

0 b4 R  r6 l/ j# J参数
& u3 R- ^7 N0 c  n5 I" W
; [0 `% f4 _8 ?2 \$ w8 _! f1. ‘Distance’(距离测度)
" e, d3 r' W! Q/ d) n‘sqEuclidean’ 欧式距离(默认时,采用此距离方式)
9 E( |! y- y  E5 f' _‘cityblock’ 绝度误差和,又称:L1% e' T% w" f. B$ C1 m: F
‘cosine’ 针对向量& K8 f* ^! h! q6 j
‘correlation’ 针对有时序关系的值" F3 Y8 L# ?7 P6 u% O' `
‘Hamming’ 只针对二进制数据
( x0 \  G/ V" Y0 |6 i$ H4 o
8 M, a/ ?7 I6 g0 p* R- F2. ‘Start’(初始质心位置选择方法)2 t; X" y/ \, B3 Y  ^4 |4 }, b2 ~  W: B
‘sample’ 从X中随机选取K个质心点1 m* D- T! u  R! L- ]- D8 ~
‘uniform’ 根据X的分布范围均匀的随机生成K个质心* R2 E" K! f1 c9 D/ b, l& I6 U
‘cluster’ 初始聚类阶段随机选择10%的X的子样本(此方法初始使用’sample’方法)
1 K' e' r7 _0 V' a/ t7 Zmatrix 提供一K*P的矩阵,作为初始质心位置集合
* }4 |7 z5 O! W8 W( a1 R- n8 {* F1 j
3. ‘Replicates’(聚类重复次数) 整数7 z; x' N, ]# i7 |8 ~: D
, E6 p0 m* G7 w: W
  • %随机获取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
    . Y6 v$ Z) Z4 \, N
5 a1 a2 X0 f; w  `' V2 n, `
: V, E# T! u; @) o% Q+ L8 Z: \) @
效果  J$ D) ]- s3 S9 f
' q/ M- c" y# ]% u
- C4 }0 A% b  L3 }2 Q

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-21 16:51 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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