【发布时间】:2021-01-14 18:19:48
【问题描述】:
我正在使用由数据框 mydf1 创建的 k-modes 模型 (mymodel)。我希望为新数据框mydf2 的每一行分配最近的mymodel 集群。
Similar to this question - just with k-modes instead of k-means。 flexclust 包的 predict 函数仅适用于数字数据,不适用于分类数据。
一个简短的例子:
require(klaR)
set.seed(100)
mydf1 <- data.frame(var1 = as.character(sample(1:20, 50, replace = T)),
var2 = as.character(sample(1:20, 50, replace = T)),
var3 = as.character(sample(1:20, 50, replace = T)))
mydf2 <- data.frame(var1 = as.character(sample(1:20, 50, replace = T)),
var2 = as.character(sample(1:20, 50, replace = T)),
var3 = as.character(sample(1:20, 50, replace = T)))
mymodel <- klaR::kmodes(mydf1, modes = 5)
# Get mode centers
mycenters <- mymodel$modes
# Now I would want to predict which of the 5 clusters each row
# of mydf2 would be closest to, e.g.:
# cluster2 <- predict(mycenters, mydf2)
是否已经有一个函数可以使用 k-modes 模型进行预测,或者最简单的方法是什么?谢谢!
【问题讨论】:
标签: r cluster-analysis knn