一尘不染

随机投影算法伪代码

algorithm

我正在尝试在非常稀疏的数据集上应用随机投影方法。我找到了有关Johnson
Lindenstrauss方法的论文和教程,但是其中每一个都充满了方程式,这对我没有任何有意义的解释。例如,此文档有关Johnson-
Lindenstrauss

不幸的是,从本文档中,我对算法的实现步骤一无所知。这是一个漫长的过程,但是有谁能告诉我该算法的纯英语版本或非常简单的伪代码?或者我可以从哪里开始挖掘这个方程式?有什么建议?

例如,通过阅读有关Johnson-
Lindenstrauss的论文
,我从算法中了解到的是:

  1. 假设我们有一个AxB矩阵,其中A是样本B数和维数,例如100x5000。我想将其尺寸减小为500,这将产生一个100x500矩阵。

据我了解:首先,我需要构造一个100x500矩阵,并用+1和随机填充条目-1(概率为50%)。

编辑:
好的,我想我开始明白了。因此,我们有一个矩阵Amxn。我们希望减少它Emxk

我们需要做的是,建立一个矩阵R具有nxk尺寸,并与填充它0-1或者+1,对于2/31/61/6概率。

构造完这个之后R,我们将简单地进行矩阵乘法AxR以找到我们的简化矩阵E。但是我们不需要进行全矩阵乘法,因为如果元素为Riis
0,我们就不需要进行计算。只需跳过它。但是,如果面对1,我们只添加列,或者如果是-1,则从计算中减去它。因此,我们将简单地使用求和而不是乘法来查找E。这就是使此方法非常快速的原因。

事实证明,这是一个非常简洁的算法,尽管我觉得太愚蠢而无法理解。


阅读 289

收藏
2020-07-28

共1个答案

一尘不染

从高维数据A到低维数据E的映射在后一论文的定理1.1中给出-
它只是一个标量乘法,然后是一个矩阵乘法。数据向量是矩阵A和E的行。正如作者在7.1节中指出的那样,您无需使用完整的矩阵乘法算法。

2020-07-28