想象你是一家航空公司的负责人,斥巨资采购了一台崭新的飞行模拟器。机器能不能通过验收,不看它画面多流畅、仪表多逼真——那些只是“像不像”,真正的问题是:在模拟器里练出来的学员,拉上真实的波音 737,能不能平稳落地?在机器学习世界里,“飞行模拟器”就是合成表格数据,它由生成模型制造,用来替代或补充真实数据训练模型。但合成数据到底好不好用,不能靠肉眼判断“像不像”,必须把用它训练出来的模型放到真实数据上考一场试。这篇文章要讲的,就是这套“考试”的完整方法论:模拟器学员的考核流程、与真机学员的成绩对标、加练模拟器的收益测量、不同学员的敏感度差异,以及如何设计一场公平可信的考核实验。学完你就能像验收飞行员一样,用数据说话,科学地判断合成数据值不值得用。

岗位关联

对 AI 从业者来说,掌握效用评估意味着你能用可量化的证据回答“合成数据能不能上生产”,避免靠保真度指标凭感觉拍板,这是合成数据真正落地前必须闯过的关卡。

目录
  1. 可视化演示
  2. 效用评估总览
  3. TSTR 评估流程
  4. 模型性能对标
  5. 数据增强增益
  6. 模型敏感度
  7. 实验设计要点
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

讲的是怎么评估合成表格数据在下游机器学习任务中的实际效用。你会学到Train on Synthetic Tes... 切换模式查看不同维度。

本节配有交互动效(进入视口后自动加载,约 3KB)。

TSTR评估:核心原理 动态展示关键流程与数据流动 交互控件调节参数实时渲染 f(x) = transform(x) 核心概念的可视化呈现

效用评估总览

买模拟器之前,先要回答一个灵魂拷问:什么叫“好用”?如果只看画面,一台能把跑道渲染得和真机场一模一样的模拟器可能让人连连叫好,可学员一上真机就手忙脚乱——因为气流的颠簸手感、刹车的细微反馈全是“假的”。保真度是“看起来像”,效用是“用起来灵”。评估合成表格数据的第一原则,就是把“像不像”和“好不好用”彻底分开。

在机器学习里,合成数据由生成模型(比如 CTGAN、高斯混合模型)采样得到。保真度指标(如 KL 散度、列间相关性误差)衡量合成分布与真实分布的接近程度,但它们回答不了一个关键问题:用这份合成数据训练出的分类器,在真实业务数据上准确率到底行不行?于是业界把目光转向“任务驱动的效用评估”——让合成数据真的去参与一次训练,再用真实数据检验结果。

最通用的做法是重复多次实验,在不同模型、不同随机种子下,计算合成数据训练模型的平均性能。公式化表达为:

所以,验收模拟器的第一课是选对尺子:别把“画面像不像”当成绩单,要拿“学员上真机的表现”说话。明确了这一点,下面就可以把这场“真机考试”的流程一步步搭起来。

U(Dsyn)=1K∑k=1KMetric ⁣(fksyn,Drealtest)\displaystyle \mathcal{U}(D_{syn}) = \frac{1}{K}\sum_{k=1}^{K} \text{Metric}\!\left( f_{k}^{syn}, D_{real}^{test} \right)
这个公式的意思是:效用不看合成数据本身,而是把合成数据丢进 K 次独立训练中,取模型在真实测试集上指标的平均值。
  1. 合成数据集合 $D_{syn}$生成模型产出的表格样本集,它替代真实数据参与训练,是效用评估里的“考生”。
    Dsyn={x~i,y~i}i=1M\displaystyle D_{syn} = \{\tilde{x}_i, \tilde{y}_i\}_{i=1}^{M}
  2. 训练出的模型 $f_k^{syn}$第 k 次实验里只用合成数据训练得到的预测模型,对应模拟器学员。
    fksyn=Train(Dsyn) with seed k\displaystyle f_{k}^{syn} = \text{Train}(D_{syn}) \ \text{with seed} \ k
  3. 真实测试集 $D_{real}^{test}$从真实数据中严格留出、训练阶段绝不让模型触碰的样本,对应真实机场的真实航线。
    Drealtest∩Dtrain=∅\displaystyle D_{real}^{test} \cap D_{train} = \emptyset
  4. 求均值 $\frac{1}{K}\sum_{k=1}^{K}$用 K 次重复实验的平均分消除随机波动,就像让学员多考几轮再下结论。
    U(Dsyn)=1K∑k=1Kak\displaystyle \mathcal{U}(D_{syn}) = \frac{1}{K}\sum_{k=1}^{K} a_k

