我已经使用 hclust
训练了我的聚类模型:
model=hclust(distances,method="ward”)
结果看起来不错:
现在我得到了一些新的数据记录,我想预测它们各自属于哪个聚类。我该如何做到这一点?
回答:
聚类并不是为了“分类”新数据,正如其名称所示——这是分类的核心概念。
一些聚类算法(如基于质心的算法——kmeans、kmedians等)可以根据创建的模型为新实例“标记”标签。不幸的是,层次聚类并不属于这一类——它不划分输入空间,只是“连接”聚类过程中给定的一些对象,因此你无法将新点分配到这个模型中。
使用 hclust 来“分类”的唯一“解决方案”是,在 hclust 标记的数据之上创建另一个分类器。例如,你现在可以使用 hclust 标记的标签在数据上训练 knn(甚至可以设置 k=1),然后用它来为新点分配标签。