【发布时间】:2020-11-22 05:48:57
【问题描述】:
我有一个非常大的数据集 ~ 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
我正在尝试对这个集合进行聚类,但存在以下问题:
- 类大小是前五列的总和 - 我认为这可能会导致共线性问题,但它是一个重要的变量。
- 前五个变量不是独立的,它们是衡量相同质量的结果,班级中的每个人都必须属于其中一个类别。
- 集合真的很大,唯一没有收敛问题的算法是 kmeans,(不使用类配置文件变量)。
我可以删除分类变量,因为它可以包含在后期的模型中,但我很想尝试一些使用它的方法并比较结果。
对于收敛问题,我尝试了下采样,但是对于很多方法,我需要下采样到 5000-7000 以避免内存问题,这是原始数据的不到 2%。
使用 r 包可以在这里应用什么方法?
【问题讨论】:
标签: r cluster-analysis