我很好奇,从这段代码片段获得了什么平均值?累加器是空的。
boost::accumulators::accumulator_set<
int,
boost::accumulators::features<boost::accumulators::tag::mean>
> Accumulator;
int Mean = boost::accumulators::mean(Accumulator);
我测试时平均值不为零。有什么方法可以告诉我,空数据集的平均值是多少?为什么“均值”的结果值不为零?
我正在查看累加器库的文档,但无法找到这个问题的答案。
答案 0 :(得分:2)
任何值都是空值集的有效均值。对于任何x * 0 = 0
,x
都适用。
您可以向count
添加accumulator_set
功能,然后查询该功能是否为0。
答案 1 :(得分:0)
您不需要添加 count 功能,因为平均值累加器基于 count 和 sum 个累加器
平均值取决于求和累加器和计数累加器……均值累加器的结果仅仅是求和累加器的结果除以计数累加器的结果。
所以您只需要验证计数是否大于0:
bool isEmpty = boost::accumulators::count(Accumulator) == 0;