0

我想计算运行时进入系统的每个值的标准偏差。

我不确定如何实现它。

我实现了在线平均

def online_avg(last_avg, last_N, new_val):
    return ((last_avg*last_N)+new_val)/(last_N+1)

我希望在线标准差的原型为:

def online_std(last_avg, last_N, last_std, new_val):
    pass
4

1 回答 1

0

@unutbu 在 StackOverflow 中提到了一些问题。

我在那里的答案中提到的文章中找到了答案:

def online_avg(last_avg, last_N, new_val):
    return ((last_avg*last_N)+new_val)/(last_N+1)

def online_std(last_avg, last_N, last_std, new_val):
    if last_N == 0:
        return 0
    new_avg = online_avg(last_avg, last_N, new_val)
    new_std = last_std + (new_val - last_avg)*(new_val - new_avg)
    return new_std
于 2013-06-23T18:14:59.930 回答