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

MATLAB工具箱k-means算法

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

& V2 U1 A' @/ c+ x  a. J: _MATLAB包含kmeans算法聚类工具
, o( E2 L/ |! k3 P# N( O- F7 K# U% f7 @
返回值+ L7 J0 S3 P  U0 e' i

8 M6 C: m1 n: }Idx N*1的向量,存储的是每个点的聚类标号) a( W  O# D& u
Ctrs K*P的矩阵,存储的是K个聚类质心位置5 P5 S2 n( o. f" I/ ^& H/ J5 v
SumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和
  K# t1 A- f  x8 t- mD N*K的矩阵,存储的是每个点与所有质心的距离;
$ J# ~6 k, U2 N: n8 S2 z& z" W
- @* Y, d$ T( }6 T' e+ d4 r参数
5 w3 `# B$ R, B' o/ O5 N/ t/ C% @# \; D; m' D: u& O$ _- D8 p
1. ‘Distance’(距离测度). y+ _: E" B! I, `0 S0 x
‘sqEuclidean’ 欧式距离(默认时,采用此距离方式)
. X  Z3 h' k/ W6 p# h$ e! W‘cityblock’ 绝度误差和,又称:L1
3 F3 F% l' l% M+ i‘cosine’ 针对向量
& M" t$ ~! b8 y9 B& q4 Z‘correlation’ 针对有时序关系的值. T9 q5 I6 m2 e5 J. e
‘Hamming’ 只针对二进制数据: r: _% v* A9 f' d

' e& ?7 R- R7 p6 g2 k& `2. ‘Start’(初始质心位置选择方法). t; u; z8 I2 s/ s  E/ _
‘sample’ 从X中随机选取K个质心点# z% d( z" d5 p: O- Q% `9 S3 p5 R5 x
‘uniform’ 根据X的分布范围均匀的随机生成K个质心  o& R( S$ r0 e0 ~* p9 E- C9 t1 i
‘cluster’ 初始聚类阶段随机选择10%的X的子样本(此方法初始使用’sample’方法)' O5 g% f9 y5 V
matrix 提供一K*P的矩阵,作为初始质心位置集合9 g! [4 k4 a6 j; ]( c; f; {
+ T% A/ [# u# I! S( k$ f
3. ‘Replicates’(聚类重复次数) 整数
) h. l5 e( ~1 r. q0 j" ^0 ?, H7 X4 P# ]' t
  • %随机获取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
    & v5 ~8 u! A  {7 N; w6 i1 l. h0 x: S
8 f3 |! C1 \: ]6 o6 f

2 Y2 `4 Q$ S4 ?+ D效果/ a+ R+ h* u1 y4 n  |* j4 n, N

$ v5 {6 a  J& v" X: A6 G+ E3 ~3 z/ n$ V$ t) D

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 12:14 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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