48 lines
1.1 KiB
Text
48 lines
1.1 KiB
Text
MODULE DiversPredict;
|
|
(* Diversity prediction theorem *)
|
|
|
|
FROM STextIO IMPORT
|
|
WriteLn, WriteString;
|
|
FROM SRealIO IMPORT
|
|
WriteFixed;
|
|
|
|
TYPE
|
|
TEstims = ARRAY [0 .. 1], [0 .. 4] OF REAL;
|
|
VAR
|
|
Estims: TEstims;
|
|
TrueVal, Sum, AvgErr, Avg, CrowdErr, Diff: REAL;
|
|
I, J: CARDINAL;
|
|
BEGIN
|
|
Estims := TEstims{{48.0, 47.0, 51.0, 0.0, 0.0},
|
|
{48.0, 47.0, 51.0, 42.0, 0.0}};
|
|
TrueVal := 49.0;
|
|
FOR I := 0 TO 1 DO
|
|
Sum := 0.0;
|
|
J := 0;
|
|
WHILE Estims[I, J] <> 0.0 DO
|
|
Diff := Estims[I, J] - TrueVal;
|
|
Sum := Sum + Diff * Diff;
|
|
J := J + 1;
|
|
END;
|
|
AvgErr := Sum / FLOAT(J);
|
|
WriteString("Average error: ");
|
|
WriteFixed(AvgErr, 3, 7);
|
|
WriteLn;
|
|
Sum := 0.0;
|
|
J := 0;
|
|
WHILE Estims[I, J] <> 0.0 DO
|
|
Sum := Sum + Estims[I, J];
|
|
J := J + 1;
|
|
END;
|
|
Avg := Sum / FLOAT(J);
|
|
Diff := TrueVal - Avg;
|
|
CrowdErr := Diff * Diff;
|
|
WriteString("Crowd error : ");
|
|
WriteFixed(CrowdErr, 3, 7);
|
|
WriteLn;
|
|
WriteString("Diversity : ");
|
|
WriteFixed(AvgErr - CrowdErr, 3, 7);
|
|
WriteLn;
|
|
WriteLn;
|
|
END;
|
|
END DiversPredict.
|