TSTR 评估流程

航空公司定下验收标准后,就要设计考核流程:先让学员在模拟器里飞满 100 小时(合成训练),然后拉到真实航线,安排考官记录每一次起飞降落(真实测试),最后还要和“真机学员”的成绩放在一起看(基线对比)。这套流程在文献里有个响亮的名字——TSTR,全称 Train on Synthetic, Test on Real。

TSTR 是合成数据效用评估最经典的实验范式,核心思想是把“训练”和“测试”的数据来源刻意分开:训练只用合成数据,测试只用从未被污染的真实数据,从而回答“如果只靠合成数据,模型到底能不能在真实世界干活”。与之配套的还有它的对照组 TRTR(Train on Real, Test on Real),即真实训练、真实测试,作为性能上限的参照。

TSTR 流程分四步:第一步,用生成器在真实训练集上拟合,产出规模相当的合成训练集;第二步,在合成数据上训练标准模型;第三步,在真实测试集上预测并计算准确率等指标;第四步,把得分与 TRTR 基线对比。TSTR 准确率可写成:

你看,考核流程一点都不神秘:合成训练、真实测试、逐题打分。下一步,就是把模拟器学员的分数和真机学员的分数放到同一张成绩单上,看差距到底有多大。

PTSTR=1N∑i=1N1 ⁣[y^i=yi]\displaystyle P_{TSTR} = \frac{1}{N}\sum_{i=1}^{N} \mathbb{1}\!\left[ \hat{y}_i = y_i \right]
这是合成训练模型在真实测试集上的准确率:逐个检查预测是否命中真实标签,命中一个记 1 分,最后求平均。
  1. 测试样本数 $N$真实测试集中样本的总数,对应考核时总共要完成的落地次数。
    N=∣Drealtest∣\displaystyle N = |D_{real}^{test}|
  2. 真实标签 $y_i$第 i 个样本的真实类别,在表格任务中通常是 0/1 二分类或其他有限类别。
    yi∈{0,1,…,C−1}\displaystyle y_i \in \{0, 1, \dots, C-1\}
  3. 预测标签 $\hat{y}_i$模型在只见过合成数据的情况下,对真实样本给出的判断,来自模拟器学员的“手感”。
    y^i=fsyn(xi)\displaystyle \hat{y}_i = f_{syn}(x_i)
  4. 指示函数与平均 $\mathbb{1}[\cdot]$逐样本比对、计数并求平均,本质就是“答对题数除以总题数”。
    PTSTR=答对题数N\displaystyle P_{TSTR} = \frac{\text{答对题数}}{N}

模型性能对标

模拟器学员第一次考核拿了 78 分,听起来似乎不错。但如果缺少参照,78 分只是孤零零的数字——也许真机学员随随便便就是 88 分。所以考核报告里必须写清楚“相对真机基准的达成率”,这正是对标的价值。

TRTR 基线(真实数据训练、真实数据测试)代表当前任务可达的性能上限,是合成数据效用的“满分参照”。把 TSTR 得分与 TRTR 得分相除,就得到效用比率,它剥离了任务本身的难度差异,反映合成数据“继承”了多少真实数据的能力。

效用比率的定义为:

还有一种等价视角是退化幅度分析:$\Delta = P_{TRTR} - P_{TSTR}$,退化越小说明合成数据越接近真实水平。有了参照线,模拟器 78 分就不再孤立:如果真机 88 分,效用比率 88.6%,属于“基本可用但还需打磨”;如果真机只有 80 分,效用比率高达 97.5%,说明这台模拟器几乎能以假乱真。分数只有在对照中才有意义,这就是对标的思维。

