53 lines
1.1 KiB
Text
53 lines
1.1 KiB
Text
program diverspredict;
|
|
(* Diversity prediction theorem *)
|
|
|
|
var
|
|
true_val: real,
|
|
estims: arrayof arrayof real,
|
|
sum, avg, avg_err, crowd_err, diff: real,
|
|
i, j: integer;
|
|
begin
|
|
array estims dim (0 : 1);
|
|
for i := 0 to 1
|
|
do
|
|
array estims(i) dim (0 : 4)
|
|
od;
|
|
|
|
estims(0, 0) := 48.0;
|
|
estims(0, 1) := 47.0;
|
|
estims(0, 2) := 51.0;
|
|
estims(0, 3) := 0.0;
|
|
estims(0, 4) := 0.0;
|
|
estims(1, 0) := 48.0;
|
|
estims(1, 1) := 47.0;
|
|
estims(1, 2) := 51.0;
|
|
estims(1, 3) := 42.0;
|
|
estims(1, 4) := 0.0;
|
|
true_val := 49.0;
|
|
for i := 0 to 1
|
|
do
|
|
sum := 0.0;
|
|
j := 0;
|
|
while estims(i, j) =/= 0
|
|
do
|
|
diff := estims(i, j) - true_val;
|
|
sum := sum + diff * diff;
|
|
j := j + 1;
|
|
od;
|
|
avg_err := sum / j;
|
|
writeln("Average error : ", avg_err: 7: 3);
|
|
sum := 0;
|
|
j := 0;
|
|
while estims(i, j) =/= 0
|
|
do
|
|
sum := sum + estims(i, j);
|
|
j := j + 1;
|
|
od;
|
|
avg := sum / j;
|
|
diff := true_val - avg;
|
|
crowd_err := diff * diff;
|
|
writeln("Crowd error : ", crowd_err: 7: 3);
|
|
writeln("Diversity : ", avg_err - crowd_err: 7: 3);
|
|
writeln;
|
|
od
|
|
end
|