探索Sklearn中的分层聚类:数据的智能分组艺术

探索Sklearn中的分层聚类:数据的智能分组艺术

在数据科学领域,聚类是一种将数据点分组成多个簇的无监督学习方法,目的是使得同一簇内的数据点相似度高,而不同簇之间的数据点相似度低。分层聚类(Hierarchical Clustering)是聚类算法的一种,它通过创建一个簇的层次结构来进行数据的聚类。本文将详细介绍如何在Scikit-learn(sklearn)中实现分层聚类,并提供详细的代码示例。

1. 分层聚类简介

分层聚类分为两种类型:凝聚的(自底向上)和分裂的(自顶向下)。凝聚的分层聚类从每个数据点作为单独的簇开始,逐步合并最接近的簇;而分裂的分层聚类从所有数据点属于一个簇开始,逐步分裂直到每个数据点都是一个单独的簇。

2. Sklearn中的分层聚类实现

Sklearn提供了AgglomerativeClustering类来实现分层聚类。

2.1 凝聚的分层聚类
python 复制代码
from sklearn.cluster import AgglomerativeClustering
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

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

# 创建凝聚的分层聚类实例
clustering = AgglomerativeClustering(n_clusters=4)

# 训练模型
clustering.fit(X)

# 预测簇标签
predicted_labels = clustering.labels_

# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=predicted_labels, cmap='viridis')
plt.show()
2.2 分裂的分层聚类

虽然AgglomerativeClustering类默认只支持凝聚的聚类,但可以通过设置linkage='ward'来实现分裂的聚类。

python 复制代码
# 创建分裂的分层聚类实例
clustering = AgglomerativeClustering(n_clusters=4, linkage='ward')

# 训练模型
clustering.fit(X)
3. 选择最佳簇数

确定最佳的簇数是分层聚类中的一个关键问题。可以使用树状图(Dendrogram)来辅助决定最佳的簇数。

3.1 绘制树状图
python 复制代码
from scipy.cluster.hierarchy import dendrogram, linkage

# 计算链接矩阵
linked = linkage(X, 'ward')

# 绘制树状图
plt.figure(figsize=(10, 7))
dendrogram(linked, orientation='top', labels=range(X.shape[0]))
plt.show()
4. 分层聚类的参数调整

分层聚类的效果会受到一些关键参数的影响,如链接准则(linkage)和距离度量(affinity)。

  • 链接准则 :常见的链接准则包括'ward'(最小化簇内的方差)、'complete'(最长的两个簇成员之间的距离)、'average'(簇成员的平均距离)等。
  • 距离度量 :可以是'euclidean''manhattan''cosine'等。
5. 分层聚类的应用场景

分层聚类在许多领域都有应用,如市场细分、社交网络分析、生物信息学等。

6. 结论

分层聚类是一种强大的数据探索工具,它能够揭示数据的内在结构。Sklearn的AgglomerativeClustering类提供了一种简单易用的方式来实现分层聚类。通过本文的介绍和代码示例,读者应该能够理解分层聚类的概念,并学会如何在实际项目中使用Sklearn进行分层聚类。记住,选择合适的链接准则和距离度量,以及正确地确定簇数,对于获得有意义的聚类结果至关重要。

请注意,上述代码示例是为了演示分层聚类的基本用法,实际应用中可能需要根据数据集的特点进行调整和优化。此外,分层聚类的性能可能会受到数据规模和维度的影响,因此在处理大规模或高维数据时可能需要考虑其他聚类算法或降维技术。

相关推荐
曦月逸霜10 小时前
啥是RAG 它能干什么?
人工智能·python·机器学习
CSND74010 小时前
YOLO resume断点续训(不能用官方的权重,是自己训练一半生成的last.pt)
深度学习·yolo·机器学习
AI医影跨模态组学11 小时前
J Clin Oncol(IF=43.4)美国Cedars-Sinai医学中心等团队:基于计算组织学人工智能的晚期胰腺癌化疗选择预测性生物标志物的开发与验证
人工智能·机器学习·论文·医学·医学影像·影像组学
SimpleLearingAI11 小时前
聚类算法详解
算法·数据挖掘·聚类
温九味闻醉12 小时前
关于腾讯广告算法大赛2025项目分析3-重读
人工智能·机器学习
AI医影跨模态组学16 小时前
Cancer Letters(IF=10.1)中山大学附属第六医院等团队:基于治疗前MRI影像的RCMIX模型预测MRI定义的cT4期直肠癌T分期下降
人工智能·机器学习·论文·医学·医学影像·影像组学
染指111017 小时前
3.AI大模型-token是什么-大模型底层运行机制
人工智能·算法·机器学习
南宫萧幕18 小时前
基于 Simulink 与 Python 联合仿真的 eVTOL 强化学习全链路实战
开发语言·人工智能·python·算法·机器学习·控制
哥布林学者18 小时前
深度学习进阶(二十二)T5:NLP任务的首次大一统
机器学习·ai
通信小呆呆19 小时前
注意力机制用于信号同步:从匹配滤波到可学习对齐
人工智能·学习·机器学习·信息与通信