R=PTSTRPTRTR×100%\displaystyle R = \frac{P_{TSTR}}{P_{TRTR}} \times 100\%
效用比率 R 衡量合成数据训练的模型,在真实测试上能达到真实训练模型的百分之几。通常 90% 以上高可用,80%–90% 可用,低于 80% 就要回头改进生成器。
  1. TSTR 得分 $P_{TSTR}$合成数据训练模型在真实测试集上的准确率,来自上一节的考试分数。
    PTSTR=1N∑i=1N1[y^i=yi]\displaystyle P_{TSTR} = \frac{1}{N}\sum_{i=1}^{N} \mathbb{1}[\hat{y}_i = y_i]
  2. TRTR 得分 $P_{TRTR}$真实数据训练模型在同一测试集上的准确率,是满分参照线。
    PTRTR=Accuracy ⁣(freal(Drealtest))\displaystyle P_{TRTR} = \text{Accuracy}\!\left( f_{real}(D_{real}^{test}) \right)
  3. 比值并转为百分比把小数比例放大 100 倍,方便设定统一的验收阈值。
    R=PTSTRPTRTR×100% ⇒ 0.85→85%\displaystyle R = \frac{P_{TSTR}}{P_{TRTR}} \times 100\% \ \Rightarrow\ 0.85 \to 85\%

数据增强增益

真机学员已经飞得很棒,但航校想让成绩再上一层楼:在真机训练之余,额外加练几小时模拟器,看最终考核能提高几分。这就是“数据增强”的典型场景——不指望合成数据完全替代真实数据,而是把合成数据当“加餐”。

现实中的常见做法,是把合成样本混入真实训练集,构成混合集 $D_{real} \cup D_{syn}$,再训练模型。相比纯真实基线提升的性能,就是合成增强增益。它直接回答业务方最关心的问题:“多生成一批合成样本,我的模型到底能涨多少分?”

增强增益的定义为:

注意增益往往服从收益递减:随着合成数据占比不断提高,增益先涨后平甚至下降,因为低质量合成样本开始稀释真实信号。工程上通常扫描不同混合比例,画出增益曲线,找到天花板对应的最佳混合比例。加餐也要适可而止——模拟器练得太久,学员养成模拟器特有的“小动作”,在真机上反而适得其反。增益曲线就是航校决定“加练几小时”的唯一依据。

Gain=Preal+syn−Preal\displaystyle \text{Gain} = P_{real+syn} - P_{real}
增益 = 混合训练模型的真实测试性能 − 纯真实训练基线的性能。大于 0 说明增强有效,小于 0 说明合成数据反而帮了倒忙。
  1. 混合训练性能 $P_{real+syn}$用真实与合成混合集训练出的模型,在真实测试集上的准确率。
    Preal+syn=Accuracy ⁣(f(Dreal∪Dsyn))\displaystyle P_{real+syn} = \text{Accuracy}\!\left( f(D_{real} \cup D_{syn}) \right)
  2. 纯真实基线 $P_{real}$同一模型结构、仅用真实训练集训练得到的基线准确率,是“不加餐”的对照。
    Preal=Accuracy ⁣(f(Dreal))\displaystyle P_{real} = \text{Accuracy}\!\left( f(D_{real}) \right)
  3. 差值 Gain两者的差,直接量化合成数据的边际贡献,可能是正数也可能是负数。
    Gain=Preal+syn−Preal\displaystyle \text{Gain} = P_{real+syn} - P_{real}

模型敏感度

航校还发现一个有趣现象:同样的模拟器,肌肉记忆强的老学员上手很快,而特别依赖气流触感的学员成绩一落千丈。模型也是这样——面对同一份合成数据,不同算法的表现分化明显。

合成数据与真实数据之间总有分布偏差,而不同模型对偏差的容忍度不同。经验规律是:线性模型、浅层树这类简单模型比较稳健;深层神经网络、梯度提升树这类复杂模型容易“死记硬背”合成数据里的假模式,一旦遇到真实分布就露馅。

按模型类型分别计算性能退化量,可以量化敏感度:

因此,效用评估报告不应该只报一个模型的分数,而要报告一组模型的退化量分布。摸清了“挑剔学员”和“稳健学员”的差异,才能给出个性化方案:对复杂模型要么提高模拟器保真度,要么多给真实时数;对简单模型,模拟器加练性价比最高。选模型、报效用,也是同样的道理。

