solution = {
const umap = new UMAP({
nComponents: 1,
minDist: 0,
nNeighbors: 20
}),
nEpochs = umap.initializeFit(points.map(projection));
for (let i = 0; i < nEpochs; i++) {
umap.step();
if (i % 10 === 0) yield { solution: umap.getEmbedding() };
}
yield { solution: umap.getEmbedding() };
}