norm.random.projection: Normal random projections

norm.random.projectionR Documentation

Normal random projections

Description

Random projections to a lower dimension subspace with a normal distributed projection matrix The projection is performed using a normally distributed projection matrix R: its elements R[i,j] ~ N(0,1).

Usage

norm.random.projection(d = 2, m, scaling = TRUE)

Arguments

d

subspace dimension

m

data matrix (rows are features and columns are examples)

scaling

if TRUE (default) scaling is performed

Details

Normal random projections are randomized map represented by a d'\times d matrix R = 1/\sqrt{d'}(r_{ij}), where r_{ij} are distributed according to a gaussian with 0 mean and unit variance, and d' is the dimension of the projected space and d the dimension of the original space.

Value

data matrix (dimension d x ncol(m)) of the examples projected in a d-dimensional subspace

Author(s)

Giorgio Valentini valentini@di.unimi.it

References

E.Bingham, H.Mannila, Random projection in dimensionality reduction: Applications to image and text data, in: Proc. of KDD 01, ACM, San Francisco, CA, USA, 2001.

See Also

Plus.Minus.One.random.projection, random.subspace, Achlioptas.random.projection

Examples

# Normal random projection from a 1000 dimensional space to a 
# 50-dimensional subspace
m <- matrix(runif(10000), nrow=1000)
m.p <- norm.random.projection(d = 50, m, scaling = TRUE)
# Normal random subspace projection from a 10000 dimensional space 
# to a 1000-dimensional subspace
m <- matrix(rnorm(500000), nrow=5000)
m.p <- norm.random.projection(d = 1000, m, scaling = TRUE)
# The same as above without scaling
m <- matrix(rnorm(500000), nrow=5000)
m.p <- norm.random.projection(d = 1000, m, scaling = FALSE)

clusterv documentation built on June 8, 2025, 10:21 a.m.