List of usage examples for org.apache.commons.math3.distribution EnumeratedDistribution EnumeratedDistribution
public EnumeratedDistribution(final List<Pair<T, Double>> pmf) throws NotPositiveException, MathArithmeticException, NotFiniteNumberException, NotANumberException
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())); }