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

MATLAB工具箱k-means算法

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
, [7 w2 q1 `* O6 S' ^# q/ ^6 C
MATLAB包含kmeans算法聚类工具
6 O* b* w, @; P1 e' O: f
8 l3 s0 ]9 l, r9 u& \返回值
7 a7 N, o7 e4 r$ p6 M/ @& O8 @7 H) G( Z; R1 @
Idx N*1的向量,存储的是每个点的聚类标号
' r% g1 s+ b1 e- O% [  kCtrs K*P的矩阵,存储的是K个聚类质心位置
9 s" v, k; A1 j8 nSumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和
! g1 O' e5 D# lD N*K的矩阵,存储的是每个点与所有质心的距离;
, X% E0 M4 W0 ?; `& k. d0 k
1 ^0 Z8 p& f" b* q% P2 N: }参数# v1 k, q6 V5 _" ?, t$ ]

7 O* g$ a/ x' E: E# A! q1. ‘Distance’(距离测度)6 J4 a$ j# a  T* ~0 x; A) X0 |
‘sqEuclidean’ 欧式距离(默认时,采用此距离方式)- {% t% L4 v4 O! A, Y/ f- [
‘cityblock’ 绝度误差和,又称:L1
: r! B5 r4 ]* F‘cosine’ 针对向量
1 L- i9 l& }7 M‘correlation’ 针对有时序关系的值! @7 N5 R( a. K
‘Hamming’ 只针对二进制数据& ]8 C3 N) K+ h  \1 \
/ V1 ]( j' T) V
2. ‘Start’(初始质心位置选择方法)
  K6 E2 T+ q# S# D1 S5 M" r1 S‘sample’ 从X中随机选取K个质心点
) ^4 |6 V3 x! S3 \' S& L. m‘uniform’ 根据X的分布范围均匀的随机生成K个质心
. }- A. b- J3 ]3 o& k‘cluster’ 初始聚类阶段随机选择10%的X的子样本(此方法初始使用’sample’方法)
, w9 O: E6 ]  ]( ?. z) |/ |matrix 提供一K*P的矩阵,作为初始质心位置集合/ |3 u3 Q; S, E7 ]! I8 c. ?4 T
) T! U" J2 E. p( a3 J
3. ‘Replicates’(聚类重复次数) 整数
9 p- M0 ^1 g* e9 p
6 i( ]% w) ?7 |. f
  • %随机获取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' F0 j3 X! j$ }# {' @& {. S" P( Y
* e* x3 ^1 u0 [8 \' N% x& _1 L
# K+ k  H1 }* [9 @0 M* F0 |% w
效果+ F9 m% s; K& ?2 d1 F. t

% U2 {& n9 U8 o: y# C/ M: r
" X3 i8 Y: [) e" C" n

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 18:16 , Processed in 0.203125 second(s), 26 queries , Gzip On.

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

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

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