使用非自变量和非常大的数据集进行聚类

Clustering with non independent variables and very large data set

我有一个非常大的数据集 ~ 400 000 个实例,看起来像下面的数据。

data  <- as.data.frame(matrix(0, 10, 5))
samp <- function(){
  x <-sample( c(0:9), 5, replace =TRUE, prob = c(0.5, 0.1, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05))
  return(x)
}
data <- lapply(split(data, c(1:10)), function(x)  samp() )
data <- do.call(rbind.data.frame, data)
colnames(data) <- c("fail","below_a",  "aver", "above_a", "exceed")
data$class_size <- apply(data[1:5] , 1, FUN = sum) 
class_prof <- sample(letters[1:6], nrow(data), replace = T)   
data$class_prof <- class_prof

我正在尝试对这个集合进行聚类,但存在以下问题:

我可以放弃分类变量,因为它可以在后期包含在模型中,但我很想尝试一些也使用它的方法并比较结果。

对于收敛问题,我尝试了降采样,但对于很多方法,我需要降采样到 5000-7000 以避免内存问题,这是原始数据的不到 2%。

这里使用r包可以应用什么方法?

尝试对数据进行主成分分析,然后根据您决定的维数进行 kmeans 或 knn。

有几个不同的包可以非常简单地使用它,您必须先将数据居中和缩放。您还必须使用一种热方法将任何因子转换为数值(原始因子列的每个可能因子对应一列)。

查看 'prcomp' 或 'princomp'