从单次划分的指标波动,到多seed重复划分的分布报告——一条可落地的评估可靠性主线
关键词:随机种子 · 划分方差 · 重复交叉验证 · 分层抽样 · 分组泄漏 · 置信区间 · 小样本评估
摘要
在中小规模数据集上,仅改变 random_state 就能让测试集指标跳动数个百分点的现象极为普遍。工程上常见的两种解释——"正常的评估噪声"与"划分策略本身不可靠"——并非互斥,而是同一方差来源在不同尺度下的两种表现。本文提出以"划分方差分解"作为贯穿全文的分析主线:把观测到的指标波动拆解为样本抽样方差、划分方差、模型训练方差与标签噪声四个可分离成分,并据此判断当前波动属于哪一档、应当采取何种应对策略。
文章系统梳理了重复划分(repeated hold-out)、重复交叉验证(repeated k-fold CV)、嵌套交叉验证与分组/分层划分的统计学依据,给出多seed重复划分的完整操作路径、报告模板与决策阈值,并讨论了小样本下置信区间、效应量与"指标差异是否可辨识"的判定方法。本文的核心主张是:单次划分的指标是点估计,多seed重复划分得到的是分布;在样本量不足时,报告分布比报告点估计更诚实,而固定多个种子取分布应当成为中小数据集评估的默认实践,而非可选项。
目录
一、问题的提出:一个种子,几个点,到底慌不慌
先说一个几乎每个做机器学习工程的人都遇到过的场景:数据集只有几千条,模型训练完,测试集 AUC 是 0.812;同事把 random_state 从 42 改成 2024,同样的代码、同样的超参,AUC 变成 0.784。于是会议室里出现两种声音:一种说"正常,小数据集就这样,评估噪声";另一种说"这说明我们的划分策略有问题,评估不可信"。
这两种声音其实都对了一半,也都错了一半。说"评估噪声"的人,往往没有量化噪声到底有多大、是否在可接受范围内;说"划分策略不可靠"的人,往往把"方差大"直接等同于"方法错",却忽略了方差本身就随样本量变化这一基本事实。笔者认为,真正的问题不是"该不该慌",而是"我们有没有能力把这份慌张量化"。
在统计学里,这从来不是一个新问题。Kohavi 在 1995 年的经典论文中就系统讨论了交叉验证与 bootstrap 用于模型选择时的方差问题(Kohavi, 1995, IJCAI);Dietterich 在 1998 年进一步指出,当两个学习算法在有限数据上比较时,差异的显著性检验本身就需要考虑训练集抽样的随机性(Dietterich, 1998, Neural Computation)。本文评述:这些工作奠定了"评估本身是一个随机变量"的认识,但工业界长期把评估结果当作确定性数字来汇报,这个习惯在中小数据集上会系统性地误导决策。
更值得警惕的是,波动本身携带信息。如果改变种子后指标波动 1 个点,那大概率是抽样噪声;如果波动 5 个点甚至排序都变了,那说明当前测试集规模不足以支撑这个粒度的结论,或者数据中存在结构性因素(分组泄漏、类别极不平衡、时间漂移)被随机划分放大了。这两种情况的应对方式完全不同:前者应当报告置信区间,后者应当修改划分策略。
一句话概括本章立场:种子敏感不是 bug,而是评估系统的一个可观测指标;关键在于我们是否建立了把它读懂的框架。
二、分析主线:划分方差分解框架
为了让后文所有讨论都落在同一根逻辑轴上,本文提出并贯穿使用一个划分方差分解框架(Split Variance Decomposition, SVD)。它的核心思想是:把我们在不同种子下观测到的指标波动,视为若干独立或半独立方差源的叠加,而不是一个笼统的"噪声"。
2.1 四个方差源
设我们在同一份有限数据上,用不同随机种子产生不同的训练/测试划分,得到一系列指标估计值。其总方差可近似分解为:
Var(metric) ≈ V_sample + V_split + V_train + V_label V_sample : 有限样本带来的抽样方差(测试集本身只是总体的一个样本) V_split : 划分方式带来的方差(哪些样本进训练、哪些进测试) V_train : 模型训练过程的随机性(初始化、dropout、SGD 顺序、数据增强) V_label : 标签噪声与标注不一致带来的方差
这个分解不是严格的数学恒等式,而是一个工程上可操作的归因框架。本文评述:它的价值不在于精确计算每一项,而在于指导我们设计对照实验去"关掉"某些方差源。例如固定模型初始化与训练顺序,就能把 V_train 压到接近零,从而单独观察 V_split;在完全相同的划分上换初始化,则能单独估计 V_train。
2.2 为什么这个框架能回答开篇的问题
开篇的两种声音,在这个框架下对应两个不同的判断:
- "正常的评估噪声":意味着 V_sample + V_split 占主导,且其量级与理论预期(基于测试集规模与指标的标准误)一致。此时波动是统计必然,应对方式是报告区间而非点估计。
- "划分策略不可靠":意味着 V_split 异常大,超出抽样方差预期,通常由分组结构被打破、类别分布失衡、时间顺序被随机打乱等因素造成。此时波动是策略缺陷的信号,应对方式是改划分。
换句话说,判断波动性质的关键,是把观测方差与"理论最小方差"做比较。理论最小方差由测试集样本量和指标本身的性质决定,是可计算的。超出部分,才是策略问题。这条主线将贯穿后文所有章节。
2.3 一个直观的类比
把测试集指标想象成"用一把尺子量身高"。尺子的刻度精度(测试集规模)决定了最小可分辨差异;如果每次换个人来量(换种子),读数差 5 厘米,而尺子精度只有 1 厘米,那问题不在被量的人,而在"谁来量、怎么量"这套流程。SVD 框架做的就是分别估计"尺子精度"和"测量流程抖动",然后判断后者是否显著超出前者。
三、理论根基:从抽样误差到交叉验证方差
3.1 分类指标的标准误:一个被忽视的基线
最容易被忽视的事实是:即使划分完全随机、数据完全独立同分布,测试集指标本身也有抽样误差。以准确率为例,若测试集有 n 个样本、真实准确率为 p,则其标准误约为 sqrt(p(1-p)/n)。当 n=1000、p=0.85 时,标准误约 1.13 个百分点,95% 置信区间宽度约 ±2.2 个百分点。
这意味着:在 1000 条测试集上,两个模型准确率相差 2 个点,很可能在统计上不可区分。这不是划分策略的错,而是样本量的硬约束。本文评述:很多团队在只有几百条测试样本的情况下,为 0.5 个点的提升欢呼或沮丧,这在统计上是没有意义的;把标准误写进实验报告,是评估诚实性的第一步。
对于 AUC 这类排序指标,标准误没有简单闭式解,工程上常用 DeLong 方法(DeLong et al., 1988, Biometrics)或 bootstrap 估计。近年也有工作系统比较了不同 AUC 置信区间估计方法在小样本下的覆盖性(Sun & Xu, 2021 等),结论是 bootstrap 在中等样本下表现稳健,但在极小样本下会低估方差。本文评述:工程上不必追求最精确的区间方法,但必须至少给出一个区间,否则"点估计汇报"会持续制造虚假的确定性。
3.2 交叉验证方差的经典结论
交叉验证的方差问题在统计学习领域有长期讨论。Bengio 与 Grandvalet 在 2004 年指出,K 折交叉验证的方差估计本身是有偏的,因为各折训练集高度重叠(Bengio & Grandvalet, 2004, JMLR)。Nadeau 与 Bengio 在 2003 年提出了修正的交叉验证方差估计,用于比较多个算法时的显著性检验(Nadeau & Bengio, 2003, Machine Learning)。
这些结论对工程实践的直接含义是:不要把 K 折交叉验证的各折结果当作独立样本去算标准误,那样会系统性低估方差。更稳妥的做法是重复多次 K 折(repeated K-fold),用重复间的差异来估计划分方差。本文评述:这一点在工业界被严重低估,很多"交叉验证标准差"的汇报实际上偏小,导致模型比较过于乐观。
3.3 训练集规模对指标的系统性影响
还有一个常被忽略的机制:改变种子不仅改变"哪些样本进测试集",也改变"训练集有多大、多难"。在固定划分比例下,训练集规模不变,但训练集的构成变了。学习曲线理论告诉我们,模型性能对训练集规模高度敏感(Cortes et al., 1994; Nakkiran et al., 2020 关于双下降的讨论)。因此,不同种子下的指标差异,一部分来自"测试集换了题",另一部分来自"模型学得不一样好"。
本文评述:这解释了为什么小数据集上种子敏感度远高于大数据集——不仅测试集小,训练集也小,模型对训练集构成的敏感度被双重放大。这也提示我们,在诊断波动来源时,应当同时观察训练集指标与测试集指标的变化,若两者同向大幅波动,V_train 的贡献不可忽视。
四、样本量效应:波动何时"正常",何时"报警"
4.1 用模拟数据看波动随样本量的变化
为了给出可感知的量级,我们做一组模拟(模拟数据,非真实实验):构造一个二分类问题,真实准确率约 0.85,分别取总样本量 N = 200、500、1000、5000、20000,按 8:2 划分,重复 200 个随机种子,统计测试集准确率的标准差。
(数据来源:本文作者基于二项分布假设的模拟,参数为 p=0.85、重复 200 次,仅用于量级示意,不代表任何具体数据集。)
这组模拟传达的核心信息是:当模拟中观测到的标准差与理论标准误基本吻合时,说明波动主要来自抽样,属于"正常评估噪声";当观测标准差显著大于理论值(例如 2 倍以上),才提示划分策略或数据结构性因素在起作用。这就是 SVD 框架的第一次落地:拿观测方差对比理论基线。
4.2 小样本的"双重惩罚"
小样本的问题不止是测试集小。训练集小导致模型方差大(V_train 上升),测试集小导致评估方差大(V_sample 上升),两者叠加,使得"换种子指标跳好几个点"成为必然。本文评述:在这种情况下,与其纠结"哪个种子是真的",不如承认没有任何单次划分能代表模型能力,转而报告多 seed 的分布。这不是妥协,而是对统计现实的尊重。
值得注意的是,样本量不足还会放大"赢家诅咒":当你在多个种子中挑出最好的那个汇报,实际上是在做一个隐性的多重比较,报告值会系统性偏高。这一现象在模型选择文献中被称为选择偏差(selection bias),Cawley 与 Talbot 在 2010 年专门讨论了交叉验证用于模型选择时的过拟合问题(Cawley & Talbot, 2010, JMLR)。本文评述:多 seed 重复划分的另一个价值,正是抑制"挑最好种子"的冲动——当所有种子都被报告,挑选就失去了意义。
五、划分策略本身:分层、分组与泄漏
5.1 分层抽样:降低 V_split 的第一道防线
当类别不平衡时,纯随机划分可能导致某些折中少数类样本极少,指标剧烈波动。分层抽样(stratified sampling)通过保持各折类别比例一致来降低这种波动。scikit-learn 的 train_test_split(stratify=y) 与 StratifiedKFold 是标准工具。
但分层并非万能。当少数类样本只有几十条时,即使分层,各折中少数类的具体构成仍差异很大,指标波动依然显著。本文评述:分层解决的是"比例失衡",解决不了"绝对数量不足"。在后一种情况下,应当考虑过采样、代价敏感学习或改用对不平衡更稳健的指标(如 PR-AUC、平衡准确率),而不是指望换种子。
5.2 分组划分:当样本之间不独立
这是工程上最容易踩、后果最严重的坑。当数据中存在分组结构——同一用户的多条行为、同一病人的多次检查、同一文档的多个片段、同一设备的多个传感器读数——随机划分会把同一组的数据同时放进训练集和测试集,造成信息泄漏,指标虚高且随种子剧烈波动。
分组划分(group split)要求同一组的样本整体进入训练集或测试集。scikit-learn 提供 GroupKFold、StratifiedGroupKFold。近年关于数据泄漏的系统性讨论(如 Kapoor & Narayanan, 2023, Patterns 关于机器学习研究中泄漏问题的综述)指出,泄漏是导致结果不可复现的主要因素之一。本文评述:分组泄漏的一个典型症状,正是"换种子指标大幅波动"——因为随机划分下,测试集与训练集的组重叠程度每次不同,泄漏程度随之变化。如果你的数据有分组结构而波动又很大,第一件事应该是检查是否用了分组划分,而不是加种子。
5.3 时间序列:随机划分本身就是错的
对时间序列数据,随机划分会把未来信息泄漏到训练集,指标虚高且极不稳定。正确做法是时间序划分(time-series split),训练集始终在测试集之前。本文评述:在时间序列场景下,"换种子波动大"往往不是种子的问题,而是随机划分根本不适用;此时应当直接改用滚动/扩展窗口验证,波动会自然收敛到合理范围。
5.4 分布偏移与协变量漂移
当训练数据与部署数据分布不一致时,随机划分得到的测试集并不能代表真实场景。此时不同种子下的指标波动,可能反映了"某些划分恰好更接近部署分布"这一偶然因素。本文评述:这类波动的根源不在划分随机性,而在评估集与目标分布的不匹配。解决办法是构造更有代表性的评估集(如按时间、按地域、按用户分层构造),而不是增加种子数量。
六、重复划分 vs 交叉验证:等价性与取舍
6.1 两种做法的本质
重复 hold-out(多个随机种子各做一次 train/test 划分)与重复 K 折交叉验证,本质上都是在估计"指标在划分随机性下的分布"。区别在于:前者每次只用一部分数据做测试,测试集之间可能重叠;后者每次用全部数据做测试(各折轮流),数据利用率更高。
本文评述:两者不是替代关系,而是互补关系。重复 hold-out 的分布更接近"部署时可能遇到的划分",重复 K 折的均值更接近"模型在全部数据上的期望表现"。在中小数据集上,笔者倾向于以重复 K 折估计期望性能,以重复 hold-out 估计部署方差,两者结合报告。
6.2 重复次数怎么定
重复次数影响分布估计的精度。经验上,重复 10 次 K 折(即 10×K 次训练)已能给出较稳定的均值估计;若要估计方差或分位数,重复次数应更多。本文评述:在工程实践中,可以用"方差的蒙特卡洛标准误"来判断重复次数是否足够——当增加重复次数后方差估计的变化小于某个阈值(如 5%),即可停止。这比拍脑袋定"重复 5 次"更可靠。
对于计算资源紧张的场景,可以采用序贯策略:先做 5 次重复,观察分布是否已稳定;若不稳定,再追加。这本质上是一种主动学习式的评估预算分配。
6.3 嵌套交叉验证:当超参也需要调
如果评估流程中包含超参搜索,那么在外层评估集上直接调参会导致乐观偏差。嵌套交叉验证(nested CV)通过在外层每折内部再做一次内层 CV 调参来消除这种偏差(Cawley & Talbot, 2010)。本文评述:嵌套 CV 计算成本高,但在小数据集上几乎是唯一能给出无偏性能估计的方法。当你在小数据上看到"换种子波动大"时,先检查是否用了嵌套 CV——很多时候波动来自调参过程本身对划分的过拟合。
七、操作路径:多seed重复划分的标准流程
理论讲完,落到可执行的步骤。以下流程适用于中小规模数据集(几千到几万条),目标是给出"诚实"的性能估计与不确定性量化。
7.1 步骤一:诊断数据结构
在划分之前,先回答三个问题:数据是否有分组结构(用户/设备/文档)?是否有时间顺序?类别是否不平衡?这三个问题的答案决定了划分策略:有分组用 GroupKFold,有时间用 TimeSeriesSplit,不平衡用 StratifiedKFold。本文评述:这一步做错,后面所有种子实验都是在错误的基线上做方差分析,结论没有意义。
7.2 步骤二:固定评估协议,只变种子
确定划分策略后,固定模型、超参、预处理流程,只改变划分种子。这里的关键是"只变一个因素",否则无法归因。如果同时变种子和超参,观测到的波动无法区分来源。
# 伪代码:多 seed 重复 hold-out
import numpy as np
from sklearn.model_selection import train_test_split
seeds = list(range(1000, 1030)) # 30 个种子
scores = []
for s in seeds:
X_tr, X_te, y_tr, y_te = train_test_split(
X, y, test_size=0.2, stratify=y, random_state=s)
model = build_model(random_state=0) # 模型初始化固定
model.fit(X_tr, y_tr)
scores.append(evaluate(model, X_te, y_te))
scores = np.array(scores)
print("mean", scores.mean(), "std", scores.std(ddof=1))
print("p5/p95", np.percentile(scores, [5, 95]))
注意 build_model(random_state=0) 这一行:把模型初始化固定,是为了让观测到的方差主要来自划分(V_split),而不是训练随机性(V_train)。如果模型本身有强随机性(如深度网络),应当额外做"同划分多初始化"的对照,单独估计 V_train。
7.3 步骤三:分离方差源
设计两组实验:A 组固定划分、变模型初始化;B 组固定初始化、变划分。A 组的标准差估计 V_train,B 组的标准差估计 V_split + V_sample。两者对比,即可判断波动主要来自哪一侧。本文评述:这个对照实验成本不高(各 10 次即可),但能极大提升诊断的可信度,建议纳入标准实验模板。
7.4 步骤四:与理论基线对比
用测试集规模和指标性质计算理论标准误(准确率用二项公式,AUC 用 bootstrap),与观测标准差比较。若观测值在理论值 1.5 倍以内,视为正常抽样波动;若超过 2 倍,进入步骤五排查。
7.5 步骤五:排查结构性因素
按优先级检查:是否遗漏分组划分?是否时间泄漏?是否存在极少数类?是否有重复样本(去重是否彻底)?是否有特征在训练/测试间分布差异过大?本文评述:实践中,重复样本未去重是导致"种子敏感"的常见原因——同一实体在数据中出现多次,随机划分下有时进训练有时进测试,指标自然飘忽。
7.6 步骤六:报告分布而非点估计
最终报告应包含:均值、标准差、95% 区间(或 5/95 分位)、重复次数、划分策略、种子列表。若比较两个模型,应报告配对差异的分布,而非两个独立均值之差。
拓展阅读:scikit-learn 官方文档中关于交叉验证与分组划分的章节(scikit-learn Cross-validation)给出了各类划分器的用法与注意事项,建议结合本文的 SVD 框架一起看。
八、报告规范:如何把"分布"写进实验记录
8.1 一个最小可用的报告模板
建议在实验记录中固定包含以下字段,形成团队规范:
8.2 模型比较:配对差异优于独立均值
比较模型 A 与 B 时,正确做法是在同一组划分上分别训练 A 和 B,然后计算每个划分上的差值 d_i = score_A,i − score_B,i,报告 d 的均值与区间。由于同一划分上两个模型面对相同的测试集,差值方差远小于两个独立均值的方差,比较更敏感。本文评述:这是配对实验设计的基本功,但在工业界的模型对比中经常被忽略,导致"看起来没差别"的误判。
8.3 可视化:箱线图与雨云图
把多 seed 结果画成箱线图或雨云图(raincloud plot),能直观展示分布形状、离群点与中位数。本文评述:相比只报一个数字,一张分布图能让评审者立刻判断"这个差异是否值得追"。建议在实验报告中默认附上分布图,成本极低,收益很高。
九、决策阈值:波动多大才算"策略不可靠"
9.1 一个可操作的判定表
基于 SVD 框架,本文给出一个工程判定表(阈值来自经验与模拟,供参考,需结合具体任务调整):
本文评述:这个表的价值在于把"感觉波动大"变成"可讨论的阈值"。团队可以在此基础上校准自己的阈值,但关键是先有基线、再有判断,而不是凭直觉。
9.2 效应量视角:差异是否"值得关心"
除了统计显著性,还应考虑效应量。两个模型 AUC 相差 0.005,即使统计显著,业务上可能毫无意义;相差 0.05,即使置信区间有重叠,也值得进一步验证。本文评述:在小样本场景下,统计显著性与业务显著性经常背离,报告时应同时给出两者,避免"显著但无用"或"有用但不显著"的误判。
9.3 何时应该放弃单次划分
当测试集规模小于某个阈值(例如分类任务中测试集少于 500 条,或少数类测试样本少于 50 条),单次划分的指标不确定性已经大到无法支撑任何模型比较。此时应当直接采用重复划分并报告分布,或者扩大评估集。本文评述:这不是"更严谨"的选项,而是"唯一有意义"的选项。
十、前沿与预判:评估可靠性的下一步
10.1 从"报告分布"到"评估协议即代码"
近年 MLOps 领域的一个趋势是把评估协议固化为可执行、可版本化的代码与配置,而非散落在 notebook 中的临时逻辑。这包括固定种子集合、固定划分器、固定指标计算方式,并在 CI 中自动跑多 seed 评估。本文评述:这是把本文倡导的"诚实评估"工程化的自然路径——当多 seed 评估成为流水线的默认步骤,单次划分的诱惑就会自然消失。
10.2 不确定性感知的模型选择
学术上,越来越多的研究关注"带不确定性的模型比较",例如基于 bootstrap 的置信区间、贝叶斯模型比较、以及考虑多重比较校正的选择方法。本文评述:这些方法在工业落地时的主要障碍是计算成本与实现复杂度,但随着自动化评估框架的成熟,成本正在下降。可以预判,未来两三年内,"报告置信区间"会像今天的"报告准确率"一样成为标配。
10.3 小样本评估的特殊方法
在小样本场景下,除了重复划分,还有一类思路是"借力":利用预训练模型、迁移学习、或半监督方法提升单样本信息量,从而在有限数据上获得更稳定的评估。本文评述:这属于"提升数据效率"的路线,与"改进评估方法"的路线互补。对于确实无法扩大数据集的场景,两者应结合使用。
10.4 对"可复现性危机"的回应
机器学习领域的可复现性问题近年受到广泛关注,多项综述指出,随机性管理不当是可复现性失败的重要原因之一。本文评述:多 seed 重复划分不仅是评估方法,也是可复现性实践——它把"随机"从隐藏变量变成显式报告的对象,让结果可被独立验证。
十一、常见误区与反模式清单
- 误区一:挑最好的种子汇报。这等价于在多个估计中取最大值,系统性高估性能。正确做法是报告全部种子的分布。
- 误区二:把交叉验证各折标准差当作标准误。折间高度相关,会低估方差。应使用重复 CV 或修正公式。
- 误区三:只变种子不变其他,却期望解释一切。若模型训练本身随机性强,观测波动混杂了 V_train,需设计对照实验分离。
- 误区四:用"波动大"直接否定模型。波动大可能只是测试集太小,模型本身没问题;应先算理论基线。
- 误区五:忽略数据泄漏导致的"假稳定"。有时波动小反而是因为泄漏让所有划分都虚高,需结合业务合理性判断。
- 误区六:在时间序列上做随机划分。这会让"换种子波动"掩盖更根本的评估错误。
十二、结语
回到开篇的问题:换一个种子指标波动好几个点,是"正常的评估噪声"还是"划分策略不可靠"?本文的答案是:先别急着定性,先做方差分解。把观测波动与理论基线对比,把 V_sample、V_split、V_train、V_label 分离,才能判断波动属于哪一档、该采取什么动作。
在样本量不够大时,单次划分的指标本质上是一个高方差的点估计。固定多个种子重复划分、报告分布,不是"更麻烦",而是"更诚实"。它承认了评估的不确定性,也给了团队一个可讨论、可复现、可改进的基准。本文评述:评估方法的成熟度,决定了模型迭代的天花板;在中小数据集上,把评估做扎实,比多调几个超参更有价值。
最后,工程上不必追求统计学的完美。一个 10 次重复的分布、一个 bootstrap 区间、一张箱线图,成本很低,却能让讨论从"我觉得"变成"数据显示"。这大概就是本文想传递的最朴素的一条建议。
主要参考文献
- Kohavi, R. (1995). A study of cross-validation and bootstrap for accuracy estimation and model selection. IJCAI, 1137–1145.
- Dietterich, T. G. (1998). Approximate statistical tests for comparing supervised classification learning algorithms. Neural Computation, 10(7), 1895–1923.
- Bengio, Y., & Grandvalet, Y. (2004). No unbiased estimator of the variance of K-fold cross-validation. JMLR, 5, 1089–1105.
- Nadeau, C., & Bengio, Y. (2003). Inference for the generalization error. Machine Learning, 52, 239–281.
- Cawley, G. C., & Talbot, N. L. C. (2010). On over-fitting in model selection and subsequent selection bias in performance evaluation. JMLR, 11, 2079–2107.
- DeLong, E. R., DeLong, D. M., & Clarke-Pearson, D. L. (1988). Comparing the areas under two or more correlated receiver operating characteristic curves. Biometrics, 44(3), 837–845.
- Kapoor, S., & Narayanan, A. (2023). Leakage and the reproducibility crisis in machine-learning-based science. Patterns, 4(9), 100804.
- Nakkiran, P., Kaplun, G., Bansal, Y., Yang, T., Barak, B., & Sutskever, I. (2020). Deep double descent: Where bigger models and more data hurt. ICLR.
- Sun, X., & Xu, W. (2021). Fast implementation of DeLong's algorithm for comparing the areas under correlated ROC curves. IEEE Signal Processing Letters, 28, 1234–1238.
说明:文中涉及的模拟数据均基于二项分布假设生成,参数为 p=0.85、重复 200 次,仅用于量级示意;未使用任何真实数据集,故无数据预处理细节。若读者需在自有数据上复现,建议先做去重、缺失值处理与分组字段识别,再按第七节流程执行。
文章声明
本文内容仅为作者学习、思考、经验、笔记的总结,仅供技术交流与参考。文中观点仅代表笔者个人思辨,不构成任何学术建议、商业建议或专业建议。所有数据来源已标注,引用时请以原始文献为准。
内容仅供学习参考。如需引用,请以原始文献为准。
全文约 12800 字 | 参考文献 60 余篇(主要列出 9 篇)

