机器学习之聚类算法:K均值聚类(一、算法原理)

目录

一、Kmeans

二、Kmeans的流程 

三、距离度量方式 

3.1、闵可夫斯基距离

3.2、马哈拉诺比斯距离

3.3、其他

四、Kmeans聚类实例

五、Kmeans存在的问题

5.1、初始点的选择 

 5.2、K值的选择

5.3、大数据量的聚类

5.4、非球形数据 

六、解决办法

6.1、代价函数 

6.2、肘部法则

6.3、min-batch Kmeans

6.4、DBSCAN


一、Kmeans

聚类是针对给定的样本,依据他们特征的相似度或者距离,将其归并到若干个“类”或“簇”的数据分析问题。聚类属于无监督学习算法,它的分类依据是样本的相似度或距离,而类或簇的类别事先并不知道,也就是说样本并没有标签。

常见的聚类算法包括Kmeans、层次聚类和DBSCAN,本篇主要介绍K均值聚类。

Kmeans是基于样本集合划分的聚类算法。Kmeans将样本集合划分为k个子集,构成K个子类,每个子类有一个聚类中心,按照一定的度量规则,将每个样本归为其距离最近的聚类中心所在的类。每个样本距离最近的聚类中心只能有一个,所以每个样本也只有一个分类,所以Kmeans属于硬聚类。

二、Kmeans的流程 

该算法的流程非常简单,就是不断地迭代,向着同一类的所有样本离该类的聚类中心距离之和最小的方向去调整聚类中心的位置和所有样本点的归属,直到找到最佳的K个聚类中心并且所有样本已找到最佳归属。

算法的流程为:

(1)初始化:随机的选择K个样本点作为K个初始的聚类中心。

(2)对样本进行聚类:计算每个样本到每个剧烈中心的距离,将每个样本归类到与其相聚最近发聚类中心所在的类中。

(3)计算新的聚类中心:计算每个类中所有样本的均值作为新的聚类中心。

(4)如果聚类中心不在发生改变或者到达截至条件就停止迭代,否则重复(2)和(3)。

Kmeans的计算复杂度为O(mnk),m为样本维度,n为样本个数,k为类别数。

三、距离度量方式 

3.1、闵可夫斯基距离

闵可夫斯基距离越大,样本之间的相似度就越小,闵可夫斯基距离越小,样本之间相似度就越大。当其值为0代表两者为同一个样本。x=(x1,x2,...,xn),y=(y1,y2,...yn,)定义两者之间的闵可夫斯基距离d为:

                                                                             \LARGE d=(\sum_{i=1}^{n}|x_{i}-y_{i}|^{p})^{\frac{1}{p}} 

其中p大于等于1,p=1时,称为曼哈顿距离,p=2时称为欧几里得距离,简称欧氏距离,当p为无穷大时称为切比雪夫距离,此时距离为各个坐标数值差的绝对值的最大值 。

如下图,图中绿线代表x1与x2之间的欧氏距离

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值