Δm=PTRTR(m)−PTSTR(m)\displaystyle \Delta_m = P_{TRTR}^{(m)} - P_{TSTR}^{(m)}
对模型 m 来说,退化量 $\Delta_m$ 越大,说明它越依赖真实数据的保真度,也就是对合成数据越敏感。
  1. 模型类型 $m$参与评估的模型族,如逻辑回归、随机森林、XGBoost、MLP,代表不同类型的“学员”。
  2. $P_{TRTR}^{(m)}$模型 m 在真实数据上训练并测试的性能,是它自己的能力天花板。
    PTRTR(m)=Accuracy ⁣(fm(Dreal))\displaystyle P_{TRTR}^{(m)} = \text{Accuracy}\!\left( f_m(D_{real}) \right)
  3. $P_{TSTR}^{(m)}$模型 m 在合成数据上训练、真实数据测试的性能。
    PTSTR(m)=Accuracy ⁣(fm(Dsyn))\displaystyle P_{TSTR}^{(m)} = \text{Accuracy}\!\left( f_m(D_{syn}) \right)
  4. 差值 $\Delta_m$能力天花板与实际表现的落差,落差大就等于敏感度高。
    Δm=PTRTR(m)−PTSTR(m)\displaystyle \Delta_m = P_{TRTR}^{(m)} - P_{TSTR}^{(m)}

实验设计要点

如果只考一次试就说模拟器好用,航空公司肯定不放心——赶上晴天顺风,谁都能落地;要经历雷暴、侧风、引擎失效才算数。效用评估同样需要一套严谨的实验设计,让结论经得起推敲。

单次实验的得分受随机种子、数据划分、模型初始化影响,噪声很大。可靠的做法是:多次重复实验 + 交叉验证 + 多模型评估,最后用均值和置信区间汇报,而不是只贴一个孤立的准确率数字。

假设重复 n 次实验得到得分序列,均值为 $\bar{x}$,标准差为 s,则 95% 置信区间可近似为:

完整的实验设计清单还包括:用 K 折交叉验证避免划分运气、统一所有对比模型的超参数、固定随机种子并记录版本、汇报每个模型的效用比率与置信区间。航校最终交出的验收报告,不应该是“模拟器不错”四个字,而是“多轮多天气考核下,模拟器学员达成率平均 94%,95% 置信区间 [91%, 97%]”。这样的报告,董事会才敢签字——效用评估的价值,就是把“我觉得好用”升级为“数据显示好用且波动可控”。

CI=xˉ±z0.025⋅sn\displaystyle \text{CI} = \bar{x} \pm z_{0.025} \cdot \frac{s}{\sqrt{n}}
置信区间把“估计值”变成“估计范围”:区间越窄,说明实验越稳定、结论越可信。n 越大区间越窄,这正是重复实验的价值。
  1. 样本均值 $\bar{x}$n 次重复实验得分的平均值,作为效用的点估计。
    xˉ=1n∑j=1nxj\displaystyle \bar{x} = \frac{1}{n}\sum_{j=1}^{n} x_j
  2. 样本标准差 $s$衡量多次实验得分的波动幅度,相当于考官打分的离散程度。
    s=1n−1∑j=1n(xj−xˉ)2\displaystyle s = \sqrt{\frac{1}{n-1}\sum_{j=1}^{n}(x_j - \bar{x})^2}
  3. 标准误 $\frac{s}{\sqrt{n}}$均值估计的误差尺度,重复次数越多,误差越小。
    SE=sn\displaystyle \text{SE} = \frac{s}{\sqrt{n}}
  4. 临界值 $z_{0.025}$ 与区间95% 置信水平下 $z \approx 1.96$,给出估计的上下界。
    CI=xˉ±1.96⋅SE\displaystyle \text{CI} = \bar{x} \pm 1.96 \cdot \text{SE}

AI 应用场景

信贷风控的冷启动模型

阶段:数据准备与模型验证

解决的问题:新业务刚上线时没有历史坏样本,传统方式只能干等半年积累数据;用合成数据生成冷启动训练集,再用 TSTR 流程验证效用,才能决定能不能投产。

具体案例:某消金公司做新客群小额信贷,真实违约样本不足 300 条。数据团队用 CTGAN 生成 5000 条合成样本训练评分卡,在留出的真实样本上跑 TSTR,效用比率 91%,达到投产阈值;继续测混合增强增益为 +2.1%,于是正式上线“合成 + 真实”双通道训练。就像航校先靠模拟器攒够飞行时长,再用真实航线验收。

医疗数据不出域的模型交付

阶段:数据隐私保护与外包建模

解决的问题:医院数据受合规约束不能出域,外部建模团队拿不到原始数据;需要把合成数据作为“脱敏替代品”交付,并用 TSTR 向合作方证明模型性能可接受。

具体案例:某医药公司要基于患者电子病历训练疗效预测模型,但原始数据只允许在院内环境运行。数据团队在院内训练生成器,导出合成数据给建模团队。建模团队执行 TSTR 流程:合成训练 + 院内真实测试集盲评,效用比率 87%,监管方据此批准模型在合成数据上迭代开发,真实数据仅用于最终验证。这相当于带着“模拟器训练记录”去考真实执照。

反欺诈少数类增强

阶段:模型训练与调优

解决的问题:欺诈样本极稀缺导致模型召回率低,传统过采样容易过拟合;需要用生成模型合成高质量欺诈样本做增强,并用增益曲线确定最佳混合比例。

具体案例:某电商支付风控团队用 CTGAN 为“盗号盗刷”类别合成样本,混合后训练 XGBoost 模型。TSTR 对照显示纯合成训练退化 12%,但混合增强使召回率从 61% 提升到 74%。团队扫描不同合成比例,在 30% 处找到最佳增益点,避免过度混合导致精确率下滑。这正是“加练模拟器”的智慧:加多少,用增益曲线说了算。

Python 演示

python56 行
import numpy as npfrom sklearn.datasets import make_classificationfrom sklearn.ensemble import RandomForestClassifierfrom sklearn.linear_model import LogisticRegressionfrom sklearn.mixture import GaussianMixturefrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_score  def generate_synthetic(x_real, y_real, n_syn, seed=7):    """用高斯混合模型拟合真实特征分布, 再从中采样合成特征."""    gm = GaussianMixture(n_components=4, random_state=seed)    gm.fit(x_real)    x_syn = gm.sample(n_syn)[0]    # 用真实数据上训练的代理模型给合成样本打标签    proxy = LogisticRegression(max_iter=500)    proxy.fit(x_real, y_real)    y_syn = proxy.predict(x_syn)    return x_syn, y_syn  def tstr_evaluate(x_tr, y_tr, x_te, y_te, seed=42):    # TRTR 基线: 真实训练 + 真实测试    clf_real = RandomForestClassifier(random_state=seed)    clf_real.fit(x_tr, y_tr)    acc_trtr = accuracy_score(y_te, clf_real.predict(x_te))     # TSTR: 合成训练 + 真实测试    x_syn, y_syn = generate_synthetic(x_tr, y_tr, n_syn=len(x_tr))    clf_syn = RandomForestClassifier(random_state=seed)    clf_syn.fit(x_syn, y_syn)    acc_tstr = accuracy_score(y_te, clf_syn.predict(x_te))     # 数据增强: 真实 + 合成混合训练    x_mix = np.vstack([x_tr, x_syn])    y_mix = np.concatenate([y_tr, y_syn])    clf_mix = RandomForestClassifier(random_state=seed)    clf_mix.fit(x_mix, y_mix)    acc_aug = accuracy_score(y_te, clf_mix.predict(x_te))     return {        "trtr": acc_trtr,        "tstr": acc_tstr,        "utility_ratio": acc_tstr / acc_trtr,        "augment_gain": acc_aug - acc_trtr,    }  if __name__ == "__main__":    x, y = make_classification(n_samples=1000, n_features=10, n_informative=6, random_state=1)    x_tr, x_te, y_tr, y_te = train_test_split(x, y, test_size=0.25, random_state=42)    report = tstr_evaluate(x_tr, y_tr, x_te, y_te)    print(f"TRTR 基线: {report['trtr']:.4f}")    print(f"TSTR 效用: {report['tstr']:.4f}")    print(f"效用比率: {report['utility_ratio']:.2%}")    print(f"增强增益: {report['augment_gain']:+.4f}")
目的:用一套完整可运行的小实验演示“效用评估三件套”——TRTR 基线、TSTR 效用、混合增强增益,跑完就能看到合成数据到底好不好用的量化结论。
  1. gm = GaussianMixture(n_components=4, random_state=seed)创建高斯混合模型,它就是我们的“飞行模拟器”,负责记住真实特征分布的轮廓。
  2. x_syn = gm.sample(n_syn)[0]从拟合好的分布中采样合成特征,相当于模拟器生成一批崭新的训练场景。
  3. proxy.fit(x_real, y_real)用真实数据训练一个代理分类器,为合成样本打上标签,解决生成器没有标签的问题。
  4. acc_trtr = accuracy_score(y_te, clf_real.predict(x_te))TRTR 基线得分:真实训练的模型在真实测试集上考出的分数。
  5. acc_tstr = accuracy_score(y_te, clf_syn.predict(x_te))TSTR 核心得分:模拟器学员在真实考场上的分数。
  6. "utility_ratio": acc_tstr / acc_trtr计算效用比率,报告合成数据继承了真实数据能力的百分比。
  7. "augment_gain": acc_aug - acc_trtr计算混合增强增益,看“加餐”多涨多少分,负数说明帮了倒忙。

