Skip to content

Commit

Permalink
Add code snippet for random projection
Browse files Browse the repository at this point in the history
  • Loading branch information
relf committed Jan 16, 2025
1 parent 87cfd9e commit 0f47429
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions docs/website/content/snippets/random-projection.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
+++
title = "Gaussian Random Projection"
+++
```rust
// Assume we get some training data like MNIST: 60000 samples of 28*28 images (ie dim 784)
let dataset = Dataset::from(Array::<f64, _>::random((60000, 28 * 28), Standard));

// We can work in a reduced dimension using a Gaussian Random Projection
let reduced_dim = 100;
let proj = GaussianRandomProjection::<f32>::params()
.target_dim(reduced_dim)
.fit(&dataset)?;
let reduced_ds = proj.transform(&dataset);

println!("New dataset shape: {:?}", reduced_ds.records().shape());
// -> New dataset shape: [60000, 100]
```

0 comments on commit 0f47429

Please sign in to comment.