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

MATLAB工具箱k-means算法

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

8 w3 g4 `- _  u, k" ZMATLAB包含kmeans算法聚类工具
* @  t0 r: x2 _2 {8 }0 R# c% w- f, R0 @3 p1 [& H5 e1 y
返回值
5 G9 M& [5 d, i# V$ i
  y5 P7 j% [% N/ T% _8 CIdx N*1的向量,存储的是每个点的聚类标号
" V6 C; S, O/ g0 tCtrs K*P的矩阵,存储的是K个聚类质心位置
& d# Z1 \% ]0 h0 M1 ^5 A" u3 WSumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和
3 I- _! x$ z4 P2 @+ lD N*K的矩阵,存储的是每个点与所有质心的距离;
3 e" E8 Q, w7 f7 D- H+ D! a0 k' q. O
参数
) B$ l6 c9 Y* J
) B1 \$ s7 g' n1 s1 x1. ‘Distance’(距离测度)
3 n! ~- N2 `8 A( O9 m‘sqEuclidean’ 欧式距离(默认时,采用此距离方式)  H. C6 e; V- f+ w/ P. K
‘cityblock’ 绝度误差和,又称:L1) h' @3 C% l0 t3 Q' |; {. B
‘cosine’ 针对向量4 X0 K9 f1 C  g$ j: a  E
‘correlation’ 针对有时序关系的值* g1 B- U0 n1 p" ]2 \- x, X2 O
‘Hamming’ 只针对二进制数据
1 ?6 F& a. m5 P+ k
( P  X5 S2 y0 z& I% H# ?2. ‘Start’(初始质心位置选择方法)1 k" m' f/ s1 N: @
‘sample’ 从X中随机选取K个质心点
# Z/ E) @$ P! V1 `- _‘uniform’ 根据X的分布范围均匀的随机生成K个质心$ g2 O1 \* l9 I" i* J! n
‘cluster’ 初始聚类阶段随机选择10%的X的子样本(此方法初始使用’sample’方法)
* H- w6 I6 V) Y6 _# `% B! Vmatrix 提供一K*P的矩阵,作为初始质心位置集合
. z8 E$ o- T6 W8 V% K
3 {) F( P" E  x6 ^5 H* ]1 D3. ‘Replicates’(聚类重复次数) 整数
" o1 R& s6 v7 H, G
, R' l# \9 C; b  y3 B1 q* R* N
  • %随机获取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) L, R' `# J: D) M  t

- H' i0 h0 l; T+ T9 U' H: {) |& u# L; u8 u( |* L( s. B1 s+ I
效果1 d  x7 E, [8 A0 {4 B+ p
* f6 |0 _# U: j# V/ Z* E8 |

0 k: Y( z: u. p! d: z

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-8 05:42 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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