当前位置: 首页>>代码示例>>Java>>正文


Java EmpiricalDistribution类代码示例

本文整理汇总了Java中org.apache.commons.math3.random.EmpiricalDistribution的典型用法代码示例。如果您正苦于以下问题:Java EmpiricalDistribution类的具体用法?Java EmpiricalDistribution怎么用?Java EmpiricalDistribution使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


EmpiricalDistribution类属于org.apache.commons.math3.random包,在下文中一共展示了EmpiricalDistribution类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: calculateIntervalFreqs

import org.apache.commons.math3.random.EmpiricalDistribution; //导入依赖的package包/类
/**
 * Calculate the frequencies of each interval of a column.
 *
 * @param column Column of which the frequencies are to be calculated.
 * @param intervals Number of intervals to be split.
 */
protected List<SortedMap<?, Integer>> calculateIntervalFreqs(int column, int intervals) {
    SortedMap<Integer, Integer> frequencies = new TreeMap<Integer, Integer>();
    double[] data = new double[this.columnData.get(column).size()];
    // Create an array from the column data.
    for (int row = 0; row < columnData.get(column).size(); row++) {
        if (this.columnData.get(column).get(row) != null &&
                !MLConstants.MISSING_VALUES.contains(this.columnData.get(column).get(row))) {
            data[row] = Double.parseDouble(this.columnData.get(column).get(row));
        }
    }
    // Create equal partitions.
    this.histogram[column] = new EmpiricalDistribution(intervals);
    this.histogram[column].load(data);

    // Get the frequency of each partition.
    int bin = 0;
    for (SummaryStatistics stats : this.histogram[column].getBinStats()) {
        frequencies.put(bin++, (int) stats.getN());
    }
    this.graphFrequencies.set(column, frequencies);

    return graphFrequencies;
}
 
开发者ID:wso2-attic,项目名称:carbon-ml,代码行数:30,代码来源:SummaryStatsGenerator.java

示例2: printTaskHistogram

import org.apache.commons.math3.random.EmpiricalDistribution; //导入依赖的package包/类
private void printTaskHistogram(ArrayList<DTask> tasks) {

        double[] data = new double[tasks.size()];
        for (int i=0; i<tasks.size(); i++) {
            data[i] = tasks.get(i).getTime();
        }

        EmpiricalDistribution d = new EmpiricalDistribution(30);
        d.load(data);

        for (SummaryStatistics stats : d.getBinStats()) {
            StringBuilder buf = new StringBuilder();
            for (int i=0, len=Math.round(stats.getN()/50f); i<len; i++) {
                buf.append('#');
            }
            System.err.println(buf);
        }
    }
 
开发者ID:MASPlanes,项目名称:MASPlanes,代码行数:19,代码来源:Generator.java

示例3: createDayMockDistribution

import org.apache.commons.math3.random.EmpiricalDistribution; //导入依赖的package包/类
public static AbstractRealDistribution createDayMockDistribution(final int seed) {
    final EmpiricalDistribution dayDistributionMock = new EmpiricalDistribution(new Well19937c(seed));

    int[] demandsOverDay = new int[]{/* 0 */9,/* 1 */6,/* 2 */6,
    /* 3 */6,/* 4 */7,/* 5 */12,/* 6 */25,/* 7 */37,/* 8 */49,
    /* 9 */38,/* 10 */30,/* 11 */30,/* 12 */30,/* 13 */30,/* 14 */31,
    /* 15 */36,/* 16 */45,/* 17 */41,/* 18 */31,/* 19 */27,/* 20 */25,/* 21 */22,/* 22 */18,/* 23 */11};

    List<Double> dayHourDistribution = Lists.newArrayList();

    int day = 0;
    for (int demand : demandsOverDay) {
        double hourInMillis = Duration.standardHours(day).getMillis();
        for (int i = 0; i < demand; i++) {
            dayHourDistribution.add(hourInMillis);
        }
        day++;
    }

    dayDistributionMock.load(Doubles.toArray(dayHourDistribution));

    return dayDistributionMock;

}
 
开发者ID:agents4its,项目名称:mobilitytestbed,代码行数:25,代码来源:LenientPassengerGenerator.java

