数组对欧几里德距离来说太大了

时间:2016-08-04 10:23:31

标签: python scikit-learn sparse-matrix euclidean-distance

my_array是一个稀疏的78000 x 200矩阵的零和1;许多行只是零。我想计算欧氏距离。此外,我使用多维缩放来获取每列的坐标(每列都是词汇表中的一个单词)。

在计算欧氏距离时,我得到错误“数组太大”。还有其他类似的问题,但我不知道如何在这种情况下应用它。我想象的是,如果我降低“dist阵列”的精度,它将不那么大,但我不知道该怎么做。也可以使用稀疏矩阵或np.memmap,但my_array不是问题。问题在尝试保留所有距离值时开始,因此我需要在dist数组计算期间对其进行积分。 dist数组是78000 x 78000矩阵。

所以我的问题是,如何在计算欧氏距离时整合这些技术?

或者循环dist(x, y) = sqrt(dot(x, x) - 2 * dot(x, y) + dot(y, y))是否有意义?并调整那里某处的数据类型?

from sklearn.manifold import MDS
from sklearn.metrics.pairwise import euclidean_distances

my_array = np.array(Y[2:])
dist = euclidean_distances(my_array)
mds = MDS(n_components=2, dissimilarity="precomputed", random_state=1)
pos = mds.fit_transform(dist)

0 个答案:

没有答案