22 lines
570 B
Text
22 lines
570 B
Text
func avg_error(m, v) {
|
|
v.map { (_ - m)**2 }.sum / v.len
|
|
}
|
|
|
|
func diversity_calc(truth, pred) {
|
|
var ae = avg_error(truth, pred)
|
|
var cp = pred.sum/pred.len
|
|
var ce = (cp - truth)**2
|
|
var pd = avg_error(cp, pred)
|
|
return [ae, ce, pd]
|
|
}
|
|
|
|
func diversity_format(stats) {
|
|
gather {
|
|
for t,v in (%w(average-error crowd-error diversity) ~Z stats) {
|
|
take(("%13s" % t) + ':' + ('%7.3f' % v))
|
|
}
|
|
}
|
|
}
|
|
|
|
diversity_format(diversity_calc(49, [48, 47, 51])).each{.say}
|
|
diversity_format(diversity_calc(49, [48, 47, 51, 42])).each{.say}
|