eudocódigo de algoritmo de proyección aleatorio

Estoy tratando de aplicar el método de Proyecciones aleatorias en un conjunto de datos muy escaso. Encontré documentos y tutoriales sobre el método Johnson Lindenstrauss, pero cada uno de ellos está lleno de ecuaciones que no me dan ninguna explicación significativa. Por ejemplo, este documento en Johnson-Lindenstrauss

Desafortunadamente, a partir de este documento, no puedo tener idea de los pasos de implementación del algoritmo. Es una posibilidad remota, pero ¿hay alguien que pueda decirme la versión en inglés o el pseudocódigo muy simple del algoritmo? ¿O dónde puedo comenzar a cavar estas ecuaciones? ¿Alguna sugerencia

Por ejemplo, lo que entiendo del algoritmo al leereste artículo sobre Johnson-Lindenstrauss es eso

Supongamos que tenemos unAxB matriz dondeA es el número de muestras yB es el número de dimensiones, p. @100x5000. Y quiero reducir su dimensión a500, que producirá una100x500 matriz.

egún tengo entendido: primero, necesito construir un100x500 matrix y rellena las entradas al azar con+1 y-1 (con una probabilidad del 50%).

Editar
Está bien, creo que empecé a entenderlo. Entonces tenemos una matrizA cual esmxn. Queremos reducirlo aE cual esmxk.

o que debemos hacer es construir una matriR que tienenxk dimensión, y llénalo con0, -1 o+1, con respecto a2/3, 1/6 y1/6 probabilidad

Después de construir esteR, simplemente haremos una multiplicación matricialAxR para encontrar nuestra matriz reducidaE. Pero no necesitamos hacer una multiplicación de matriz completa, porque si un elemento deRi es0, no necesitamos hacer cálculos. Simplemente omítelo. Pero si nos enfrentamos con1, solo agregamos la columna, o si es-1, solo resta del cálculo. Así que simplemente usaremos la sumatoria en lugar de la multiplicación para encontrarE. Y eso es lo que hace que este método sea muy rápido.

esultó ser un algoritmo muy bueno, aunque me siento demasiado estúpido para tener la idea.

Respuestas a la pregunta(4)

Su respuesta a la pregunta