推荐答案
在 R 语言中,可以使用 hclust()
函数进行层次聚类。以下是一个简单的示例代码:
-- -------------------- ---- ------- - ------ ---- -- ------------------ ---- - -- - ------ ----------- -- ---------- - ------ -- -- ------------------- ------ - ----------- - ----- --------
本题详细解读
1. 数据准备
首先,我们需要准备一个数据集。在这个示例中,我们使用 matrix()
函数生成一个 20 行 5 列的随机矩阵,模拟一个包含 20 个样本和 5 个特征的数据集。
2. 计算距离矩阵
层次聚类的第一步是计算样本之间的距离矩阵。在 R 中,可以使用 dist()
函数来计算距离矩阵。dist()
函数默认使用欧几里得距离,但你也可以通过 method
参数指定其他距离度量方法,如 "manhattan"、"maximum" 等。
3. 进行层次聚类
接下来,我们使用 hclust()
函数进行层次聚类。hclust()
函数的主要参数是距离矩阵和聚类方法。常见的聚类方法包括:
"complete"
:完全连接法(默认方法)"single"
:单连接法"average"
:平均连接法"ward.D"
或"ward.D2"
:Ward 方法
4. 绘制树状图
最后,我们可以使用 plot()
函数绘制层次聚类的树状图(dendrogram)。树状图可以帮助我们直观地理解聚类的层次结构。
5. 其他操作
除了绘制树状图,你还可以使用 cutree()
函数将层次聚类的结果切割成指定数量的簇。例如:
# 将聚类结果切割成 3 个簇 clusters <- cutree(hc, k = 3)
这将返回一个向量,表示每个样本所属的簇。