聚类(一)——Kmeans

Clustering

聚类K-means

  聚类是机器学习和数据挖掘领域的主要研究方向之一,它是一种无监督学习算法,小编研究生时期的主要研究方向是“数据流自适应聚类算法”,因此对聚类算法有比较深入的理解,因而决定开一个专题来写聚类算法,但愿能够为入门及研究聚类相关算法的读者带来帮助。聚类能够做为一个单独的任务,用于寻找数据内在分布结构,也常常做为其余学习任务的前驱过程,应用十分普遍。今天,小编就带你探索聚类算法的奥秘,并介绍第一个聚类算法Kmeans。算法

 

Q:什么是聚类?

A:聚类是按照某一种特定的标准(类似性度量,如欧式距离等),把一个数据集分割成不一样的类,使得同一个类中的数据对象的类似性尽量大,不一样类之间的差别性也尽量大,以下图是一个聚类结果的可视化:机器学习

image.png

    聚类有很是普遍的应用,好比根据消费记录发现不一样的客户群,对基因表达进行聚类能够研究不一样种群中的基因特征,对文本进行聚类能够快速找出相关主题的文章等。函数

 

Q:如何度量类似性?

A:经常使用的类似性度量方式主要有如下几种:学习

  • 欧式距离:image.png优化

  • Minkowoski距离:image.pngspa

  • 曼哈顿距离:image.png3d

  • 余弦距离:image.pngcode

  • Jaccard类似系数:image.png对象

  • 相关系数:image.pngblog



 

Q:经常使用的聚类算法有哪些?

A:

  • 基于划分的聚类:k-means,mean shift

  • 层次聚类:BIRCH

  • 密度聚类:DBSCAN

  • 基于模型的聚类:GMM

  • Affinity propagation

  • 谱聚类

    上面的这些算法只是简单的引入聚类的概念,在接下来的专题中,咱们将具体探讨经典的聚类算法,研究它们的原理,分析优缺点,应用场景等。今天,咱们就来学习最经典的一个聚类算法Kmeans

 

K-means

 

Kmeans聚类原理

    Kmeans算法的思想很简单,根据给定样本集中样本间距离的大小将样本集划分为k个簇(类),使得每一个点都属于距离它最近的那个聚类中心(即均值means)对应的类。之因此叫kmenas是由于它能够发现k(用户指定)个簇且簇中心用属于该簇的数据的均值来表示。

 

Kmeans聚类算法

     数据集合X={x1,...xn}中每一个样本都是d维无标签数据,kmeans聚类的目标是将这n个点分到k个簇使得簇内点到簇中心点(均值)的距离平方和最小,即求下列目标函数的最优解

  其中μi就是簇Si中点的均值。   

    然而解上式并非一个简单的问题,由于它是一个NP难问题,因此kmeans算法采用一种启发式的迭代求解方法:

    首先随机选择k个对象做为初始的聚类中心,而后计算每一个样本到各个聚类中心的距离,并分配给距离它最近的聚类中心。一旦对象全都被分配了,从新计算每一个簇的中心(均值)做为下一次迭代的新的中心点。这一过程将重复进行直到知足下列任一条件:

  • 没有对象被从新分配给新的类;

  • 聚类中心再也不发生变化;

  • 偏差平方和局部最小。

 

Tips:

  • k值的选择:通常来讲咱们能够根据数据的先验选择一个合适的k,若是不行,则能够经过交叉验证选择合适的k;

  • 初始化k个中心点:能够随机选择,也能够每次选择距离其余中心点尽量远的点做为中心;

Kmeans++算法

  前面咱们也提到了K个初始化中心的选择对聚类算法的运行结果和时间有很大影响,Kmeans++算法提出了对随机化初始化聚类中心的优化:

  1. 从输入的数据点集合中随机选择一个点做为第一个聚类中心μ1;

  2. 对于数据集中的每个点xi,计算它与已选择的聚类中心最近的一个的距离D(xi);

  3. 选择D(xi)较大的点做为新的聚类中心;

  4. 重复b,c直到找出k个聚类中心; 

    

Kmeans算法小结

优势:

  • 原理简单,实现简单,收敛速度快;

  • 聚类效果比较好;

  • 可解释性强,直观;

  • 只有一个参数k;

缺点:

  • k的选择对聚类效果影响较大;

  • 对于不是凸的数据集比较难收敛;

  • 类别不均衡数据集聚类效果很差;

  • 结果局部最优;

  • 对噪声点敏感;

  • 聚类结果是球形。

 

小结:

    今天是聚类算法学习的第一部分,内容虽然简单可是很重要,kmeans算法经常做为其余算法的基础,如以前的半监督学习以及以后会讲的谱聚类算法都会用到。相信今天的学习你必定也有了收获,聚类专题的下一篇内容是谱聚类,敬请期待!

扫码关注

获取有趣的算法知识

qrcode_for_gh_32a933b66b99_258.jpg

相关文章
相关标签/搜索