[{"data":1,"prerenderedAt":385},["ShallowReactive",2],{"article:column:/column/math-beauty/evaluating-alerts":3},{"id":4,"title":5,"body":6,"description":12,"extension":374,"meta":375,"navigation":380,"path":381,"seo":382,"stem":383,"__hash__":384},"column/column/math-beauty/evaluating-alerts.md","回到告警：怎样做一次可信的评估",{"type":7,"value":8,"toc":361},"minimark",[9,13,16,19,24,27,30,33,36,39,43,50,53,56,59,66,69,73,76,144,150,153,156,159,162,165,168,174,177,180,183,186,189,193,196,199,202,209,212,215,218,221,225,228,234,237,240,243,250,253,256,259,265,268,271,274,277,280,283,286,289,296,299,302,308,311,314,317,330,341,352,355,358],[10,11,12],"p",{},"先修：18 告警与分类计数；19—20 条件概率与贝叶斯公式；21 期望、方差与相关性；22 抽样误差界",[10,14,15],{},"值班人员最初的困惑是：故障检出99%，为什么收到的告警只有一半是真的？走过前五章，我们会换分母，会计算条件概率，也知道样本比例会波动。现在回到原处，追问更实际的一件事：怎样收集证据，才能让评估结论值得相信？",[10,17,18],{},"“公式算对了”只是其中一环。若故障标签不可靠、只核查告警，或者拿同一批记录反复挑选检测器，最后再精确的除法也回答不了原来的问题。本章仍使用原创虚构台账，把一次评估从约定对象到写出结论走完整；所有数字都不是亲测结果。",[20,21,23],"h2",{"id":22},"评估开始以前先写下要数什么","评估开始以前，先写下要数什么",[10,25,26],{},"假设我们要评估某类设备在正常生产期间的检测表现。目标总体必须进一步注明设备范围、运行条件与时间范围；停机维修期间是否包含，也要预先约定。为了延续第18章，每条记录仍是“某台设备的一段五分钟”，同一设备的窗口不重叠，同窗内多次通知只计一次告警。",[10,28,29],{},"D表示“这个窗口确有约定范围内的故障”，E表示“检测器在这个窗口发出告警”。故障标签取自事后核查，告警取自系统记录。两份记录应分别保存，再按设备与窗口标识对齐。窗口缺失、标签暂时无法确定的情况，应单列并报告数量，不能悄悄划为健康。",[10,31,32],{},"这段约定会限制结论：窗口检出率并不等于独立事故检出率。一次持续十五分钟的故障可占三个窗口，检测器只在最后一个窗口响过，便是三个故障窗口检出一个；若另问“这次事故有没有被发现”，答案却是有。要评估事故层面的及时发现，就须另定事故起止、允许延迟和合并告警的规则，重新计数。",[10,34,35],{},"核验标签也需要证据。可以按预先写好的故障定义，交叉检查维修记录、独立传感器和人工复核结果；有分歧时采用事先约定的复审程序。条件允许时，核查者先不看检测器的告警结论，以减少被它引导的可能。告警不能同时充当“有故障”的判据，否则检测器会被自己的答案验证。",[10,37,38],{},"尤其要覆盖未告警窗口。只查告警，至多知道被查告警中多少为真，无法数出安静窗口里的漏报。下面为便于完整说明，假定全部10000个窗口都获得了可靠标签。真实工作若只能抽查，须另行记录抽样规则；告警和未告警的抽查比例不同，不能把抽到的行直接当成全体台账。",[20,40,42],{"id":41},"先冻结检测器再接收新证据","先冻结检测器，再接收新证据",[10,44,45,46],{},"评估开始前，应固定检测器版本、阈值、输入处理规则，以及时间范围、排除条件和报告指标。调阈值可以在开发数据上做；最终证据则来自未用于这些选择的新数据。",[47,48,49],"span",{},"1",[10,51,52],{},"为什么要划这条界线？假如看完一批测试结果，发现某个阈值分数更高就选它，再把同一批分数当作该阈值的独立证明，选择过程已经利用了这批数据的偶然特点。反复换方案直到满意，并不会让最后一次结果自动独立。",[10,54,55],{},"在本例中，一个可执行的安排是：先封存规则，随后收集预定时间段的所有合格窗口，不因中途成绩好看而提前结束。若评估后修改阈值，就记录为新版本，在新的保留数据上再验证。按时间先后划分有助于避免直接使用未来记录，但相邻窗口仍可能相关，时间切开并不是独立性的证明。",[10,57,58],{},"这里有两种需要分清的独立性。测试数据未参与方案选择，说的是证据与开发过程的隔离；样本之间相互独立，说的是随机变量的联合分布。前者做到了，后者未必成立，新收集的连续窗口仍可能属于同一次故障。反过来，一批记录即使按iid模型抽来，反复用它挑阈值后，也不能把最终赢家视为预先固定的检测器，直接沿用原来的评估论证。两道条件都要检查。",[10,60,61],{},[62,63],"img",{"alt":64,"src":65},"评估先约定总体和窗口，再冻结检测器，采集后续时间段，独立核验故障标签，最后交叉统计四格并报告适用边界","/collections-assets/math-beauty/ch23/01-evaluation-pipeline.png",[10,67,68],{},"图1：每一步都留下可复核的记录。箭头是工作顺序，不表示后续数据必然独立或与部署环境完全相同。",[20,70,72],{"id":71},"四格先相加再做除法","四格先相加，再做除法",[10,74,75],{},"低基准比例台账如下。TP是真故障且告警，FN是漏报，FP是健康却告警，TN是健康且安静。",[77,78,79,99],"table",{},[80,81,82],"thead",{},[83,84,85,89,93,96],"tr",{},[86,87,88],"th",{},"核查标签",[86,90,92],{"align":91},"right","告警E",[86,94,95],{"align":91},"未告警Eᶜ",[86,97,98],{"align":91},"合计",[100,101,102,117,131],"tbody",{},[83,103,104,108,111,114],{},[105,106,107],"td",{},"故障D",[105,109,110],{"align":91},"TP＝99",[105,112,113],{"align":91},"FN＝1",[105,115,116],{"align":91},"100",[83,118,119,122,125,128],{},[105,120,121],{},"健康Dᶜ",[105,123,124],{"align":91},"FP＝99",[105,126,127],{"align":91},"TN＝9801",[105,129,130],{"align":91},"9900",[83,132,133,135,138,141],{},[105,134,98],{},[105,136,137],{"align":91},"198",[105,139,140],{"align":91},"9802",[105,142,143],{"align":91},"10000",[10,145,146,147],{},"先核对四格之和为10000，再写出四个比例：",[47,148,149],{},"2",[10,151,152],{},"检出率＝TP/(TP＋FN)＝99/100＝0.99；",[10,154,155],{},"假阳性率＝FP/(FP＋TN)＝99/9900＝0.01；",[10,157,158],{},"精确率＝TP/(TP＋FP)＝99/198＝0.5；",[10,160,161],{},"准确率＝(TP＋TN)/10000＝9900/10000＝0.99。",[10,163,164],{},"检出率也叫召回率或灵敏度；精确率是告警中真故障的比例。它们的英文分别是recall、precision，准确率则是accuracy。名称相近，分母不可互换。",[10,166,167],{},"每个比值都要求自己的分母大于0：没有真实故障时，召回率无定义；没有健康窗口时，假阳性率无定义；没有告警时，precision无定义；没有记录时，accuracy无定义。不能把这些“无定义”直接当成0%或100%。",[10,169,170],{},[62,171],{"alt":172,"src":173},"四个小四格表分别突出故障100、健康9900、告警198和全部10000这些分母，展示四个指标使用不同记录集合","/collections-assets/math-beauty/ch23/02-denominators-and-samples.png",[10,175,176],{},"图2：颜色标出被纳入分母的格子，格子的大小不表示数量。对同一台账提不同问题，可用的记录数并不都是10000。",[10,178,179],{},"给这份成绩加一个最简单的对照：永远不告警。若故障基准比例为π，N个窗口中有Nπ个故障、N(1−π)个健康，这个规则把全部健康判对、全部故障判错，因此",[10,181,182],{},"accuracy＝N(1−π)/N＝1−π。",[10,184,185],{},"当π＝0.01时，它同样得到99%准确率，却漏掉全部故障，召回率为0；没有告警，precision的分母为0，不能报成100%。这是一个明确反例：若目标是发现罕见故障，99% accuracy可以伴随任务彻底失败。",[10,187,188],{},"因此，本次评估应预先写明漏报和核查负担各自如何衡量，并报告它们，而非用一个总分替代目标。四格告诉我们发生了什么；漏掉哪类故障可以接受、多少次无效核查会压垮值班人员，还需要业务条件。",[20,190,192],{"id":191},"环境改变哪些数字可以带过去","环境改变，哪些数字可以带过去",[10,194,195],{},"较高基准比例台账仍有10000个窗口：故障1000个，其中TP＝990、FN＝10；健康9000个，其中FP＝90、TN＝8910。检出率仍为0.99，假阳性率仍为0.01，accuracy仍为0.99，precision却是990/1080＝11/12。",[10,197,198],{},"把这种变化写成第20章的条件概率。令a＝P(E|D)，b＝P(E|Dᶜ)，π＝P(D)，并取0＜π＜1、P(E)>0。真告警的概率是aπ，误报告警的概率是b(1−π)，两种来源互斥且覆盖全部告警，所以",[10,200,201],{},"P(E)＝aπ＋b(1−π)，",[10,203,204,205,208],{},"precision＝P(D|E)＝aπ/",[47,206,207],{},"aπ＋b(1−π)","。",[10,210,211],{},"这条式子把需要核查的条件摆到了桌面上。若迁移时a、b保持不变，precision仍可能随π改变。例如取π＝0.001，构造100000个窗口：故障100个，TP＝99、FN＝1；健康99900个，FP＝999、TN＝98901。于是",[10,213,214],{},"precision＝99/(99＋999)＝99/1098＝11/122，约9.02%。",[10,216,217],{},"故障更少，健康窗口送来的误报就更占上风。把故障样本刻意增多，确实便于研究检出情况，但那份数据直接算出的precision，不代表日常部署的告警组成。",[10,219,220],{},"这里“a、b保持不变”是一项迁移假设，不是固定版本就能保证的事实。新设备、不同故障类型和噪声变化，都可能改变两组内的表现。因此，应在新环境分别复核基准比例、检出率和假阳性率。公式可靠地连接这些量，不能替我们保证输入不变。",[20,222,224],{"id":223},"一万个窗口究竟支持多精细的结论","一万个窗口，究竟支持多精细的结论",[10,226,227],{},"第22章讨论过用伯努利样本平均估计比例。现在若要估计目标告警总体中的真故障比例p，样本就必须来自那个告警总体；每次核查所得Xᵢ，真故障记1，否则记0。这里的p是precision，不是全体窗口的故障率或告警率。",[10,229,230,231],{},"取正整数n及ε>0。在X₁至Xₙ独立同分布为Bernoulli(p)的模型下，令p̂＝(X₁＋…＋Xₙ)/n。由第21—22章的结果，",[47,232,233],{},"3",[10,235,236],{},"Var(p̂)＝p(1−p)/n≤1/(4n)，",[10,238,239],{},"P(|p̂−p|≥ε)≤1/(4nε²)。",[10,241,242],{},"想把偏差达到5个百分点的概率控制在5%以内，代入ε＝0.05并要求右边≤0.05，得到",[10,244,245,246,249],{},"1/",[47,247,248],{},"4n×(0.05)²","≤0.05，即n≥2000。",[10,251,252],{},"这是充分而保守的样本量条件，不是最小样本量，更不是每次都准。概率针对按此模型反复抽样产生的p̂；观察结束后，不能直接改口成“固定的p有95%概率落在这次估计值附近”。",[10,254,255],{},"低基准台账虽有10000行，告警只有198行；若研究precision，不能把10000当作上述n。若研究灵敏度，相关组只有100个真故障窗口，也不能借用全部10000行。并且，198与100首先只是各组计数；是否能作为独立同分布样本使用，仍须检查采样机制。",[10,257,258],{},"若已准确核查固定台账中的全部198条告警，这张台账的precision恰是1/2，没有“尚未抽到的台账行”带来的误差。要推广到未来告警，才重新面对代表性、相关性与分布变化。对有限总体不放回抽样，样本并不独立，应使用相应的抽样模型；不能把本章的iid推导原样套上去。",[10,260,261],{},[62,262],{"alt":263,"src":264},"重复通知没有增加独立信息，同一故障的相邻窗口跨开发集与测试集可能泄漏，反复看测试成绩选阈值也破坏最终证据的独立性","/collections-assets/math-beauty/ch23/03-dependence-and-leakage.png",[10,266,267],{},"图3：增加行数、打乱顺序或重跑测试，都不会自动消除这些联系。如何分组、隔离和重新收集证据，应根据实际来源设计。",[10,269,270],{},"同一次故障可使连续窗口一起异常，重复通知则可能只是同一结果的复制。第21章已经证明，复制n份的平均仍是原变量，方差不会按1/n下降。应保留事故和设备标识，识别成组记录，防止同一来源跨开发与测试；必要时按组或时间段重新设计评估。这样做减少明显问题，却不等于已经证明所有组相互独立。若系统随时间变化，也不能只靠累积更长的旧记录修复非平稳性。",[20,272,273],{"id":273},"让结论能被下一位核查者重做",[10,275,276],{},"一次可执行的评估可以这样落地：开始前保存一份协议，写明目标设备与时间、五分钟窗口、故障定义、去重及缺失处理办法，并封存检测器版本、阈值和主要指标。按协议收集后续数据，保留原始告警和独立标签依据；核查覆盖安静窗口，争议标签留下复审记录。",[10,278,279],{},"随后用唯一窗口标识合并两份记录，检查总数与重复项，列出四格及各指标分母。把全不报基线放在旁边，对照原定的检出目标和核查负担。涉及抽样误差时，明确抽了谁、如何抽、用了什么模型，分开列出计数事实与条件性的误差界。更改检测器后，另留新数据验证；部署对象改变后，重新核查迁移假设。",[10,281,282],{},"报告的边界同样属于结果。99/198＝1/2、全不报准确率为1−π，以及iid条件下的切比雪夫界，都是各自条件成立时可靠的数学结论。标签是否正确、样本是否代表目标总体、记录是否独立、未来是否稳定，则需要实证支持。两类话写清楚，读者才能知道哪些部分可复算，哪些部分要补证据。",[10,284,285],{},"到这里，本部从“一声告警是否可信”走到了“一份评估为何可信”。下一部转向信息与编码：我们还会把不确定性压缩成便于比较的量，再问怎样表达和传递信息。那是新的目标与定义；本部的比例、方差和误差界，也仍各自回答不同的问题。",[20,287,288],{"id":288},"顺手试一下",[10,290,291,295],{},[292,293,294],"strong",{},"题目1："," 某份虚构部署台账有100000个窗口，四格为TP＝99、FN＝1、FP＝999、TN＝98901。求accuracy与precision，再求全不报规则的accuracy和召回率。只按accuracy选规则，会发生什么？",[10,297,298],{},"**提示：**准确率的分母是100000，precision的分母是告警数；全不报只把健康窗口判对。",[10,300,301],{},"**参考答案：**检测器accuracy＝(99＋98901)/100000＝99%，precision＝99/1098＝11/122，约9.02%。全不报accuracy＝99900/100000＝99.9%，召回率为0。因此仅按accuracy会偏向完全不找故障的规则。它的precision无定义；这进一步说明，评价准则必须对应任务目标。",[10,303,304,307],{},[292,305,306],{},"题目2："," 某人只复核10000个窗口中的198条告警，确认99条有故障，其余窗口未核查。他报告“precision为50%，召回率为99%”，又用n＝10000套用本章误差界，声称足以满足5个百分点、5%的要求。他还在这批记录上试了20个阈值，只保留分数最高的结果。这份报告哪些结论成立，哪些需要补证据？",[10,309,310],{},"**提示：**把已知标签填进四格，看看哪两格仍空着；再分别检查抽样对象与检测器选择过程。",[10,312,313],{},"**参考答案：**若198条告警全部核验准确，这份告警列表的precision确为99/198＝50%。FN、TN尚未知，所以不能得出召回率99%；必须按可靠设计核查未告警窗口，寻找漏报。全部10000行也不能充当precision的iid样本数。对这份完整列表本身无需估计，对目标总体作推断则须说明代表性和抽样机制；即使198条符合iid模型，也未达到n≥2000这一充分条件，不能声称已由该界获得所需保证。反复看测试结果选阈值，使这批数据参与了方案选择。应固定选定版本与规则，再取得未参与选择的新证据，并在报告中保留选择过程、核查范围与限制。",[20,315,316],{"id":316},"参考与延伸",[10,318,319,321,322,329],{},[47,320,49],{}," Google官方《Machine Learning Crash Course》，",[323,324,328],"a",{"href":325,"rel":326},"https://developers.google.com/machine-learning/crash-course/overfitting/dividing-datasets",[327],"nofollow","Datasets: Dividing the original dataset","。核对开发、验证与最终测试的区分，以及重复使用测试集、重复样本带来的评估问题。",[10,331,332,334,335,340],{},[47,333,149],{}," 同课程，",[323,336,339],{"href":337,"rel":338},"https://developers.google.com/machine-learning/crash-course/classification/accuracy-precision-recall",[327],"Classification: Accuracy, recall, precision, and related metrics","。核对四种指标的分母及类别不均衡时accuracy的局限。",[10,342,343,345,346,351],{},[47,344,233],{}," 麻省理工学院，Jeremy Orloff、Jonathan Bloom，18.05课程",[323,347,350],{"href":348,"rel":349},"https://ocw.mit.edu/courses/18-05-introduction-to-probability-and-statistics-spring-2022/mit18_05_s22_class06-prep-c.pdf",[327],"Reading 6c: Appendix","，第3节，第2—3页。核对切比雪夫不等式及样本平均的方差与适用条件。",[10,353,354],{},"本文台账、评估协议、练习与图解均为原创教学构造，不是真实系统的评测报告；参考资料用于核对概念和数学规则。",[356,357],"hr",{},[10,359,360],{},"作者：Jiancheng Wang · 数学之美（独立原创）",{"title":362,"searchDepth":363,"depth":363,"links":364},"",3,[365,367,368,369,370,371,372,373],{"id":22,"depth":366,"text":23},2,{"id":41,"depth":366,"text":42},{"id":71,"depth":366,"text":72},{"id":191,"depth":366,"text":192},{"id":223,"depth":366,"text":224},{"id":273,"depth":366,"text":273},{"id":288,"depth":366,"text":288},{"id":316,"depth":366,"text":316},"md",{"collection":376,"order":377,"slug":378,"author":379},"数学之美",23,"evaluating-alerts","Jiancheng Wang",true,"/column/math-beauty/evaluating-alerts",{"title":5,"description":12},"column/math-beauty/evaluating-alerts","_ABpVGifRpwb0MuxSC-JV9ex3iewZrxJCCS9F8sxux4",1791935829169]