29 lines
1.0 KiB
Java
29 lines
1.0 KiB
Java
import java.util.Arrays;
|
|
|
|
public class DiversityPredictionTheorem {
|
|
private static double square(double d) {
|
|
return d * d;
|
|
}
|
|
|
|
private static double averageSquareDiff(double d, double[] predictions) {
|
|
return Arrays.stream(predictions)
|
|
.map(it -> square(it - d))
|
|
.average()
|
|
.orElseThrow();
|
|
}
|
|
|
|
private static String diversityTheorem(double truth, double[] predictions) {
|
|
double average = Arrays.stream(predictions)
|
|
.average()
|
|
.orElseThrow();
|
|
return String.format("average-error : %6.3f%n", averageSquareDiff(truth, predictions))
|
|
+ String.format("crowd-error : %6.3f%n", square(truth - average))
|
|
+ String.format("diversity : %6.3f%n", averageSquareDiff(average, predictions));
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
System.out.println(diversityTheorem(49.0, new double[]{48.0, 47.0, 51.0}));
|
|
System.out.println(diversityTheorem(49.0, new double[]{48.0, 47.0, 51.0, 42.0}));
|
|
}
|
|
}
|