常见误区

误区合成数据跟真实数据长得越像,训练出来的模型就越好用。我只要把 KL 散度、相关性误差这些指标调得很低,模型效果应该就自动达标了。

正解保真度衡量的是“分布像不像”,效用衡量的是“模型在真实任务上灵不灵”。两者经常脱节——合成分布可能整体接近,却在少数关键区域失真,而模型恰好依赖那些区域。就像模拟器画面再逼真,如果颠簸手感是假的,学员上真机照样手忙脚乱。所以必须用 TSTR 这类任务驱动评估来实测,而不是看保真度指标拍板。

为何常见:保真度指标直观、计算快,容易给人一种“可控感”,人们天然相信“越像越有用”,忽略了分布统计相似与任务可用性之间的鸿沟。

误区TSTR 就是让模型在合成数据上训练,然后在合成数据自己生成的测试集上算个准确率,流程就结束了。

正解TSTR 的全称是 Train on Synthetic, Test on Real,关键就在"Test on Real"——测试集必须是真实数据。如果测试也用合成数据,模型可能在合成数据的假模式上过拟合,考出的分数虚高。这相当于在模拟器里考核模拟器学员,考官、天气、飞机全是模拟的,成绩自然没有说服力。

为何常见:训练和测试用同一套生成流程最省事,而且分数通常很好看,容易让人误以为流程完整、结果可信。

误区合成数据生成成本低,那就往真实训练集里拼命加,加到训练集翻倍、翻三倍,模型效果一定会越来越好。

正解增益服从收益递减,甚至可能变负。低质量合成样本会稀释真实信号,让模型学到模拟器特有的“小动作”。正确做法是扫描混合比例,画出增益曲线,找到成绩提升的天花板对应的最佳比例。就像加练模拟器,练 10 小时可能涨 7 分,练到 100 小时可能反而让学员依赖模拟器手感,真机上退步。

为何常见:“免费资源当然要多用”的直觉很强,叠加“数据越多模型越强”的朴素认知,让人忽视边际效用和质量稀释。

误区随便选个默认模型(比如随机森林)跑一遍 TSTR,效用比率不错,就认定这批合成数据对谁都好用。

正解不同模型对合成数据分布的失真敏感度差异很大:简单模型稳健,深度网络、梯度提升等复杂模型挑剔。只测一个模型,可能恰好选到“稳健型学员”,掩盖了合成数据在复杂模型上的短板。报告应该覆盖多种模型,给出每个模型的退化量 $\Delta_m$,让结论具有普适性。

为何常见:跑多个模型要额外写代码和等待时间,人们倾向于“默认模型跑通就行”,忽略了模型与数据分布交互的复杂性。

面试题

Q1. TSTR 的全称是什么?

单选题 · easy

  • A.Train on Synthetic Test on Real← 正确答案
  • B.Train on Real Test on Synthetic
  • C.Test on Synthetic Train on Real
  • D.Train on Sample Test on Result

答案:A。TSTR 的核心理念是“在合成数据上训练、在真实数据上测试”,A 完全对应这个顺序。B 颠倒了训练与测试的数据来源,C 把训练和测试动词对调,D 混入了不存在的概念。就像模拟器考核,顺序一定是“先练模拟器、再上真机考试”,顺序错了结论就废了。

Q2. TSTR 评估中,模型在哪里完成训练?

单选题 · easy

  • A.在合成数据上训练模型← 正确答案
  • B.在真实数据上训练模型
  • C.在测试集上反复训练
  • D.在混合数据上训练模型

答案:A。TSTR 的"T"之一就是 Train on Synthetic,训练阶段只允许看到合成数据,才能检验合成数据独立支撑模型的能力。真实训练对应的是 TRTR 基线,测试集训练会泄漏导致分数失真,混合训练则是数据增强的玩法,都不属于 TSTR 的定义。

Q3. TSTR 评估流程包含哪些环节?

多选题 · easy

  • A.只在合成数据上训练← 正确答案
  • B.真实测试集上评估← 正确答案
  • C.与 TRTR 基线对比← 正确答案
  • D.合成数据增强混合

答案:ABC。TSTR 的标准流程是“合成训练 → 真实测试 → 与真实基线对比”,因此 A、B、C 都是必要环节。D 描述的混合增强属于独立的数据增强实验设计,不属于 TSTR 本身的流程。类比考核流程:模拟器训练、真机打分、对照真机学员,三者缺一不可。

Q4. 效用比率越接近 100% 说明什么?

单选题 · mid

  • A.合成数据效用越高← 正确答案
  • B.合成数据效用越低
  • C.模型发生了严重过拟合
  • D.真实数据出现数据泄漏

答案:A。效用比率是 TSTR 得分除以 TRTR 得分,越接近 100% 说明合成训练的效果越逼近真实训练,效用自然越高。过低才是效用差或训练出问题,过拟合不会让比率变高,数据泄漏是实验设计错误,与效用比率高低没有直接因果。

Q5. 数据增强增益是如何计算的?

单选题 · mid

  • A.增强后准确率减基线准确率← 正确答案
  • B.合成数据量减真实数据量
  • C.增强前后训练耗时之差
  • D.测试集样本数量的变化

答案:A。增益的定义是 $P_{real+syn} - P_{real}$,也就是混合真实与合成数据训练后的测试性能,减去纯真实训练的基线性能,答案 A 正确。B 比较的是数据量,C 比较的是训练成本,D 说的是测试集规模,都与“模型涨了多少分”无关。

Q6. 哪类模型通常对合成数据质量更敏感?

单选题 · mid

  • A.复杂深度模型更敏感← 正确答案
  • B.简单线性模型更敏感
  • C.决策树模型更敏感
  • D.KNN 模型比列更敏感

答案:A。经验规律是模型越复杂、容量越大,越容易记住合成数据里的假模式,部署到真实分布时退化更明显,所以深度模型最敏感。线性模型、浅层树结构简单,拟合能力有限,反而对分布失真的容忍度更高。选模型做 TSTR 时,务必把复杂模型纳入评估。

Q7. 为提升效用评估结论的可靠性,应该怎么做?

多选题 · mid

  • A.多次重复实验取平均← 正确答案
  • B.每种配置只跑一次
  • C.多种模型交叉验证← 正确答案
  • D.报告置信区间范围← 正确答案

答案:ACD。单次实验受随机种子和数据划分影响,噪声很大,所以需要多轮重复取平均、多模型交叉验证,并报告置信区间展示波动幅度,A、C、D 都是标准做法。B 只跑一次会让结论像“碰运气考试”一样不可信,应避免。

Q8. TRTR 基线在效用评估中的真正作用是什么?

单选题 · hard

  • A.提供模型性能对照上限← 正确答案
  • B.提供模型复杂度参照值
  • C.提供特征工程优化方向
  • D.决定合成数据的生成量

答案:A。TRTR 用真实数据训练并测试,代表该任务在当前数据下可达到的性能上限,是 TSTR 分数的“满分参照”,因此 A 正确。模型复杂度、特征工程、生成量都不是 TRTR 的职责。没有这条基线,TSTR 的 78 分就只是孤立数字,无法判断合成数据到底好不好用。

Q9. 以下哪些做法能提升合成表格数据的效用?

多选题 · hard

  • A.保证合成分布贴合真实← 正确答案
  • B.混合真实与合成数据训练← 正确答案
  • C.合成数据量无限增大
  • D.减少真实训练集的数据

答案:AB。提升效用的核心是让合成数据“更真实”并“配合真实数据一起用”,A 提高保真度、B 做混合增强都能提升效用。C 无限增大合成数据会踩中收益递减陷阱,D 减少真实数据等于主动丢掉高质量信号,都会让模型效果变差。增强增益曲线才能告诉我们最优配比。

Q10. 合成增强出现收益递减最合理的解释是什么?

单选题 · hard

  • A.合成数据已达边际效用上限← 正确答案
  • B.合成数据质量仍然偏差
  • C.模型容量跟不上数据量
  • D.测试集划分方式有误

答案:A。收益递减指随着合成数据比例增加,增益先快后慢、最终趋平甚至转负,说明合成数据对模型的边际贡献已达上限,A 正确。若合成数据质量差,增益一开始就低甚至为负,不会呈现“先升后平”的曲线;模型容量和测试集划分都与比例变化的递减趋势无关。