示例4: Histogram

import org.apache.commons.math3.random.EmpiricalDistribution; //导入依赖的package包/类
private Histogram(HistogramBuilder histogramBuilder){
    this.data = histogramBuilder.data;
    this.width = histogramBuilder.width;
    this.bins = histogramBuilder.bins;

    // Create a distribution of data for bins number of bins
    dist = new EmpiricalDistribution(bins);
    dist.load(data.getSecond());
}
 
开发者ID:dvdmllr,项目名称:textplots,代码行数:10,代码来源:Histogram.java

示例5: makeEmpirical

import org.apache.commons.math3.random.EmpiricalDistribution; //导入依赖的package包/类
/** Create empirical distribution from given samples.
 * 
 * @param samples Samples (does not need to be distinct) to use.
 * @return Empirical distribution built from the samples.
 */
public static EmpiricalDistribution makeEmpirical(double[] samples) {
	/* Be deterministic for now. */
	RandomGenerator gen = new JDKRandomGenerator();
	gen.setSeed(0);
	
	EmpiricalDistribution result = new EmpiricalDistribution(samples.length / 10 + 1, gen);
	result.load(samples);
	
	return result;
}
 
开发者ID:D-iii-S,项目名称:spl-evaluation-java,代码行数:16,代码来源:DistributionUtils.java

示例6: getDistribution

import org.apache.commons.math3.random.EmpiricalDistribution; //导入依赖的package包/类
private EmpiricalDistribution getDistribution(final Collection<Long> listValues) {
	double[] values = new double[listValues.size()];
	int j = 0;
	for (Long measurements : listValues) {
		values[j] = measurements.doubleValue();
		j++;
	}
	EmpiricalDistribution distribution = new EmpiricalDistribution(listValues.size() > 20 ? listValues.size() / 20 : 1);
	distribution.load(values);
	return distribution;
}
 
开发者ID:DaGeRe,项目名称:KoPeMe,代码行数:12,代码来源:KoPeMeStaticRigorTestcase.java

示例7: createDayMockDistribution

import org.apache.commons.math3.random.EmpiricalDistribution; //导入依赖的package包/类
public static AbstractRealDistribution createDayMockDistribution(final int seed) {
    int intermediateStepsCount = 60;
    final EmpiricalDistribution dayDistributionMock = new EmpiricalDistribution(24 * intermediateStepsCount, new Well19937c(seed));

    int[] demandsOverDay = new int[]{/* 0 */9,/* 1 */6,/* 2 */6,
    /* 3 */6,/* 4 */7,/* 5 */12,/* 6 */25,/* 7 */37,/* 8 */49,
    /* 9 */38,/* 10 */30,/* 11 */30,/* 12 */30,/* 13 */30,/* 14 */31,
    /* 15 */36,/* 16 */45,/* 17 */41,/* 18 */31,/* 19 */27,/* 20 */25,/* 21 */22,/* 22 */18,/* 23 */11};


    List<Double> dayHourDistribution = Lists.newArrayList();

    int hour = 0;
    for (int i = 0; i < demandsOverDay.length - 1; ++i) {

        double startHourInMillis = Duration.standardHours(hour).getMillis();
        double endHourInMillis = Duration.standardHours(hour + 1).getMillis();

        double demandsStep = ((double) (demandsOverDay[hour] -
                demandsOverDay[(hour + 1) % 24])) / intermediateStepsCount;
        double timeStep = (endHourInMillis - startHourInMillis) / intermediateStepsCount;

        for (int j = 0; j < intermediateStepsCount; ++j) {
            int demands = (int) (demandsOverDay[i] + demandsStep * j);
            for (int k = 0; k < demands; ++k)
                dayHourDistribution.add(startHourInMillis + j * timeStep);
        }

        hour++;
    }

    dayDistributionMock.load(Doubles.toArray(dayHourDistribution));

    return dayDistributionMock;

}
 
开发者ID:agents4its,项目名称:mobilitytestbed,代码行数:37,代码来源:PassengerGeneratorWithContinousRequestCallTimeDistribution.java

示例8: doBins

