package org.jdmp.core.algorithm.hashing;
import org.jdmp.core.dataset.ListDataSet;
import org.ujmp.core.Matrix;
import org.ujmp.core.calculation.Calculation.Ret;
public class HashRandomProjection extends AbstractHashing {
private static final long serialVersionUID = 2795551342148850378L;
private final int numberOfBits;
Matrix randomVectors = null;
public HashRandomProjection(int numberOfBits) {
this.numberOfBits = numberOfBits;
}
public void reset() {
randomVectors.clear();
}
public void train(ListDataSet dataSet) {
final int featureCount = dataSet.getFeatureCount();
randomVectors = Matrix.Factory.randn(featureCount, numberOfBits);
}
public Matrix hash(Matrix input) {
Matrix result = input.toColumnVector(Ret.NEW).mtimes(randomVectors).ge(Ret.NEW, 0);
return result;
}
}
Ads help maintain this website.