(ClosedFormComputableDistribution<DataType>) distribution.clone(), data ) );
/** * Computes the likelihoods of the underlying distributions * @param input Input to consider * @return Vector of likelihoods for the underlying distributions */ public double[] computeRandomVariableLikelihoods( Vector input ) { int K = this.getDistributionCount(); double[] likelihoods = new double[ K ]; for( int k = 0; k < K; k++ ) { ProbabilityFunction<Vector> pdf = this.getDistributions().get(k).getProbabilityFunction(); likelihoods[k] = pdf.evaluate(input); } return likelihoods; }
@Override public Vector getMean() { RingAccumulator<Vector> mean = new RingAccumulator<Vector>(); final int K = this.getDistributionCount(); for( int k = 0; k < K; k++ ) { mean.accumulate( this.getDistributions().get(k).getMean().scale( this.getPriorWeights()[k] ) ); } return mean.getSum().scale( 1.0 / this.getPriorWeightSum() ); }
@Override public Vector getMean() { RingAccumulator<Vector> mean = new RingAccumulator<Vector>(); final int K = this.getDistributionCount(); for( int k = 0; k < K; k++ ) { mean.accumulate( this.getDistributions().get(k).getMean().scale( this.getPriorWeights()[k] ) ); } return mean.getSum().scale( 1.0 / this.getPriorWeightSum() ); }
/** * Computes the likelihoods of the underlying distributions * @param input Input to consider * @return Vector of likelihoods for the underlying distributions */ public double[] computeRandomVariableLikelihoods( Vector input ) { int K = this.getDistributionCount(); double[] likelihoods = new double[ K ]; for( int k = 0; k < K; k++ ) { ProbabilityFunction<Vector> pdf = this.getDistributions().get(k).getProbabilityFunction(); likelihoods[k] = pdf.evaluate(input); } return likelihoods; }
(ClosedFormComputableDistribution<DataType>) distribution.clone(), data ) );
@Override public Vector getMean() { RingAccumulator<Vector> mean = new RingAccumulator<Vector>(); final int K = this.getDistributionCount(); for( int k = 0; k < K; k++ ) { mean.accumulate( this.getDistributions().get(k).getMean().scale( this.getPriorWeights()[k] ) ); } return mean.getSum().scale( 1.0 / this.getPriorWeightSum() ); }
/** * Computes the likelihoods of the underlying distributions * @param input Input to consider * @return Vector of likelihoods for the underlying distributions */ public double[] computeRandomVariableLikelihoods( Vector input ) { int K = this.getDistributionCount(); double[] likelihoods = new double[ K ]; for( int k = 0; k < K; k++ ) { ProbabilityFunction<Vector> pdf = this.getDistributions().get(k).getProbabilityFunction(); likelihoods[k] = pdf.evaluate(input); } return likelihoods; }
(ClosedFormComputableDistribution<DataType>) distribution.clone(), data ) );
@Override public Double evaluate( Vector input) { double sum = 0.0; final int K = this.getDistributionCount(); for( int k = 0; k < K; k++ ) { ProbabilityFunction<Vector> pdf = this.getDistributions().get(k).getProbabilityFunction(); sum += pdf.evaluate(input) * this.priorWeights[k]; } return sum/this.getPriorWeightSum(); }
return DefaultPair.create( Double.POSITIVE_INFINITY, (ClosedFormComputableDistribution<DataType>) this.distribution.clone() );
@Override public Double evaluate( Vector input) { double sum = 0.0; final int K = this.getDistributionCount(); for( int k = 0; k < K; k++ ) { ProbabilityFunction<Vector> pdf = this.getDistributions().get(k).getProbabilityFunction(); sum += pdf.evaluate(input) * this.priorWeights[k]; } return sum/this.getPriorWeightSum(); }
return DefaultPair.create( Double.POSITIVE_INFINITY, (ClosedFormComputableDistribution<DataType>) this.distribution.clone() );
@Override public Double evaluate( Vector input) { double sum = 0.0; final int K = this.getDistributionCount(); for( int k = 0; k < K; k++ ) { ProbabilityFunction<Vector> pdf = this.getDistributions().get(k).getProbabilityFunction(); sum += pdf.evaluate(input) * this.priorWeights[k]; } return sum/this.getPriorWeightSum(); }
return DefaultPair.create( Double.POSITIVE_INFINITY, (ClosedFormComputableDistribution<DataType>) this.distribution.clone() );