什么是聚类?

一、聚类的概念

聚类是一种无监督学习方法,其目的是将数据集中的样本划分成若干个彼此相似的组或"簇"。聚类算法通过分析数据的内在结构,将相似的数据点归为同一簇,同时使得不同簇之间的差异最大化。聚类的结果可以帮助我们理解数据的分布特征,发现数据的潜在模式,以及为后续的数据分析和决策提供依据。

二、聚类算法的特点

聚类的主要特点包括:

1、无监督

聚类不需要预先标记的标签,算法自行发现数据的分组。这一般是通过欧氏距离、余弦相似度等度量指标实现的。

2、分组

聚类算法将数据点分配到不同的簇中,使得同一簇内的点尽可能相似,而不同簇之间的点尽可能不同。

3、特征学习

聚类可以揭示数据的内在特征和结构。

三、常见聚类算法

1、K-Means

最常见的聚类算法之一,通过迭代优化簇中心(质心)来最小化簇内样本与簇中心的距离之和。

2、层次聚类

通过构建一个多层次的嵌套簇树来组织数据,可以是自底向上的聚合或自顶向下的分裂。

3、DBSCAN

基于密度的聚类算法,可以识别任意形状的簇,并且能够处理噪声点。

四、聚类和分类

1、是否有监督

分类通常是指监督学习,这意味着在训练模型时,我们有一组预先标记的数据 ,模型通过学习这些标记来学习如何将新的数据点分配到正确的类别。而聚类是一种无监督学习方法,没有预先定义的类别标签。聚类算法试图将数据点分组,使得同一簇内的点尽可能相似,而不同簇之间的点尽可能不同。从笔者的角度看,只看结果其实聚类和分类是一样的,都是把某一个样本划分到某一类中,两者最大的不同就在于算法实现的方式上。

2、目标

分类算法通常基于已知的类别信息来构建决策边界。聚类的目标是探索数据的内在结构 ,发现数据中的模式和分组,而不依赖于预先定义的标签。所以遇到没有标签的数据时,作为探索分析的第一步,我们往往都会采用聚类算法(优选DBSCAN之类的不需要预先指定类簇数目的算法)看看数据的分布。

3、评估方法

分类的性能通常通过准确率、精确率、召回率、F1分数、ROC曲线和AUC值等指标来评估。由于没有预先定义的标签,聚类结果的评估通常更复杂,可使用轮廓系数、Davies-Bouldin指数、Calinski-Harabasz指数等指标。

五、聚类算法应用

这里使用K-Means作为示例。

python 复制代码
# 导入必要的库
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# 生成模拟数据集
X, y_true = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)

# 创建 KMeans 实例,设置簇的数量
kmeans = KMeans(n_clusters=4)

# 训练模型
kmeans.fit(X)

# 预测聚类结果
y_kmeans = kmeans.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.5)
plt.title('KMeans Clustering')
plt.show()
相关推荐
佳瑞Jarrett几秒前
从 0 到 1 手搓 AI 调解训练系统:双 NPC 实时语音 + AI 自动评分(FastAPI + Qwen-Audio Realtime 实战)
人工智能
W***2592几秒前
2026 企业 AI 办公工具怎么选:选型框架与平台全景分析
大数据·人工智能
薛定e的猫咪3 分钟前
(AISTATS 2023)BaCaDI 逐章阅读
人工智能·深度学习·算法·机器学习
winfredzhang6 分钟前
用 Python 手写一个“所见即所得“的图片水印工具:wxPython + Pillow 实战详解
python·pillow·rotate·crop·身份改水印
记得开心一点嘛7 分钟前
Trellora:基于 Electron、React 和本地知识库的 AI 知识工作台
人工智能·react.js·electron
桃西西呀14 分钟前
LangChain 之八:流式与透传
人工智能·langchain·llm
凡达Ai派17 分钟前
AI画布里的文字总是错位或乱码?把生成、排版和校对拆成三段
图像处理·人工智能·深度学习·神经网络·自然语言处理·知识图谱
Benny_Tang17 分钟前
AT_arc180_d [ARC180D] Division into 3 题解
数据结构·c++·算法
桃西西呀20 分钟前
LangChain 之九:一个能检索又会调工具的流式问答助手
人工智能·langchain·llm
Martina_032125 分钟前
AI生成的模块场景一烘焙就有黑边?用6步检查Lightmap UV、纹素密度与Padding
人工智能·游戏·3d·aigc·uv·游戏策划·关卡设计