【发布时间】:2019-11-18 10:54:33
【问题描述】:
我正在尝试使用 K 表示聚类对搜索历史记录中的关键短语进行聚类,但是当我运行 stringdistmatrix() 命令时遇到错误“无法分配大小为 30gb 的向量”。我使用的数据集包含 63455 个唯一元素,因此生成的矩阵需要大约 30gb 的内存来处理。有没有办法在不失去太多意义的情况下降低流程的要求?
如果您碰巧发现任何其他错误,以下是我尝试运行的代码:
#Set data source, format for use, check consistency
MyData <- c('Create company email', 'email for business', 'free trial', 'corporate pricing', 'email cost')
summary(MyData)
#Define number of clusters
kclusters = round(0.90 * length(unique(MyData)))
#Compute distance between words
uniquedata <- unique(as.character(MyData))
distancemodels <- stringdistmatrix(uniquedata, uniquedata, method="jw")
#Create Dendrogram
rownames(distancemodels) <- uniquedata
hc <- hclust(as.dist(distancemodels))
par(mar = rep(2, 4))
plot(hc)
#Create clusters from grouped keywords
dfClust <- data.frame(uniquedata, cutree(hc, k=kclusters))
names(dfClust) <- c('data','cluster')
plot(table(dfClust$cluster))
#End view
view(dfClust)
【问题讨论】: