You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为不同训练样本绘制置信区间及训练过程方差

多划分训练实验的均值曲线与置信区间绘制方案

以下两种方案都可以满足你的需求,你可以根据自己的使用场景选择:

方案1:使用Wandb原生聚合功能(零额外代码)

这是最快实现需求的方式,直接通过Wandb看板操作即可:

  • 所有不同数据划分的训练实验,在初始化时打上相同的group标记,示例启动参数:
    import wandb
    # 不同划分只需要修改job_type的值,group保持一致
    wandb.init(
        project="你的项目名",
        group="data_ablation_split",
        job_type=f"split_{split_idx}"
    )
    
  • 所有实验跑完后,进入Wandb项目看板,选中所有同组的目标实验,打开对应指标的折线图设置面板
  • 聚合方式选择mean,同时开启显示置信区间选项,即可自动生成带置信区间填充的均值曲线;如果需要查看方差变化,把聚合方式切换为std即可

方案2:手动计算自定义绘图(灵活性更高)

如果你需要在训练过程中实时输出统计结果,或者自定义绘图样式,可以自己计算统计量后上传:

  • 每间隔固定步长,拉取同组所有实验当前步的指标数值,计算均值、标准差、置信区间:
    import numpy as np
    import scipy.stats as st
    
    # all_step_metrics为当前步所有划分实验的指标值列表
    metric_mean = np.mean(all_step_metrics)
    metric_std = np.std(all_step_metrics)
    # 计算95%置信区间上下界
    ci_low, ci_high = st.t.interval(
        confidence=0.95,
        df=len(all_step_metrics)-1,
        loc=metric_mean,
        scale=st.sem(all_step_metrics)
    )
    
  • 可以直接将上述统计量作为单独的指标上传到Wandb,也可以通过绘图库生成带置信区间的曲线图后上传:
    import seaborn as sns
    import pandas as pd
    
    # 所有实验的历史数据整理为长表,字段为步长、指标值、划分编号
    exp_df = pd.DataFrame(
        all_history_data,
        columns=["step", "accuracy", "split_id"]
    )
    # 自动绘制均值+95%置信区间填充的曲线
    sns.lineplot(data=exp_df, x="step", y="accuracy", errorbar=("ci", 95))
    # 如果要显示方差填充,把errorbar参数改为("sd", 1)即可
    
  • 生成的图片可以通过wandb.log({"metric_plot": wandb.Image(plt)})直接上传到Wandb看板

内容的提问来源于stack exchange,提问作者Anđela Todorović

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:18:03