聚类算法之k-means

1. 算法描述

k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法。其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

2. 算法性能分析

2.1 优点

  1. 算法简单、快速
  2. 对大量数据进行处理时,算法时相对可伸缩和高效的
  3. 只需要调整参数k(簇中心个数)

2.2 缺点

  1. k的个数确定会影响聚类的效果 (用肘部法进行优化)
  2. 对初始值敏感,不同的初始值可能会得到不同的聚类结果 (使用k-means++算法进行优化)
  3. 不适合发现非凸面形的簇,或者密度差距很大的簇(适合使用DBSCAN算法)
  4. 当数据量较大时计算效率低(使用Mini-Batch K-Means算法进行优化)

你可能感兴趣的:(#,数据挖掘与机器学习,聚类,算法,kmeans)