K-means 聚类算法是一种经典的聚类算法,它通过迭代的方式将数据集分成 K 个簇,使得每个簇内的数据点尽可能接近,而簇与簇之间的数据点尽可能远。
基本原理
K-means 算法的基本原理如下:
- 随机选择 K 个数据点作为初始的簇中心。
- 对于每个数据点,计算它与每个簇中心的距离,并将其分配到最近的簇中。
- 计算每个簇的新中心,即该簇中所有数据点的均值。
- 重复步骤 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 聚类算法的一个示例: