聚集聚类到聚类doc2

2024-09-28 23:27:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我对聚合集群和doc2vec是新手,所以我希望有人能帮助我解决以下问题。在

这是我的代码:

model = AgglomerativeClustering(linkage='average',
        connectivity=None, n_clusters=2)
X = model_dm.docvecs.doctag_syn0
model.fit(X, y=None)
model.fit_predict(X, y=None)

我想要的是预测每次观测距离的平均值。我得到了以下错误:

^{pr2}$

Tags: 代码nonemodel集群dmfitclustersaverage
1条回答
网友
1楼 · 发布于 2024-09-28 23:27:34

您将得到一个MemoryError。这是一个可靠的指示器,表明内存不足,在指示的行上。在

该行表示试图分配np.zeros()数组,该数组包含double类型的(m * (m - 1)) // 2(8字节)。看一下scipy源,m,这里是X,又名model_dm.docvecs.doctag_syn0.shape[0]中的向量数。在

那么,你和多少个DocVec一起工作?如果是20万,你需要。。。在

((200000 * 199999) // 2) * 8 bytes

…或大约320GB的RAM才能使np.zeros()分配成功。如果你有更多的文档(如果你有更多的文档)

(聚集聚类需要知道所有成对距离,scipy实现在开始时试图计算和存储这些距离,这非常消耗空间。)

您可能需要有更多的RAM,或者使用更少的docvec,或者使用不同的集群算法,或者使用一个在计算距离方面比较懒惰的实现(但是由于经常需要重新计算,而不是重复使用所需的距离,所以速度要慢得多)。在

相关问题 更多 >