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)