如何使用r中的k均值聚类算法对未标记的数据组进行分类?

如何使用r中的k均值聚类算法对未标记的数据组进行分类?,r,algorithm,cluster-analysis,k-means,R,Algorithm,Cluster Analysis,K Means,我是R语言的新手。我有两个数据集,一个被标记为“训练”数据集(Iris数据集),另一个是“测试”数据集,它是一个未标记的数据集。我需要对“Iris”数据集进行聚类,然后使用聚类中心根据最近距离将每个测试用例放入一个聚类中,然后将每个测试用例分配给一个聚类 set.seed(20) pCluster <- kmeans(Trainingdata[, 3:4], 3, nstart = 20) pCluster set.seed(20) pCluster您可以从pCluster对象获取中心值

我是R语言的新手。我有两个数据集,一个被标记为“训练”数据集(Iris数据集),另一个是“测试”数据集,它是一个未标记的数据集。我需要对“Iris”数据集进行聚类,然后使用聚类中心根据最近距离将每个测试用例放入一个聚类中,然后将每个测试用例分配给一个聚类

set.seed(20)
pCluster <- kmeans(Trainingdata[, 3:4], 3, nstart = 20)
pCluster
set.seed(20)

pCluster您可以从pCluster对象获取中心值,如下所示:

pCluster$centers
这将为您提供Petal.Width和Petal.Length的值

  Petal.Length Petal.Width
1     1.462000    0.246000
2     4.269231    1.342308
3     5.595833    2.037500
您现在可以做的是计算测试数据到中心的距离(取决于您的测量),并指定最近的距离

combinedMatrix = rbind(pCluster$Centers,testData[,3:4])
dist(combinedMatrix)
这将为您提供一个距离矩阵,其中包含每个点到簇中心的距离。作为旁注,在使用kmeans(至少对于最常见的距离度量)时,应规范化输入数据,否则绝对值高的特征将掩盖绝对值低的特征

然而,我不确定你想要实现什么。K-均值通常不以这种方式使用,即测试和训练数据中的分割

您的目标是为测试集创建分类器吗?如果是这样,有更好的方法来实现这一点。如果你想坚持距离的概念,你可以看看K-最近邻算法。如果你告诉我们你的最终目标是什么,我很高兴给你更多的建议。

可能重复的