郭震 AI公众号:郭震AI

15 聚类模型

发布日期:

最近更新:

分类: Scikit

预计阅读: 4 分钟

阅读次数: 0

系列进度

Scikit-learn 入门 · 第 15 / 24

预计阅读4 分钟
结构重点9 个
图文要点6 张
正文规模1.5k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 9 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

聚类模型流程图查看大图
聚类模型流程图

聚类没有标准答案,结果必须回到业务解释。K-Means 适合相对紧凑的群体,DBSCAN 更能发现噪声点和非球形簇。

聚类方法可参考 scikit-learn clustering 文档

聚类模型核对图查看大图
聚类模型核对图

聚类后我会给每个群体写一句人能懂的描述。如果一个簇无法解释,它就很难用于产品或运营决策。

在机器学习中,聚类是一种无监督学习的方法,目的是将数据集分组,使得同一组中的数据点在某种意义上彼此相似,而不同组之间的数据则相对不同。聚类广泛应用于市场细分、社交网络分析、图像处理等领域。在本节中,我们将重点介绍使用 Scikit-Learn 来实现几种常见的聚类模型,并通过案例展示它们的应用。

1. 聚类模型概述

Scikit-Learn 提供了多种聚类算法,其中最常用的包括:

聚类模型判断卡查看大图
聚类模型判断卡

使用 Scikit-Learn 聚类模型时,先看特征缩放、距离度量、簇数量、轮廓系数和结果解释。

  • K-Means
  • DBSCAN
  • 层次聚类 (Agglomerative Clustering)

每种方法都有其特定应用场景和优缺点。我们将在后续部分中逐一讨论它们。

2. K-Means聚类

K-Means 是最常用的聚类算法之一,旨在通过迭代的方式将数据点分配给 K 个聚类中心。其工作原理如下:

Scikit-Learn阅读地图卡查看大图
ScikitLearn阅读地图卡

读完《聚类模型》后,可以回头问三件事:它解决什么问题,哪一步最容易出错,自己能否拿一个小例子跑通。

  1. 随机选择 K 个初始聚类中心。
  2. 将每个数据点分配给最近的聚类中心。
  3. 更新聚类中心为其所分配的所有数据点的均值。
  4. 重复步骤 2 和 3,直到聚类中心不再发生变化或达到预设的迭代次数。

案例:K-Means聚类实现

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs

# 生成示例数据
X, y = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)

# 使用K-Means进行聚类
kmeans = KMeans(n_clusters=4)
y_kmeans = kmeans.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.75, marker='X')
plt.title('K-Means Clustering')
plt.show()

在这个例子中,我们使用 make_blobs 函数生成了一个带有 4 个聚类的数据集,并应用 K-Means 算法进行聚类。最后,我们用 Matplotlib 绘制了聚类结果及其中心。

3. DBSCAN聚类

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类方法,适合于发现任意形状的聚类。与 K-Means 不同,它不需要事先指定聚类的数量。

DBSCAN 工作原理

  1. 通过指定的邻域半径(eps)和最小样本数(min_samples)来识别核心点、边界点和噪声点。
  2. 从一个核心点开始,扩展聚类,直到所有密度可达的点被包括到该聚类中。
  3. 重复步骤 2,直到所有点都被访问过。

案例:DBSCAN聚类实现

from sklearn.cluster import DBSCAN

# 使用DBSCAN进行聚类
dbscan = DBSCAN(eps=0.5, min_samples=5)
y_dbscan = dbscan.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_dbscan, s=50, cmap='viridis')
plt.title('DBSCAN Clustering')
plt.show()

在此示例中,我们利用 DBSCAN 算法对同一数据集进行了聚类,展示了其对噪声的处理能力。

4. 层次聚类

层次聚类是一种自下而上的聚类方法,首先每个点被视为一个单独的聚类,随后逐步合并成大的聚类。可以根据需要选择不同的层次数。

案例:层次聚类实现

from sklearn.cluster import AgglomerativeClustering
from scipy.cluster.hierarchy import dendrogram, linkage

# 使用层次聚类
hierarchical = AgglomerativeClustering(n_clusters=4)
y_hierarchical = hierarchical.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_hierarchical, s=50, cmap='viridis')
plt.title('Hierarchical Clustering')
plt.show()

# 绘制树状图
linked = linkage(X, 'ward')
dendrogram(linked)
plt.title('Dendrogram')
plt.show()

在这个例子中,我们使用 AgglomerativeClustering 进行层次聚类,并绘制了相应的树状图。

聚类模型应用复盘卡查看大图
聚类模型应用复盘卡

如果《聚类模型》还没完全消化,可以从这张卡片的四个动作重新走一遍。

聚类模型应用检查卡查看大图
聚类模型应用检查卡

回看《聚类模型》时,不必一次做大项目,先用一条简单样例确认主线是否清楚。

结论

在本节中,我们介绍了常见的聚类模型,包括 K-MeansDBSCAN 和层次聚类。通过实际案例,演示了如何使用 Scikit-Learn 库来实现这些模型。在接下来的章节中,我们将讨论如何评估聚类结果,以确保选择合适的模型和参数。请保持关注,进入到模型评估的阶段。

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

聚类模型适合谁读?

这是 Scikit-learn 入门 系列第 15 / 24 篇,适合正在学习Scikit-learn 入门,并且需要把概念落到操作步骤或判断标准里的读者。

读这篇Scikit-learn 入门教程要多久?

按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

这篇文章里的图文节点怎么用?

正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...