我想计算运行时进入系统的每个值的标准偏差。
我不确定如何实现它。
我实现了在线平均
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
我想计算运行时进入系统的每个值的标准偏差。
我不确定如何实现它。
我实现了在线平均
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
@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