当 80% 就该意味着 80%
当模型说“p”的那些日子里,上涨日的比例大约就是 p,这个概率预测就是校准的。排序和校准是不同的优点:模型可以把日子排得很好(AUC 高),却在真相是 0.55 时说 0.8。概率最简单的得分是布里尔分数 1/nΣ(pᵢ-yᵢ)²,即预测的均方误差;0 为完美,始终说 0.5 得 0.25。要看校准,把 [0,1] 分成若干箱,在每个箱里比较平均预测概率与 1 的比例。这张表就是可靠性曲线。按各箱大小加权求差距之和,就是期望校准误差:ECE=Σₖnₖ/n |ȳₖ-p̄ₖ|。
随机森林对许多树取平均,而平均会以奇怪的方式把概率推离 0 和 1:在树因记忆噪声而一致的地方,概率往往过于极端。CalibratedClassifierCV 通过在留出数据上学习一个小的修正来解决这个问题。'sigmoid' 方法给模型得分拟合一条逻辑曲线 p'=1/(1+e^(-(a s+b)))(两个数,稳定),'isotonic' 拟合一个自由的非递减阶梯函数(更灵活,需要更多数据)。对金融数据,留出折在时间上必须晚于训练折,所以传入 cv=TimeSeriesSplit(3)。在 5,344 个 SPY 日的最后 30% 上,始终预测基础比例的布里尔分数为 0.2473。原始森林得 0.2600、误差 0.095,概率从 0.15 到 0.83;sigmoid 校准后布里尔分数为 0.2475,误差为 0.0001。校准把过度自信的模型变成诚实的模型,而诚实的模型就是基础比例,因为森林没有能力。
- 排序不是概率:高 AUC 不能说明 80% 是否真是 80%。
- 布里尔分数与可靠性箱是检验手段;要超越的基线是基础比例的布里尔分数。
- 用更晚的数据校准:
CalibratedClassifierCV(..., cv=TimeSeriesSplit(3)),先用 sigmoid,数据多时用 isotonic。
实验:评分内容
- 布里尔分数10 分
- 可靠性表25 分
- 校准误差15 分
- 森林10 分
- 校准后的森林20 分
- 校准研究20 分