@Override public double getStandardDeviation() { return delegate.getStandardDeviation(); }
@Override public double getStandardDeviation() { return delegate.getStandardDeviation(); }
@Override public double getStandardDeviation() { return delegate.getStandardDeviation(); }
StringUtils.leftPad(decimalFormatter.format(normStats.getAverage() * 100.00000001), 10)).append("%\n"); returnString.append(StringUtils.rightPad("Reliability (standard deviation)", 40)).append( StringUtils.leftPad(decimalFormatter.format(normStats.getStandardDeviation()), 10)).append('\n');
StringUtils.leftPad(decimalFormatter.format(normStats.getAverage() * 100.00000001), 10)).append("%\n"); returnString.append(StringUtils.rightPad("Reliability (standard deviation)", 40)).append( StringUtils.leftPad(decimalFormatter.format(normStats.getStandardDeviation()), 10)).append('\n'); returnString.append(StringUtils.rightPad("Weighted precision", 40)).append( StringUtils.leftPad(decimalFormatter.format(confusionMatrix.getWeightedPrecision()), 10)).append('\n');
StringUtils.leftPad(decimalFormatter.format(normStats.getAverage() * 100.00000001), 10)).append("%\n"); returnString.append(StringUtils.rightPad("Reliability (standard deviation)", 40)).append( StringUtils.leftPad(decimalFormatter.format(normStats.getStandardDeviation()), 10)).append('\n'); returnString.append(StringUtils.rightPad("Weighted precision", 40)).append( StringUtils.leftPad(decimalFormatter.format(confusionMatrix.getWeightedPrecision()), 10)).append('\n');
private static double computeThreshold(PreferenceArray prefs) { if (prefs.length() < 2) { // Not enough data points -- return a threshold that allows everything return Double.NEGATIVE_INFINITY; } RunningAverageAndStdDev stdDev = new FullRunningAverageAndStdDev(); int size = prefs.length(); for (int i = 0; i < size; i++) { stdDev.addDatum(prefs.getValue(i)); } return stdDev.getAverage() + stdDev.getStandardDeviation(); }
private static double computeThreshold(PreferenceArray prefs) { if (prefs.length() < 2) { // Not enough data points -- return a threshold that allows everything return Double.NEGATIVE_INFINITY; } RunningAverageAndStdDev stdDev = new FullRunningAverageAndStdDev(); int size = prefs.length(); for (int i = 0; i < size; i++) { stdDev.addDatum(prefs.getValue(i)); } return stdDev.getAverage() + stdDev.getStandardDeviation(); }
private static double computeThreshold(PreferenceArray prefs) { if (prefs.length() < 2) { // Not enough data points -- return a threshold that allows everything return Double.NEGATIVE_INFINITY; } RunningAverageAndStdDev stdDev = new FullRunningAverageAndStdDev(); int size = prefs.length(); for (int i = 0; i < size; i++) { stdDev.addDatum(prefs.getValue(i)); } return stdDev.getAverage() + stdDev.getStandardDeviation(); }
@Test public void testFullBig() { RunningAverageAndStdDev average = new FullRunningAverageAndStdDev(); Random r = RandomUtils.getRandom(); for (int i = 0; i < 100000; i++) { average.addDatum(r.nextDouble() * 1000.0); } assertEquals(500.0, average.getAverage(), SMALL_EPSILON); assertEquals(1000.0 / Math.sqrt(12.0), average.getStandardDeviation(), SMALL_EPSILON); }
@Test public void testFull() { RunningAverageAndStdDev average = new FullRunningAverageAndStdDev(); assertEquals(0, average.getCount()); assertTrue(Double.isNaN(average.getAverage())); assertTrue(Double.isNaN(average.getStandardDeviation())); average.addDatum(6.0); assertEquals(1, average.getCount()); assertEquals(6.0, average.getAverage(), EPSILON); assertTrue(Double.isNaN(average.getStandardDeviation())); average.addDatum(6.0); assertEquals(2, average.getCount()); assertEquals(6.0, average.getAverage(), EPSILON); assertEquals(0.0, average.getStandardDeviation(), EPSILON); average.removeDatum(6.0); assertEquals(1, average.getCount()); assertEquals(6.0, average.getAverage(), EPSILON); assertTrue(Double.isNaN(average.getStandardDeviation())); average.addDatum(-4.0); assertEquals(2, average.getCount()); assertEquals(1.0, average.getAverage(), EPSILON); assertEquals(5.0 * 1.4142135623730951, average.getStandardDeviation(), EPSILON); average.removeDatum(4.0); assertEquals(1, average.getCount()); assertEquals(-2.0, average.getAverage(), EPSILON); assertTrue(Double.isNaN(average.getStandardDeviation())); }
@Test public void testStddev() { RunningAverageAndStdDev runningAverage = new FullRunningAverageAndStdDev(); assertEquals(0, runningAverage.getCount()); assertTrue(Double.isNaN(runningAverage.getAverage())); runningAverage.addDatum(1.0); assertEquals(1, runningAverage.getCount()); assertEquals(1.0, runningAverage.getAverage(), EPSILON); assertTrue(Double.isNaN(runningAverage.getStandardDeviation())); runningAverage.addDatum(1.0); assertEquals(2, runningAverage.getCount()); assertEquals(1.0, runningAverage.getAverage(), EPSILON); assertEquals(0.0, runningAverage.getStandardDeviation(), EPSILON); runningAverage.addDatum(7.0); assertEquals(3, runningAverage.getCount()); assertEquals(3.0, runningAverage.getAverage(), EPSILON); assertEquals(3.464101552963257, runningAverage.getStandardDeviation(), EPSILON); runningAverage.addDatum(5.0); assertEquals(4, runningAverage.getCount()); assertEquals(3.5, runningAverage.getAverage(), EPSILON); assertEquals(3.0, runningAverage.getStandardDeviation(), EPSILON); }
@Test public void testAverageAndStdDev() { RunningAverageAndStdDev avg = new FullRunningAverageAndStdDev(); RunningAverageAndStdDev inverted = new InvertedRunningAverageAndStdDev(avg); assertEquals(0, inverted.getCount()); avg.addDatum(1.0); assertEquals(1, inverted.getCount()); assertEquals(-1.0, inverted.getAverage(), EPSILON); avg.addDatum(2.0); assertEquals(2, inverted.getCount()); assertEquals(-1.5, inverted.getAverage(), EPSILON); assertEquals(Math.sqrt(2.0)/2.0, inverted.getStandardDeviation(), EPSILON); }