加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

R,在多重对应分析之后发生分层聚类

发布时间:2020-12-14 04:46:27 所属栏目:大数据 来源:网络整理
导读:我想聚类一个数据集(600000个观测值),对于每个集群,我想获得主要组件. 我的载体由一个电子邮件和30个定性变量组成. 每个定量变量有4个类:0,1,2和3. 所以我要做的第一件事是加载库FactoMineR并加载我的数据: library(FactoMineR)mydata = read.csv("/home/t
我想聚类一个数据集(600000个观测值),对于每个集群,我想获得主要组件.
我的载体由一个电子邮件和30个定性变量组成.
每个定量变量有4个类:0,1,2和3.

所以我要做的第一件事是加载库FactoMineR并加载我的数据:

library(FactoMineR)
mydata = read.csv("/home/tom/Desktop/ACM/acm.csv")

然后我将我的变量设置为定性(虽然我不包括变量’email’):

for(n in 1:length(mydata)){mydata[[n]] <- factor(mydata[[n]])}

我正在从我的向量中删除电子邮件:

mydata2 = mydata[2:31]

我正在这个新数据集中运行MCA:

mca.res <- MCA(mydata2)

我现在想要使用hcpc函数对我的数据集进行聚类:

res.hcpc <- HCPC(mca.res)

但是我收到以下错误消息:

Error: cannot allocate vector of size 1296.0 Gb

你觉得我应该怎么做?我的数据集太大了吗?我用的是hcpc功能吗?

解决方法

由于它使用层次聚类,HCPC需要计算600000 x 600000距离矩阵(约1,800亿个元素)的下三角形.你只是没有RAM来存储这个对象,即使你这样做,计算可能需要几个小时,如果不是几天完成.

关于聚类大数据集的Stack Overflow / Cross Validted进行了各种讨论;一些在R中的解决方案包括:

k-means clustering in R on very large,sparse matrix?(bigkmeans)

Cluster Big Data in R and Is Sampling Relevant?(克拉拉)

如果您想使用这些替代群集方法之一,您可以在您的示例中将其应用于mca.res $ind $coord.

为响应问题clustering very large dataset in R而建议的另一个想法是首先使用k均值来找到一定数量的聚类中心,然后使用层次聚类从那里构建树.该方法实际上是通过HCPC的kk参数实现的.

例如,使用FactoMineR中的茶叶数据集:

library(FactoMineR)
data(tea)
## run MCA as in ?MCA
res.mca <- MCA(tea,quanti.sup = 19,quali.sup = c(20:36),graph = FALSE)
## run HCPC for all 300 individuals
hc <- HCPC(res.mca,kk = Inf,consol = FALSE)
## run HCPC from 30 k means centres
res.consol <- NULL ## bug work-around
hc2 <- HCPC(res.mca,kk = 30,consol = FALSE)

consol参数提供了使用k-means来合并来自层次聚类的聚类的选项;当kk设置为实数时,此选项不可用,因此在此处将consol设置为FALSE.对象res.consul设置为NULL以解决FactoMineR 1.27中的小错误.

下图显示了基于300个个体(kk = Inf)的聚类,并基于30 k意味着中心(kk = 30),用于绘制在前两个MCA轴上的数据:

可以看出结果非常相似.您应该可以轻松地将其应用于具有600或1000 k均值中心的数据,可能高达6000且具有8GB RAM.如果你想使用更大的数字,你可能想要使用bigkmeans,SpatialTools :: dist1和fastcluster :: hclust来编写更高效的版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读