import org.apache.commons.math3.random.EmpiricalDistribution; //导入依赖的package包/类
public static BinnedData doBins(IDocument<?> o)
{
  // collate the values into an array
  double[] data = new double[o.size()];
  
  // Add the data from the array
  Iterator<Double> oIter = o.getIndexIterator();
  int ctr = 0;
  while(oIter.hasNext())
  {
    data[ctr++] = oIter.next();
  }
  
  // Get a DescriptiveStatistics instance
  DescriptiveStatistics stats = new DescriptiveStatistics(data);

  // also do some frequency binning
  double range = stats.getMax() - stats.getMin();

  // aah, double-check we don't have zero range
  final int binCount;
  final int maxRange = 30;
  if (range > maxRange)
  {
    binCount = maxRange;
  }
  else
  {
    binCount = (int) Math.max(2, range);
  }

  BinnedData res = new BinnedData();

  if (range > THRESHOLD_VALUE)
  {

    long[] histogram = new long[binCount];
    EmpiricalDistribution distribution = new EmpiricalDistribution(binCount);
    distribution.load(data);

    int k = 0;
    for (SummaryStatistics sStats : distribution.getBinStats())
    {
      histogram[k++] = sStats.getN();
    }

    long rangeSoFar = (long) stats.getMin();
    long rangeStep = (long) (range / binCount);
    for (int i = 0; i < histogram.length; i++)
    {
      long l = histogram[i];
      res.add(new Bin(rangeSoFar, rangeSoFar + rangeStep, l));
      rangeSoFar += rangeStep;
    }
  }
  return res;
}
 
开发者ID:debrief,项目名称:limpet,代码行数:58,代码来源:TimeFrequencyBins.java

示例9: binTheseValues

import org.apache.commons.math3.random.EmpiricalDistribution; //导入依赖的package包/类
public static BinnedData binTheseValues(double[] data)
{
  // Get a DescriptiveStatistics instance
  DescriptiveStatistics stats = new DescriptiveStatistics(data);

  // also do some frequency binning
  double range = stats.getMax() - stats.getMin();

  // aah, double-check we don't have zero range
  final int binCount;
  if (range > DEFAULT_NUM_BINS)
  {
    binCount = DEFAULT_NUM_BINS;
  }
  else if(range > MIN_NUM_BINS)
  {
    binCount = (int) range;
  }
  else 
  {
    binCount = MIN_NUM_BINS;
  }

  BinnedData res = new BinnedData();

  if (range > THRESHOLD_VALUE)
  {

    long[] histogram = new long[binCount];
    EmpiricalDistribution distribution = new EmpiricalDistribution(binCount);
    distribution.load(data);

    int k = 0;
    for (SummaryStatistics sStats : distribution.getBinStats())
    {
      histogram[k++] = sStats.getN();
    }

    double rangeSoFar = stats.getMin();
    double rangeStep = range / binCount;
    for (int i = 0; i < histogram.length; i++)
    {
      long l = histogram[i];
      res.add(new Bin(rangeSoFar, rangeSoFar + rangeStep, l));
      rangeSoFar += rangeStep;
    }
  }
  return res;
}
 
开发者ID:debrief,项目名称:limpet,代码行数:50,代码来源:QuantityFrequencyBins.java

示例10: runMainExecution

import org.apache.commons.math3.random.EmpiricalDistribution; //导入依赖的package包/类
/**
 * Runs the main execution of the test, i.e.useKieker the execution where performance measures are counted.
 * 
 * @param testCase Runnable that should be run
 * @param name Name of the test
 * @param tr Where the results should be saved
 * @param executionTimes How often the test should be executed
 * @throws Throwable
 */
