一点点脑筋急转弯,我想知道是否有一种简单的方法使用Boost来使用accumulator_set获得值与均值的最大偏差?距离平均值最远点。
值在accumulator_set<float, stats<tag::variance>> val
但我怀疑可能需要其他标签。
// defined by: MAX(abs(val[x] - mean))
float max_stdev(accumulator_set<float, stats<tag::variance>>& val) {
// mean(val) gives mean
// can't just use max on the set
}
// e.g. val contains 1,2,3
accumulator_set<float, stats<tag::variance>> val
val(1), val(2), val(3);
float max_val = max_stdev(val); // would return 1
答案 0 :(得分:4)
最大偏差是最大值减去平均值或平均值减去最小值,以较大者为准。这表明以下简单的实现:
double max_deviation(accumulator_set<double, features<tag::min, tag::max, tag::mean> > const &acc) {
return std::max(max(acc) - mean(acc), mean(acc) - min(acc));
}