探索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进行分层聚类。记住,选择合适的链接准则和距离度量,以及正确地确定簇数,对于获得有意义的聚类结果至关重要。

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

相关推荐
小黎147577898536413 小时前
OpenClaw 连接飞书完整指南:插件安装、配置与踩坑记录
机器学习
哥布林学者15 小时前
高光谱成像(二)光谱角映射 SAM
机器学习·高光谱成像
哥布林学者1 天前
高光谱成像(一)高光谱图像
机器学习·高光谱成像
罗西的思考1 天前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
HXhlx1 天前
CART决策树基本原理
算法·机器学习
OpenBayes贝式计算5 天前
解决视频模型痛点,TurboDiffusion 高效视频扩散生成系统;Google Streetview 涵盖多个国家的街景图像数据集
人工智能·深度学习·机器学习
OpenBayes贝式计算5 天前
OCR教程汇总丨DeepSeek/百度飞桨/华中科大等开源创新技术,实现OCR高精度、本地化部署
人工智能·深度学习·机器学习
够快云库5 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
B站_计算机毕业设计之家5 天前
电影知识图谱推荐问答系统 | Python Django系统 Neo4j MySQL Echarts 协同过滤 大数据 人工智能 毕业设计源码(建议收藏)✅
人工智能·python·机器学习·django·毕业设计·echarts·知识图谱