K-means 聚类算法是一种经典的聚类算法,它通过迭代的方式将数据集分成 K 个簇,使得每个簇内的数据点尽可能接近,而簇与簇之间的数据点尽可能远。

基本原理

K-means 算法的基本原理如下:

  1. 随机选择 K 个数据点作为初始的簇中心。
  2. 对于每个数据点,计算它与每个簇中心的距离,并将其分配到最近的簇中。
  3. 计算每个簇的新中心,即该簇中所有数据点的均值。
  4. 重复步骤 2 和 3,直到簇中心不再改变或者达到最大迭代次数。

优势

  • 简单易实现
  • 运算速度快
  • 结果直观

劣势

  • 需要预先指定簇的数量 K
  • 对噪声和异常值敏感
  • 结果依赖于初始簇中心的选取

实例

以下是一个使用 Python 实现的 K-means 聚类算法的示例:

import numpy as np
from sklearn.cluster import KMeans

# 创建数据集
data = np.array([[1, 2], [1, 4], [1, 0],
                 [10, 2], [10, 4], [10, 0]])

# 创建 KMeans 对象,指定簇的数量为 2
kmeans = KMeans(n_clusters=2)

# 拟合数据
kmeans.fit(data)

# 获取聚类结果
labels = kmeans.labels_

# 打印聚类结果
print(labels)

扩展阅读

想了解更多关于 K-means 聚类算法的知识?请阅读本站的相关教程:K-means 聚类算法进阶教程

图片展示

下面是 K-means 聚类算法的一个示例:

K-means 聚类示例图