理解数据分析中层次聚类的概念:函数、类型和步骤
已发表: 2023-04-08聚类是指在数据分析中将相似的数据分组或聚类。 这些集群帮助数据分析师将相似的数据点组织成一组,同时将它们与其他不相似的数据区分开来。
数据的层次聚类是用于将数据分组到聚类树中的方法之一。 它是最流行和最有用的数据分组方法之一。 如果您想成为不断发展的数据科学和数据分析领域的一员,层次聚类是最重要的学习内容之一。
本文将帮助您了解层次聚类的本质、它的功能、类型和优点。
目录
什么是层次聚类?
顾名思义,层次聚类以层次或树的形式将不同的数据分组到聚类中。 在此方法中,每个数据点都被视为一个单独的集群。 分层聚类分析在数据科学家和数据分析师中非常流行,因为它将数据汇总到易于分析的可管理的聚类层次结构中。
层次聚类算法采用多个不同的数据点,并采用两者中最接近的数据点来进行聚类。 它重复这些步骤,直到所有数据点变成一个集群。 该过程也可以倒转,将一个合并的集群划分为不同的较小集群,并最终划分为数据点。
聚类的层次方法可以直观地表示为树状图,它是一种树状图。 当已生成所需数量的聚类时,可以在聚类过程中的任何时候切断树状图。 这也使分析数据的过程更加容易。
层次聚类如何工作?
层次聚类的过程很容易理解。 层次聚类算法将所有可用数据集视为不同的聚类。 然后,它识别出最相似的两个数据集并将它们合并到一个集群中。 之后,系统不断重复这些步骤,直到所有数据点合并成一个大集群。 一旦所需数量的簇可用于分析,也可以停止该过程。
层次聚类过程的进展和输出可以可视化为树状图,它可以帮助您识别不同聚类之间的关系以及它们在本质上的相似或不同。
层次聚类的类型
可以以两种不同的方式使用层次聚类算法。 以下是您可以使用的两种层次聚类的特征。
1.凝聚层次聚类
凝聚方法是更广泛使用的层次聚类数据的方法。 在这种方法中,算法会呈现多个不同的数据集,每个数据集都被视为自己的一个集群。 然后,该算法开始根据它们彼此之间的相似程度将它们组合成两个簇。 它重复这些步骤,直到达到所需的簇数。 这种方法在层次聚类分析中应用较多。
2.分裂层次聚类
层次聚类的分裂法与凝聚法相反。 在这种方法中,算法呈现出一个包含大量数据点的大型集群,它根据它们的差异逐步区分这些数据点。 这会导致具有不同属性的多个数据集。 分裂法在实践中并不经常使用。
从世界顶尖大学在线学习数据科学课程。 获得执行 PG 课程、高级证书课程或硕士课程,以快速推进您的职业生涯。
层次聚类的步骤
如前所述,数据的层次聚类主要分为三个步骤。
- 识别两个不同数据点之间的相似性。
- 将它们合并为一个集群。
- 对所有数据点重复这些步骤,直到它们合并为一个大数据集群。
但是,记住如何在层次聚类中识别相似点也很重要。 如果您研究算法生成的树状图,您可以轻松识别每个不同簇的中心点。 树状图中彼此距离最小的聚类最相似。 这就是为什么它也被称为基于距离的算法的原因。 树状图中一个聚类与所有其他聚类之间的相似性称为邻近矩阵。
在使用层次聚类时,您还必须选择正确的距离度量。 例如,根据你选择的距离度量是他们的性别还是教育背景,涉及同一个人信息的数据集将产生不同的树状图。
阅读我们流行的数据科学文章
数据科学职业道路:综合职业指南 | 数据科学职业发展:工作的未来就在这里 | 为什么数据科学很重要? 数据科学为企业带来价值的 8 种方式 |
数据科学对管理者的相关性 | 每个数据科学家都应该拥有的终极数据科学备忘单 | 你应该成为数据科学家的 6 大理由 |
数据科学家的一天:他们做什么? | 神话破灭:数据科学不需要编码 | 商业智能与数据科学:有什么区别? |
层次聚类 Python
现在您对层次聚类有了清晰的认识,让我们看看如何使用Python 进行层次聚类。 以下是使用 Python 的“scikit-learn”库执行层次聚类的情况。
让我们假设在具有六个观测值的数据集中有两个变量(x和y):
观察 | X | 是 |
1个 | 1个 | 1个 |
2个 | 2个 | 1个 |
3个 | 4个 | 3个 |
4个 | 5个 | 4个 |
5个 | 6个 | 5个 |
6个 | 7 | 5个 |
作为散点图,这就是这些观察结果的可视化方式:
Python
将 numpy 导入为
NP
将 matplotlib.pyplot 导入为 plt
# 定义数据集
X = np.array([[ 1,1], [2,1], [4,3], [5,4], [6,5], [7,5]])
# 绘制数据
plt.scatter(X[:, 0], X[:,1])
plt.show()
此图中有两组观察结果 - 一组包含较低的x和y值,另一组包含较高的x和y值。
您可以使用“scikit learn”对此数据集执行层次聚类。
图中的两组观察值具有不同的值。 一个包含较高的x和y值,另一个包含较低的值。
查看我们的免费数据科学课程,在竞争中脱颖而出。
在我们之前讨论的两种主要的层次聚类方法中,我们将使用凝聚聚类方法和“病房”链接方法。'ward'方法最大限度地减少了合并在一起的簇的变化,因此产生了大小和形状相似的簇。
探索我们的热门数据科学课程
IIITB 的数据科学执行研究生课程 | 商业决策数据科学专业证书课程 | 亚利桑那大学数据科学硕士 |
IIITB 的数据科学高级证书课程 | 马里兰大学数据科学和商业分析专业证书课程 | 数据科学课程 |
Python
从sklearn.cluster导入AgglomerativeClustering
# 进行层次聚类
聚类 AgglomerativeClustering (n_clusters= 2, linkage='ward').fit(X)
这里使用了“n-clusters ”参数来指定我们需要两个集群。
当我们绘制它们时,我们可以为每个集群使用不同的颜色:
Python
# 绘制集群
颜色= np.array([' r', 'b'])
plt.scatter (X[:, 0], X[:,1], c=colors [clustering.labels_])
plt.show()
数据中的两个簇已被聚类算法正确识别。 您还可以使用聚类算法为每个观察分配的标签:
Python
打印(聚类.labels_)
锐化
[ 0 0 1 1 1 1]
最后四个观察值被分配到聚类 1,而前两个被分配到聚类 0。
如果你想可视化这些集群的层次结构,你可以生成一个树状图来这样做:
Python
从scipy.cluster.hierarchy导入树状图,链接
# 计算链接矩阵
Z = linkage(X, '病房')
# 绘制树状图
树状图(Z)
plt.show()
树状图可以帮助我们可视化合并集群的层次结构。
需要学习的顶级数据科学技能
需要学习的顶级数据科学技能 | ||
1个 | 数据分析课程 | 推理统计课程 |
2个 | 假设检验程序 | 逻辑回归课程 |
3个 | 线性回归课程 | 线性代数分析 |
结论
数据聚类是数据科学和数据分析中非常重要的一部分。 如果你想学习不同的聚类方法,那么 upGrad 可以帮助你开启你的学习之旅! 借助大师班、行业课程、指导课程、Python 编程训练营和现场学习课程,upGrad 的数据科学理学硕士是一门专为专业人士设计的课程,旨在让他们在竞争中脱颖而出。
该课程在亚利桑那大学的指导下开设,通过前沿课程、与行业专家的沉浸式学习体验和就业机会,提升您的数据科学职业生涯。
问:为什么我们在数据科学中进行层次聚类?
层次聚类用于根据各种相似属性对数据进行分组。 将数据方面分布在视觉上可理解的组中,可以通过轻松查看树状图来简化其实际实施。
问:什么是层次聚类?
层次聚类是一种广泛使用的对通过社交网站生成的数据进行分组的形式。 使用这些数据,分析师可以获得相关的宝贵见解,以增强他们的业务流程并增加收入。
问:层次聚类的局限性是什么?
层次聚类不适合混合类型或缺失数据。 层次聚类的另一个限制是它不能很好地处理大量数据。