public double evaluate( final Vectorizable from, final Vectorizable to) { return from.convertToVector().cosine( to.convertToVector()); }
@Override public double evaluate( final Vectorizable first, final Vectorizable second) { // The Chebyshev distance is the infinity-norm of difference, which is // the size of the largest difference in a single dimension between // the two vectors. return first.convertToVector().minus( second.convertToVector()).normInfinity(); }
public void add( final Vectorizable document) { this.add(document.convertToVector()); }
@Override protected double evaluateWithoutThreshold( Vectorizable input) { final Vector vector = input.convertToVector(); return vector.getElement(this.index); }
@Override public Vector convertToVector() { return ((Vectorizable) this.getFirst()).convertToVector(); }
@Override public Vector convertToVector() { return ((Vectorizable) this.getFirst()).convertToVector(); }
@Override public double evaluate( final Vectorizable first, final Vectorizable second) { return first.convertToVector().minus( second.convertToVector()).norm(this.power); }
@Override public void update( final DiagonalConfidenceWeightedBinaryCategorizer target, final Vectorizable input, final Boolean output) { if (input != null && output != null) { this.update(target, input.convertToVector(), (boolean) output); } }
public Vector evaluate( final Vectorizable input) { // Apply the transform to the input vector. return input.convertToVector().times(this.transform); }
@Override public void update( final DefaultConfidenceWeightedBinaryCategorizer target, final Vectorizable input, final Boolean output) { if (input != null && output != null) { this.update(target, input.convertToVector(), (boolean) output); } }
@Override public void update( final WeightedBinaryEnsemble<Vectorizable, LinearBinaryCategorizer> target, final Vectorizable input, final Boolean output) { if (input != null && output != null) { this.update(target, input.convertToVector(), (boolean) output); } }
@Override public void update( final LinearBinaryCategorizer target, final Vectorizable input, final Boolean output) { if (input != null && output != null) { this.update(target, input.convertToVector(), (boolean) output); } }
@Override public double evaluate( final Vectorizable first, final Vectorizable second) { // The Chebyshev distance is the infinity-norm of difference, which is // the size of the largest difference in a single dimension between // the two vectors. return first.convertToVector().minus( second.convertToVector()).normInfinity(); }
public int compare( Vectorizable o1, Vectorizable o2) { final int i = this.getIndex(); final double v1 = o1.convertToVector().getElement( i ); final double v2 = o2.convertToVector().getElement( i ); return Double.compare(v1, v2); }
public int compare( Vectorizable o1, Vectorizable o2) { final int i = this.getIndex(); final double v1 = o1.convertToVector().getElement( i ); final double v2 = o2.convertToVector().getElement( i ); return Double.compare(v1, v2); }
@Override public double evaluateAsDouble( final InputType input) { Vectorizable output = this.vectorFunction.evaluate(input); return output.convertToVector().getElement(0); }
@Override public double evaluateAsDouble( final InputType input) { Vectorizable output = this.vectorFunction.evaluate(input); return output.convertToVector().getElement(0); }
@Override public double evaluateAsDouble( final Vectorizable input) { return this.getWeightVector().dotProduct(input.convertToVector()); }
@Override public UnivariateGaussian.PDF evaluate( Vectorizable input) { // Bishop's equations 3.58-3.59 Vector x = input.convertToVector(); double mean = x.dotProduct( this.posterior.getMean() ); double variance = x.times( this.posterior.getCovariance() ).dotProduct(x) + outputVariance; return new UnivariateGaussian.PDF( mean, variance ); }
@Override public StudentTDistribution evaluate( Vectorizable input) { Vector x = input.convertToVector(); double mean = x.dotProduct( this.posterior.getMean() ); double dofs = this.posterior.getInverseGamma().getShape() * 2.0; double v = x.times( this.posterior.getGaussian().getCovariance() ).dotProduct(x); double anbn = this.posterior.getInverseGamma().getShape() / this.posterior.getInverseGamma().getScale(); double precision = anbn / (1.0 + v); return new StudentTDistribution( dofs, mean, precision ); }