机器学习K-Means聚类的执行过程?优缺点?有哪些改进的模型?

Posted Better Bench

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习K-Means聚类的执行过程?优缺点?有哪些改进的模型?相关的知识,希望对你有一定的参考价值。

面试题:K-Means聚类的执行过程?优缺点?有哪些改进的模型?

(1)简述K-means聚类的执行过程

  • 数据预处理,如归一化、离散点处理即可。

  • 随机选取K个簇中心

  • 定义代价函数(可以将簇内平方和函数作为代价函数)

  • 定义迭代次数t,重复下面过程直到代价函数收敛(或簇心不发生变化、或达到迭代次数)

    • 对于每一个样本x,将其分配到距离最近的簇

    • 对于每一个簇,计算簇内均值,作为该类簇新的中心。

(3) K-means算法有哪些优缺点?

优点

  • 对于大数据,计算复杂度是O(NKt),接近与线性,其中N是数据的样本数,K是簇 心数,t是迭代的轮次数。
  • 局部最优也能满足大部分的聚类需求

缺点

  • 需要人工预先确定初始K值,且该值和真实的数据分布未必吻合

  • K-means只能收敛到局部最优,效果收到初始值的影响很大

  • 容易收到噪点的影响

  • 样本点只能被划分到单一的类中

(4)有哪些改进的模型?

针对K-means的缺点,目前也有很多改进模型,主要包括如下两种:

  • K-means ++

k-means++主要是在初始选取K个簇心上做出了改进。假设已经选取了n个初始聚类中心,则在选择n+1个聚类中心时,距离当前n个聚类中心越远的点会有更好的概率被选择为第n+1类聚类的中心。聚类中心当然是互相隔离的越远越好,之后的算法步骤同于k-means。

  • ISODATA

ISODATA算法也是在K值上面改进,它在k-means算法的基础上增加了两个操作,第一是分裂操作,增加聚类中心数,即当属于某个类别的样本数过多时、分散程度较大时,把该类别分为两个子类别。第二是合并操作,对应着减少聚类中心数,即当属于某个类别的样本数过少时,把该类别去除。

以上是关于机器学习K-Means聚类的执行过程?优缺点?有哪些改进的模型?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习机器学习入门08 - 聚类与聚类算法K-Means

K-Means算法:基于聚类的无监督机器学习算法

机器学习K-Means算法优化

聚类算法,k-means,高斯混合模型(GMM)

K-means聚类算法原理与实现

机器学习---算法---k-means算法