数学原理
略
代码
def calculate_mean_var(sample_count, new_sample_num, new_history, old_mean, old_var):
# sample_count:旧样本总数
# new_sample_num:新样本总数
# new_history:新的样本
# old_mean:旧均值
# old_var:旧方差
new_mean = np.mean(new_history, axis=0)
new_var = np.sum(np.square(new_history - new_mean), axis=0)
new_var = (sample_count * np.square(old_var) + new_var)
new_var /= (new_sample_num + sample_count)
new_var = np.sqrt(new_var)
new_mean = (sample_count * old_mean + new_sample_num * new_mean)
new_mean /= (new_sample_num + sample_count)
return new_mean, new_var