K-means 聚类算法是一种常用的无监督学习算法,它将数据集划分为 K 个簇,使得每个簇中的数据点尽可能相似,而不同簇之间的数据点尽可能不同。
算法原理
K-means 算法的基本思想是将数据点划分为 K 个簇,每个簇由一个中心点(质心)表示。算法的目标是使得每个数据点到其所属簇中心的距离最小。
步骤:
- 初始化:随机选择 K 个数据点作为初始的簇中心。
- 分配:将每个数据点分配到最近的簇中心,形成初始的簇。
- 更新:计算每个簇的新中心点(即该簇所有数据点的平均值)。
- 迭代:重复步骤 2 和 3,直到簇中心不再发生变化或达到最大迭代次数。
应用场景
K-means 聚类算法广泛应用于以下场景:
- 市场细分:根据顾客的消费习惯、购买力等因素将市场划分为不同的细分市场。
- 图像处理:将图像分割成不同的区域,以便进行后续处理。
- 文本聚类:将文本数据聚类,以便进行文档分类或主题发现。
代码示例
以下是一个使用 Python 的 K-means 算法的简单示例:
from sklearn.cluster import KMeans
import numpy as np
# 示例数据
data = np.array([[1, 2], [1, 4], [1, 0],
[10, 2], [10, 4], [10, 0]])
# 创建 KMeans 对象
kmeans = KMeans(n_clusters=2)
# 拟合模型
kmeans.fit(data)
# 预测
predictions = kmeans.predict(data)
print(predictions)
扩展阅读
如果您想了解更多关于 K-means 聚类算法的信息,可以参考以下链接:
K-means 聚类算法示意图