📅  最后修改于: 2023-12-03 14:52:01.659000             🧑  作者: Mango
层次聚类分析是一种常见的数据分析方法,它可以将数据按照相似性进行分组,从而帮助我们快速了解数据和找出其中的规律。在 R 编程中,我们可以使用 hclust
函数进行层次聚类分析。
在进行层次聚类分析之前,我们需要准备好数据。假设我们有以下的数据集:
data <- matrix(c(10, 20, 30, 40, 50, 15, 25, 35, 45, 55, 25, 30, 35, 40, 45), nrow = 5)
colnames(data) <- c("A", "B", "C", "D", "E")
rownames(data) <- c("Sample 1", "Sample 2", "Sample 3", "Sample 4", "Sample 5")
其中,每一行代表一个样本,每一列代表一个变量。该数据集中共有 5 个样本和 5 个变量。
在进行层次聚类分析之前,我们需要对数据进行横向标准化,以确保每个变量在聚类中的权重相等。我们可以使用 scale
函数进行标准化:
scaled_data <- scale(data)
接下来,我们可以使用 hclust
函数进行层次聚类分析。hclust
函数需要传入一个距离矩阵作为参数,我们可以使用 dist
函数来计算距离矩阵:
distance_matrix <- dist(scaled_data, method = "euclidean")
其中,我们使用 euclidean
方法来计算距离。除此之外,dist
函数还支持其他的距离计算方法。
接下来,我们可以使用 hclust
函数进行聚类:
hierarchical_clustering <- hclust(distance_matrix, method = "ward.D2")
其中,ward.D2
是一种聚合算法,它可以在保证聚类中心的良好性能的基础上最小化组内平方误差和,从而得到更加可靠的聚类结果。
我们可以使用 plot
函数绘制聚类图。聚类图中,横轴是样本,纵轴是距离。不同的聚类类别用不同的颜色表示。
plot(hierarchical_clustering, labels = colnames(data), hang = -1)
在此基础上,我们还可以使用颜色标记样本所属的类别。下面的代码会将样本分为 3 类,并以不同的颜色标记不同的类别。
groups <- cutree(hierarchical_clustering, k = 3)
colors <- c("red", "blue", "green")
plot(hierarchical_clustering, labels = colnames(data), hang = -1, col = colors[groups])
层次聚类分析是一种常用的数据分析方法,它可以帮助我们快速了解数据之间的关系。在 R 编程中,我们可以使用 hclust
函数进行层次聚类分析,并用 plot
函数绘制聚类图。