@Override public boolean removeClusterMember( final CentroidCluster<Vector> cluster, final Vector member) { if (cluster.getMembers().remove(member)) { final int newSize = cluster.getMembers().size(); Vector centroid = cluster.getCentroid(); if (newSize <= 0) { centroid.zero(); } else { final Vector delta = member.minus(centroid); delta.scaleEquals(1.0 / newSize); centroid.minusEquals(delta); } return true; } else { return false; } }
@Override public boolean removeClusterMember( final CentroidCluster<Vector> cluster, final Vector member) { if (cluster.getMembers().remove(member)) { final int newSize = cluster.getMembers().size(); Vector centroid = cluster.getCentroid(); if (newSize <= 0) { centroid.zero(); } else { final Vector delta = member.minus(centroid); delta.scaleEquals(1.0 / newSize); centroid.minusEquals(delta); } return true; } else { return false; } }
@Override public boolean removeClusterMember( final CentroidCluster<Vector> cluster, final Vector member) { if (cluster.getMembers().remove(member)) { final int newSize = cluster.getMembers().size(); Vector centroid = cluster.getCentroid(); if (newSize <= 0) { centroid.zero(); } else { final Vector delta = member.minus(centroid); delta.scaleEquals(1.0 / newSize); centroid.minusEquals(delta); } return true; } else { return false; } }
for( Vector x : this.getData() ) x.minusEquals( this.mean );
for( Vector x : this.getData() ) x.minusEquals( this.mean );
for( Vector x : this.getData() ) x.minusEquals( this.mean );
this.termGlobalFrequencies.minusEquals(counts);
this.termGlobalFrequencies.minusEquals(counts);
this.termGlobalFrequencies.minusEquals(counts);
public Object computeParameterGradientPartial( GradientDescendable function ) { RingAccumulator<Vector> parameterDelta = new RingAccumulator<Vector>(); double denominator = 0.0; for (InputOutputPair<? extends Vector, ? extends Vector> pair : this.getCostParameters()) { Vector input = pair.getInput(); Vector target = pair.getOutput(); Vector negativeError = function.evaluate( input ); negativeError.minusEquals( target ); double weight = DatasetUtil.getWeight(pair); if (weight != 1.0) { negativeError.scaleEquals( weight ); } denominator += weight; Matrix gradient = function.computeParameterGradient( input ); Vector parameterUpdate = negativeError.times( gradient ); parameterDelta.accumulate( parameterUpdate ); } Vector negativeSum = parameterDelta.getSum(); return new GradientPartialSSE( negativeSum, denominator ); }
public Object computeParameterGradientPartial( GradientDescendable function ) { RingAccumulator<Vector> parameterDelta = new RingAccumulator<Vector>(); double denominator = 0.0; for (InputOutputPair<? extends Vector, ? extends Vector> pair : this.getCostParameters()) { Vector input = pair.getInput(); Vector target = pair.getOutput(); Vector negativeError = function.evaluate( input ); negativeError.minusEquals( target ); double weight = DatasetUtil.getWeight(pair); if (weight != 1.0) { negativeError.scaleEquals( weight ); } denominator += weight; Matrix gradient = function.computeParameterGradient( input ); Vector parameterUpdate = negativeError.times( gradient ); parameterDelta.accumulate( parameterUpdate ); } Vector negativeSum = parameterDelta.getSum(); return new GradientPartialSSE( negativeSum, denominator ); }
public Object computeParameterGradientPartial( GradientDescendable function ) { RingAccumulator<Vector> parameterDelta = new RingAccumulator<Vector>(); double denominator = 0.0; for (InputOutputPair<? extends Vector, ? extends Vector> pair : this.getCostParameters()) { Vector input = pair.getInput(); Vector target = pair.getOutput(); Vector negativeError = function.evaluate( input ); negativeError.minusEquals( target ); double weight = DatasetUtil.getWeight(pair); if (weight != 1.0) { negativeError.scaleEquals( weight ); } denominator += weight; Matrix gradient = function.computeParameterGradient( input ); Vector parameterUpdate = negativeError.times( gradient ); parameterDelta.accumulate( parameterUpdate ); } Vector negativeSum = parameterDelta.getSum(); return new GradientPartialSSE( negativeSum, denominator ); }
public Vector computeParameterGradient( GradientDescendable function ) { RingAccumulator<Vector> parameterDelta = new RingAccumulator<Vector>(); double denominator = 0.0; for (InputOutputPair<? extends Vector, ? extends Vector> pair : this.getCostParameters()) { Vector input = pair.getInput(); Vector target = pair.getOutput(); Vector negativeError = function.evaluate( input ); negativeError.minusEquals( target ); double weight = DatasetUtil.getWeight(pair); if (weight != 1.0) { negativeError.scaleEquals( weight ); } denominator += weight; Matrix gradient = function.computeParameterGradient( input ); Vector parameterUpdate = negativeError.times( gradient ); parameterDelta.accumulate( parameterUpdate ); } Vector negativeSum = parameterDelta.getSum(); if (denominator != 0.0) { negativeSum.scaleEquals( 1.0 / denominator ); } return negativeSum; }
public Vector computeParameterGradient( GradientDescendable function ) { RingAccumulator<Vector> parameterDelta = new RingAccumulator<Vector>(); double denominator = 0.0; for (InputOutputPair<? extends Vector, ? extends Vector> pair : this.getCostParameters()) { Vector input = pair.getInput(); Vector target = pair.getOutput(); Vector negativeError = function.evaluate( input ); negativeError.minusEquals( target ); double weight = DatasetUtil.getWeight(pair); if (weight != 1.0) { negativeError.scaleEquals( weight ); } denominator += weight; Matrix gradient = function.computeParameterGradient( input ); Vector parameterUpdate = negativeError.times( gradient ); parameterDelta.accumulate( parameterUpdate ); } Vector negativeSum = parameterDelta.getSum(); if (denominator != 0.0) { negativeSum.scaleEquals( 1.0 / denominator ); } return negativeSum; }
public Vector computeParameterGradient( GradientDescendable function ) { RingAccumulator<Vector> parameterDelta = new RingAccumulator<Vector>(); double denominator = 0.0; for (InputOutputPair<? extends Vector, ? extends Vector> pair : this.getCostParameters()) { Vector input = pair.getInput(); Vector target = pair.getOutput(); Vector negativeError = function.evaluate( input ); negativeError.minusEquals( target ); double weight = DatasetUtil.getWeight(pair); if (weight != 1.0) { negativeError.scaleEquals( weight ); } denominator += weight; Matrix gradient = function.computeParameterGradient( input ); Vector parameterUpdate = negativeError.times( gradient ); parameterDelta.accumulate( parameterUpdate ); } Vector negativeSum = parameterDelta.getSum(); if (denominator != 0.0) { negativeSum.scaleEquals( 1.0 / denominator ); } return negativeSum; }
function.convertFromVector( p ); Vector fjx = function.evaluate( input ); fjx.minusEquals( fx ); fjx.scaleEquals( 1.0 / deltaSize ); J.setColumn( j, fjx );
function.convertFromVector( p ); Vector fjx = function.evaluate( input ); fjx.minusEquals( fx ); fjx.scaleEquals( 1.0 / deltaSize ); J.setColumn( j, fjx );
function.convertFromVector( p ); Vector fjx = function.evaluate( input ); fjx.minusEquals( fx ); fjx.scaleEquals( 1.0 / deltaSize ); J.setColumn( j, fjx );
delta.minusEquals(lambda); Matrix betahat = sampleCovariance; if( n > 1 )
delta.minusEquals(lambda); Matrix betahat = sampleCovariance; if( n > 1 )