private void runMainExecution(final String name, final TestResult tr, final int executionTimes) throws Throwable {
	int executions;
	String firstPart = "--- Starting execution " + name + " ";
	String endPart = "/" + executionTimes + " ---";
	for (executions = 1; executions <= executionTimes; executions++) {
		LOG.debug(firstPart + executions + endPart);
		setUp();
		tr.startCollection();
		KoPeMeStaticRigorTestcase.super.runTest();
		tr.stopCollection();
		tearDown();
		tr.getValue(TimeDataCollector.class.getName());
		tr.setRealExecutions(executions);
		LOG.debug("--- Stopping execution " + executions + endPart);
		if (Thread.interrupted()) {
			return;
		} else {
			LOG.trace("Nicht interrupted!");
		}
	}
	LOG.debug("Executions: " + (executions - 1));
	tr.setRealExecutions(executions - 1);
	for (String collector : tr.getKeys()) {
		List<Long> values = new ArrayList<>(tr.getValues(collector).values());
		EmpiricalDistribution distribution = getDistribution(values);
		Set<Long> outliers = new HashSet<>();
		for (long measurement : values) {
			try {
				double cdfValue = distribution.cumulativeProbability(measurement);
				final boolean isOutlier = cdfValue > CDF_BOUNDARY;
				if (isOutlier) {
					outliers.add(measurement);
				}
			} catch (NotStrictlyPositiveException ne) {
				LOG.debug("Harter Ausreißer: " + measurement);
			}

		}
		for (long outlier : outliers) {
			values.remove(outlier);
		}
		tr.setValues(collector, values);
	}
}
 
开发者ID:DaGeRe,项目名称:KoPeMe,代码行数:54,代码来源:KoPeMeStaticRigorTestcase.java

示例11: Statistics

import org.apache.commons.math3.random.EmpiricalDistribution; //导入依赖的package包/类
public Statistics(List<Integer> list) {
	scores = intsToDoubles(list);
	DescriptiveStatistics dStats = new DescriptiveStatistics(scores);

	summaryStatistics.put("min", dStats.getMin()); // Minimum
	summaryStatistics.put("q1", dStats.getPercentile(25)); // Lower Quartile (Q1)
	summaryStatistics.put("q2", dStats.getPercentile(50)); // Middle Quartile (Median - Q2)
	summaryStatistics.put("q3", dStats.getPercentile(75)); // High Quartile (Q3)
	summaryStatistics.put("max", dStats.getMax()); // Maxiumum

	summaryStatistics.put("mean", dStats.getMean()); // Mean
	summaryStatistics.put("sd", dStats.getStandardDeviation()); // Standard Deviation

	EmpiricalDistribution distribution = new EmpiricalDistribution(NUM_BINS);
	distribution.load(scores);
	List<SummaryStatistics> binStats = distribution.getBinStats();
	double[] upperBounds = distribution.getUpperBounds();

	Double lastUpperBound = upperBounds[0];
	bins.add(new Pair<Pair<Double, Double>, Long>(new Pair<Double, Double>(summaryStatistics.get("min"), lastUpperBound), binStats.get(0).getN()));
	for (int i = 1; i < binStats.size(); i++) {
		bins.add(new Pair<Pair<Double, Double>, Long>(new Pair<Double, Double>(lastUpperBound, upperBounds[i]), binStats.get(i).getN()));
		lastUpperBound = upperBounds[i];
	}

	if (list.size() > 5 && dStats.getStandardDeviation() > 0) // Only remove outliers if relatively normal
	{
		double mean = dStats.getMean();
		double stDev = dStats.getStandardDeviation();
		NormalDistribution normalDistribution = new NormalDistribution(mean, stDev);

		Iterator<Integer> listIterator = list.iterator();
		double significanceLevel = .50 / list.size(); // Chauvenet's Criterion for Outliers
		while (listIterator.hasNext()) {
			int num = listIterator.next();
			double pValue = normalDistribution.cumulativeProbability(num);
			if (pValue < significanceLevel) {
				outliers.add(num);
				listIterator.remove();
			}
		}

		if (list.size() != dStats.getN()) // If and only if outliers have been removed
		{
			double[] significantData = intsToDoubles(list);
			dStats = new DescriptiveStatistics(significantData);

			summaryStatistics.put("min", dStats.getMin());
			summaryStatistics.put("max", dStats.getMax());
			summaryStatistics.put("mean", dStats.getMean());
			summaryStatistics.put("sd", dStats.getStandardDeviation());
		}
	}
}
 
开发者ID:sushain97,项目名称:contestManagement,代码行数:55,代码来源:Statistics.java


注:本文中的org.apache.commons.math3.random.EmpiricalDistribution类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。