关于机器学习模型校准的文章写的比较好的:Sk-learn 中文社区-概率校准[1]、知乎-模型校准 Calibration[2]、CSDN-机器学习_预测概率校准[3]。
看了这些文章后,有几个点需要明确一下:
1、所谓的模型校准(概率校准)并不是对直接对原来训练好的模型进行更改,而是再多训练一个辅助模型将原来模型预测出来的概率进行修改,也就是多训练一个模型专门调整原来模型预测的概率 [3], 需要注意,训练这个辅助模型的时候不能使用train_data,一般是使用Val_data;
2、评价一个模型预测结果的好坏,除了我原来理解的准确率、F1啥的之外,还有一个比较冷门的参数----预期校准误差(Expected Calibration Error,ECE) [3], ECE用来判断我们模型的预测概率与真实概率平均相距多远,讲人话就是我们的模型既不能过于自信也不能自卑;
3、除了ECE指标外,reliability diagram也是是一种评价的方式,但是sklern自带的calibration_curve函数只能针对二分类问题画图;