Example usage for org.apache.commons.math3.distribution EnumeratedDistribution EnumeratedDistribution

List of usage examples for org.apache.commons.math3.distribution EnumeratedDistribution EnumeratedDistribution

Introduction

In this page you can find the example usage for org.apache.commons.math3.distribution EnumeratedDistribution EnumeratedDistribution.

Prototype

public EnumeratedDistribution(final List<Pair<T, Double>> pmf)
        throws NotPositiveException, MathArithmeticException, NotFiniteNumberException, NotANumberException 

Source Link

Document

Create an enumerated distribution using the given probability mass function enumeration.

Usage

From source file:com.anathema_roguelike.main.utilities.Utils.java

public static <T extends HasWeightedProbability> T getWeightedRandomSample(Collection<T> col) {
    ArrayList<Pair<T, Double>> list = new ArrayList<>();

    col.forEach(i -> {//www  .  ja  v  a 2  s .  co m
        list.add(new Pair<>(i, i.getWeightedProbability()));
    });

    return new EnumeratedDistribution<>(list).sample();
}

From source file:com.mh2c.LogGenerator.java

@SafeVarargs
private static EnumeratedDistribution<String> makeDistribution(Pair<String, Double>... items) {
    return new EnumeratedDistribution<String>(Arrays.asList(items));
}

From source file:com.github.tteofili.calabrize.impl.RNN.java

/**
 * sample a sequence of integers from the model, using current (hPrev) memory state, seedIx is seed letter for first time step
 *///from w  w w  . j  av  a 2 s  .  co m
public String sample(int seedIx) {

    INDArray x = Nd4j.zeros(vocabSize, 1);
    x.putScalar(seedIx, 1);
    int sampleSize = 144;
    INDArray ixes = Nd4j.create(sampleSize);

    INDArray h = hPrev.dup();

    for (int t = 0; t < sampleSize; t++) {
        h = Transforms.tanh(wxh.mmul(x).add(whh.mmul(h)).add(bh));
        INDArray y = (why.mmul(h)).add(by);
        INDArray pm = Nd4j.getExecutioner().execAndReturn(new SoftMax(y)).ravel();

        List<Pair<Integer, Double>> d = new LinkedList<>();
        for (int pi = 0; pi < vocabSize; pi++) {
            d.add(new Pair<>(pi, pm.getDouble(0, pi)));
        }
        try {
            EnumeratedDistribution<Integer> distribution = new EnumeratedDistribution<>(d);

            int ix = distribution.sample();

            x = Nd4j.zeros(vocabSize, 1);
            x.putScalar(ix, 1);
            ixes.putScalar(t, ix);
        } catch (Exception e) {
        }
    }

    return getSampleString(ixes);
}

From source file:org.apache.cassandra.stress.operations.SampledOpDistributionFactory.java

public OpDistribution get(Timing timing, int sampleCount) {
    PartitionGenerator generator = newGenerator();
    List<Pair<Operation, Double>> operations = new ArrayList<>();
    for (Map.Entry<T, Double> ratio : ratios.entrySet()) {
        List<? extends Operation> ops = get(timing.newTimer(ratio.getKey().toString(), sampleCount), generator,
                ratio.getKey());//from   w  w  w.j  a va  2 s  . c om
        for (Operation op : ops)
            operations.add(new Pair<>(op, ratio.getValue() / ops.size()));
    }
    return new SampledOpDistribution(new EnumeratedDistribution<>(operations), clustering.get());
}

From source file:org.apache.cassandra.stress.operations.SampledOpDistributionFactory.java

public Iterable<OpDistributionFactory> each() {
    List<OpDistributionFactory> out = new ArrayList<>();
    for (final Map.Entry<T, Double> ratio : ratios.entrySet()) {
        out.add(new OpDistributionFactory() {
            public OpDistribution get(Timing timing, int sampleCount) {
                List<? extends Operation> ops = SampledOpDistributionFactory.this.get(
                        timing.newTimer(ratio.getKey().toString(), sampleCount), newGenerator(),
                        ratio.getKey());
                if (ops.size() == 1)
                    return new FixedOpDistribution(ops.get(0));
                List<Pair<Operation, Double>> ratios = new ArrayList<>();
                for (Operation op : ops)
                    ratios.add(new Pair<>(op, 1d / ops.size()));
                return new SampledOpDistribution(new EnumeratedDistribution<Operation>(ratios),
                        new DistributionFixed(1));
            }//from  w  w  w.j a va2  s .  co  m

            public String desc() {
                return ratio.getKey().toString();
            }

            public Iterable<OpDistributionFactory> each() {
                return Collections.<OpDistributionFactory>singleton(this);
            }
        });
    }
    return out;
}

From source file:org.apache.james.utils.DiscreteDistribution.java

private DiscreteDistribution(List<DistributionEntry<T>> distribution) {
    enumeratedDistribution = new EnumeratedDistribution<>(
            distribution.stream().map(DistributionEntry::toPair).collect(Guavate.toImmutableList()));
}