广安市网站建设_网站建设公司_React_seo优化
2026/1/17 8:47:43 网站建设 项目流程

推荐直接网站在线阅读:aicoting AI算法面试学习在线网站

什么是聚类?

聚类(Clustering)是一种典型的无监督学习方法,其目标是在没有标签信息的情况下,将数据样本按照相似性划分为若干簇,使得同一簇内的样本相似度高,不同簇之间差异显著。常见方法包括基于划分的 K-Means、基于层次的 层次聚类、以及基于密度的 DBSCAN、OPTICS 等。聚类广泛应用于用户分群、市场细分、文本主题发现、图像分割等任务,是数据挖掘和探索性分析中的重要工具。

K-Means 聚类

K-Means 是最经典的聚类算法之一,属于基于划分(Partition-based)的聚类方法。它通过迭代优化目标函数,将数据划分为 K 个簇,使得同簇内样本之间相似度最大化,而不同簇之间相似度最小化。一个簇说白了就是一组相同类别的东西,只是在这个方法里起了个名字叫簇,比如苹果,香蕉,橘子属于水果那一簇,彭于晏,刘亦菲和你们属于帅哥美女那一簇。由于其简单、高效,K-Means 在数据挖掘、文本分析、图像分割等领域被广泛应用。

K-Means 的目标是最小化簇内平方误差(Within-Cluster Sum of Squares, WCSS),即:

J = ∑ i = 1 K ∑ x ∈ C i ∥ x − μ i ∥ 2 J = \sum_{i=1}^{K} \sum_{x \in C_i} \| x - \mu_i \|^2J=i=1KxCixμi2

其中:

  • K KK:簇的个数
  • C i C_iCi:第i ii个簇
  • μ i μ_iμi:簇C i C_iCi的质心(均值向量)
  • ∥ x − μ i ∥ 2 \| x - \mu_i \|^2xμi2:样本点与簇中心的欧式距离 K-Means的核心思想就是不断更新簇划分与质心,直到收敛(目标函数不再显著下降)。

K-Means的算法流程也很容易理解:

  1. 初始化:随机选择K KK个样本作为初始质心。
  2. 分配样本:将每个样本分配到距离最近的簇中心。
  3. 更新质心:对每个簇,计算所有样本的均值作为新的质心。
  4. 迭代:重复步骤 2-3,直到簇划分不再变化或目标函数收敛。

下面基于Scikit-learn编写一段示例代码让咱们更好的理解一下:

from sklearn.datasets import make_blobs from sklearn.cluster import KMeans import matplotlib.pyplot as plt # 1. 生成模拟数据 X, y = make_blobs(n_samples=300, centers=4, cluster_std=0.6, random_state=42) # 2. 训练 K-Means kmeans = KMeans(n_clusters=4, random_state=42, n_init=10) y_pred = kmeans.fit_predict(X) # 3. 可视化结果 plt.scatter(X[:, 0], X[:, 1], c=y_pred, s=30, cmap='viridis') plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], c='red', marker='X', s=200, label='Centroids') plt.legend() plt.title("K-Means Clustering") plt.show()

运行结果如下,不同颜色表示不同簇,红色 X 为聚类中心。

总结环节!K-Means 作为经典的无监督学习方法,凭借其高效性和直观性,成为最常用的聚类算法之一。但在实际应用中,需要注意簇数选择、初始点敏感性以及对复杂分布的适用性问题。针对这些不足,研究者提出了 K-Means++、Mini-Batch K-Means 等改进方法,使其在大规模机器学习任务中依然具有重要地位。

最新的文章都在公众号aicoting更新,别忘记关注哦!!!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询