k-means聚类算法

2018.9.11

k-mean算法


  1. 解决什么问题
  2. 输入是什么
  3. 输出是什么

1. 解决什么问题:

k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。

说白了就是把数据按需求分成 k 类。


2. 输入:
待处理数据矩阵X,质心数量K


算法思想:
(1)随机选取K个初始质心
(2)分别计算所有样本到这K个质心的距离
(3)如果样本离质心Si最近,那么这个样本属于Si点群;如果到多个质心的距离相等,则可划分到任意组中
(4)按距离对所有样本分完组之后,计算每个组的均值(最简单的方法就是求样本每个维度的平均值),作为新的质心
(5)重复(2)(3)(4)直到新的质心和原质心相等,算法结束


MATLAB中有自带的kmeans函数,可以直接使用:

K-means聚类算法采用的是将N*P的矩阵X划分为K个类,使得类内对象之间的距离最大,而类之间的距离最小。
使用方法:
Idx=Kmeans(X,K)
[Idx,C]=Kmeans(X,K)
[Idc,C,sumD]=Kmeans(X,K)
[Idx,C,sumD,D]=Kmeans(X,K)

各输入输出参数介绍:
X—NP的数据矩阵
K—表示将X划分为几类,为整数
Idx—N
1的向量,存储的是每个点的聚类标号
C—KP的矩阵,存储的是K个聚类质心位置
sumD—1
K的和向量,存储的是类内所有点与该类质心点距离之和
D—N*K的矩阵,存储的是每个点与所有质心的距离

[┈]=Kmeans(┈,’Param1’,’Val1’,’Param2’,’Val2’,┈)
其中参数Param1、Param2等,主要可以设置为如下:
1、’Distance’—距离测度
‘sqEuclidean’—欧氏距离
‘cityblock’—绝对误差和,又称L1
‘cosine’—针对向量
‘correlation’—针对有时序关系的值
‘Hamming’—

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值