使用R语言中的中心点(聚类中心)进行数据聚类

我有一个包含三个特征的数据框,如下所示:

library(cluster)df <- data.frame(f1=rnorm(480,30,1),                 f2=rnorm(480,40,0.5),                 f3=rnorm(480,50, 2))

现在,我想要使用K-medoids方法分两步进行聚类。第一步,使用df中的一些数据获取中心点(聚类中心),第二步,使用第一步获得的中心点对剩余数据进行聚类。具体步骤如下:

# 使用部分数据查找中心点sample_data <- df[1:240,]sample_data <- scale(sample_data) # 标准化特征clus_res1 <- pam(sample_data,k = 4,diss=FALSE)# 现在使用上述聚类得到的中心点进行聚类test_data <- df[241:480,]test_data <- scale(test_data)clus_res2 <- pam(test_data,k = 4,diss=FALSE,medoids=clus_res1$medoids)

使用这个脚本时,我得到了如下错误信息:

Error in pam(test_data, k = 4, diss = FALSE, medoids = clus_res1$medoids) :   'medoids' must be NULL or vector of 4 distinct indices in {1,2, .., n}, n=240

显然,这个错误信息是由于中心点矩阵的输入格式引起的。我如何将这个矩阵转换为错误信息中指定的向量格式呢?


回答:

初始中心点参数需要你数据集中点的索引号。例如,42,17表示使用对象42和17作为初始中心点。

根据中心点的定义,你只能使用数据集中的点作为中心点,不能使用其他向量!

聚类是无监督的学习。无需将数据分割成训练集和测试集,因为在无监督学习中没有标签需要拟合过度。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注