Dense Random Projector#

A database-friendly random projector with projection matrix sampled from a dense uniform distribution ([-1, 1]).

Note: Dense Random Projector has been deprecated, use Sparse Random Projector with sparsity set to 0 instead.

Interfaces: Transformer, Stateful

Data Type Compatibility: Continuous only


# Param Default Type Description
1 dimensions int The number of target dimensions to project onto.


use Rubix\ML\Transformers\DenseRandomProjector;

$transformer = new DenseRandomProjector(50);

Additional Methods#

Estimate the minimum dimensionality needed to satisfy a max distortion constraint with n samples using the Johnson-Lindenstrauss lemma:

public static minDimensions(int $n, float $maxDistortion = 0.5) : int
use Rubix\ML\Transformers\DenseRandomProjector;

$dimensions = DenseRandomProjector::minDimensions(1000, 0.3);


  • D. Achlioptas. (2003). Database-friendly random projections: Johnson-Lindenstrauss with binary coins.